Salut,
J'ai besoin de savoir le nom d'une fenêtre à partir d'une application Excel écrite en VBA.
Voici mon code :
'-------------------------------------------------------------------- '-------------------------------------------------------------------- '--------------------------------------------------------------------
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Declare Function WaitForSingleObject Lib "Kernel32" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Declare Function OpenProcess Lib "Kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Public Const INFINITE = &HFFFF
'--------------------------------------------------------------------
Function RecupNomFenetre(ByVal CheminComplet As String) As Long Dim ProcessHandle As Long Dim ProcessId As Long, ret& Dim a As String * 128
ProcessId = Shell(CheminComplet, vbNormalFocus) ProcessHandle = OpenProcess(&H1F0000, 0, ProcessId) MsgBox CStr(ProcessHandle) a = GetWindowText(ProcessHandle, a, 128) MsgBox CStr(a)
End Function
'--------------------------------------------------------------------
Sub Test() chemin = "C:\Program Files\Adobe\Acrobat 6.0\Reader\acrord32.exe" RecupNomFenetre(chemin) End Sub
'-------------------------------------------------------------------- '-------------------------------------------------------------------- '--------------------------------------------------------------------
Le but est d'obtenir le nom de la fenêtre qd j'execute la routine Test. Pour l'instant le code retourne la longueur du nom de la fenêtre. Je ne comprend pas pourquoi mais il me renvoie 0 comme si la fenêtre n'avait pas de nom ! C'est peut être mon hwnd qui n'est pas bon, je sais pas.
Si quelqu'un pouvait me dire pourquoi, ce serait cool :-)
Merci,
Tonio
|