Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=386820&src=arc&showlite=
Дата изменения: Unknown
Дата индексирования: Tue Apr 12 07:15:38 2016
Кодировка: Windows-1251
Как получить дескриптор окна в VBA? - Public forum of MSU united student networks
Root | Google | Yandex | Mail.ru | Kommersant | Afisha | LAN Support
  
Technical >> Hard&Soft (Archive)

Страницы: 1
Domain
addict

Рег.: 27.10.2002
Сообщений: 555
Из: уже далеко...
Рейтинг: 0
  Как получить дескриптор окна в VBA?
      17.06.2003 15:20
 

субж? дескриптор нужен для вызова функции GetWindowThreadProcessId hwnd, RunningAppProcessID

Kolya
veteran

Рег.: 21.09.2002
Сообщений: 1777
Рейтинг: 2591
  Re: Как получить дескриптор окна в VBA? [re: Domain]
      17.06.2003 16:04
 

Для ворда я делал так:
...
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
...
WordHWnd = FindWindow("OpusApp", vbNullString)
...

Domain
addict

Рег.: 27.10.2002
Сообщений: 555
Из: уже далеко...
Рейтинг: 0
  Re: Как получить дескриптор окна в VBA? [re: Kolya]
      17.06.2003 16:31
 

А почему OpusApp?

Кстати, у меня получилось незамысловато следующим образом:
ActiveWindowHandle = FindWindow(vbNullString, _
ActiveWindow.Caption + " - " + Application.Caption)

xcom
addict

Рег.: 08.12.2002
Сообщений: 415
Рейтинг: 0
  Re: Как получить дескриптор окна в VBA? [re: Domain]
      18.06.2003 22:02
 

msdn Q258511
HOWTO: Obtain the Window Handle for an Office Automation Server
----
Find the Window Handle for an Application That Is Single Instance
code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Command1_Click()
Dim PptApp As Object
Set PptApp = CreateObject("PowerPoint.Application")
PptApp.Visible = True
Dim hWndPpt As Long
hWndPpt = FindWindow("PP9FrameClass", 0) 'PP97FrameClass w/ PowerPoint 97
MsgBox "hWndPpt ( " & Hex(hWndPpt) & " ) contains the Window Handle " & _
"of the PowerPoint application created by this program." & vbCr & _
"You can use this Window Handle in various Win 32 APIs, such " & _
"as SetForeGroundWindow," & vbCr & _
"which require a Window Handle parameter to be supplied." & vbCr & _
vbCr & "All Done. Click OK to close PowerPoint.", vbMsgBoxSetForeground
PptApp.Quit
Set PptApp = Nothing
End Sub


Find the Window Handle for an Application That Can Have Multiple Instances
code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Command1_Click()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Caption = "New Caption Supplied by Program"
Dim hWndXl As Long
hWndXl = FindWindow("XLMAIN", xlApp.Caption)
xlApp.Caption = Empty 'Set the original caption back

xlApp.Visible = True
MsgBox "hWndXl ( " & Hex(hWndXl) & " ) contains the Window Handle " & _
"of the Excel application created by this program." & vbCr & _
"You can use this Window Handle in various Win 32 APIs, " & _
"such as SetForeGroundWindow," & vbCr & _
"which require a Window Handle parameter to be supplied." & vbCr _
& vbCr & "All Done. Click OK to close Excel.", vbMsgBoxSetForeground
xlApp.Quit
Set xlApp = Nothing
End Sub


PS. Если приложение Access, тогда можно проще Application.hWndAccessApp - родительское окно и Form[Report].hWnd

Страницы: 1

Technical >> Hard&Soft (Archive)

Дополнительная информация
0 зарегистрированных и 1 анонимных пользователей просматривают этот форум.

Модераторы:  exc, muse, Riamella, KAA 

Печать темы

Права
      Вы можете создавать новые темы
      Вы можете отвечать на сообщения
      HTML отключен
      UBBCode включен

Рейтинг:
Просмотров темы:

Переход в