Bonjour à tous,
Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre
ouverte par ShellExecute() qui m'ouvre en fait l'application associée à un
document (par exemple : pour un fichier CSV, ShellExecute() ouvre Excel
sur mon poste).
D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de
succès : est-ce bien le N° d'instance de l'application lancée ou bien
est-ce un simple code d'erreur ?
Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre
avec GetWindowThreadProcessId()
Des idées ?
Merci beaucoup pour vos suggestions.
Teddy
Bonjour à tous,
Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre
ouverte par ShellExecute() qui m'ouvre en fait l'application associée à un
document (par exemple : pour un fichier CSV, ShellExecute() ouvre Excel
sur mon poste).
D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de
succès : est-ce bien le N° d'instance de l'application lancée ou bien
est-ce un simple code d'erreur ?
Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre
avec GetWindowThreadProcessId()
Des idées ?
Merci beaucoup pour vos suggestions.
Teddy
Bonjour à tous,
Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre
ouverte par ShellExecute() qui m'ouvre en fait l'application associée à un
document (par exemple : pour un fichier CSV, ShellExecute() ouvre Excel
sur mon poste).
D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de
succès : est-ce bien le N° d'instance de l'application lancée ou bien
est-ce un simple code d'erreur ?
Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre
avec GetWindowThreadProcessId()
Des idées ?
Merci beaucoup pour vos suggestions.
Teddy
Une autre idée : tu peux scruter toutes les fenêtres ouvertes via leur caption, et identifier avec celui-ci celle qui t'intéresse.
Christian
" teddy" a écrit dans le message de news: %Bonjour à tous,
Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre ouverte par ShellExecute() qui m'ouvre en fait
l'application associée à un document (par exemple : pour un fichier CSV, ShellExecute() ouvre Excel sur mon poste).
D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de succès : est-ce bien le N° d'instance de l'application
lancée ou bien est-ce un simple code d'erreur ?
Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre avec GetWindowThreadProcessId()
Des idées ?
Merci beaucoup pour vos suggestions.
Teddy
Une autre idée : tu peux scruter toutes les fenêtres ouvertes via leur caption, et identifier avec celui-ci celle qui t'intéresse.
Christian
" teddy" <teddy@wanadoo.fr> a écrit dans le message de news: %23VsTQxz9IHA.448@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre ouverte par ShellExecute() qui m'ouvre en fait
l'application associée à un document (par exemple : pour un fichier CSV, ShellExecute() ouvre Excel sur mon poste).
D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de succès : est-ce bien le N° d'instance de l'application
lancée ou bien est-ce un simple code d'erreur ?
Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre avec GetWindowThreadProcessId()
Des idées ?
Merci beaucoup pour vos suggestions.
Teddy
Une autre idée : tu peux scruter toutes les fenêtres ouvertes via leur caption, et identifier avec celui-ci celle qui t'intéresse.
Christian
" teddy" a écrit dans le message de news: %Bonjour à tous,
Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre ouverte par ShellExecute() qui m'ouvre en fait
l'application associée à un document (par exemple : pour un fichier CSV, ShellExecute() ouvre Excel sur mon poste).
D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de succès : est-ce bien le N° d'instance de l'application
lancée ou bien est-ce un simple code d'erreur ?
Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre avec GetWindowThreadProcessId()
Des idées ?
Merci beaucoup pour vos suggestions.
Teddy
Bonjour,
Tiens, peut être que ça peut faire l'affaire ?
OUVERTURE D'UNE APPLICATION
FERMETURE DE L'APPLICATION DEPUIS LE PROGRAMME QUI L'A LANCE
************************************************************
Private Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long _
) As Long
'
Private Declare Function TerminateProcess Lib "kernel32" ( _
ByVal hProcess As Long, _
ByVal uExitCode As Long _
) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
'
Private Const PROCESS_TERMINATE = &H1
Dim NumProcess As Long
Dim RC As Long
Dim hProcess As Long
'
Sub ouvrir()
NumProcess = Shell(Nom_fic, 1)
End sub
Sub fermer()
hProcess = OpenProcess(PROCESS_TERMINATE, -1&, NumProcess)
RC = TerminateProcess(hProcess, 0&)
RC = CloseHandle(hProcess)
End Sub
-------------
OU ÇA
-------------
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Dim Site As String
Site = "http://www.irolog.free.fr"
ShellExecute Me.hwnd, "Open", Site, "", App.Path, 1
HWND a peut être le processus, je crois...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
" teddy" a écrit dans le message de news:
%
| Bonjour à tous,
|
| Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre
ouverte par ShellExecute() qui m'ouvre en fait l'application
| associée à un document (par exemple : pour un fichier CSV, ShellExecute()
ouvre Excel sur mon poste).
|
| D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de
succès : est-ce bien le N° d'instance de l'application lancée
| ou bien est-ce un simple code d'erreur ?
| Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre
avec GetWindowThreadProcessId()
|
| Des idées ?
| Merci beaucoup pour vos suggestions.
|
| Teddy
|
Bonjour,
Tiens, peut être que ça peut faire l'affaire ?
OUVERTURE D'UNE APPLICATION
FERMETURE DE L'APPLICATION DEPUIS LE PROGRAMME QUI L'A LANCE
************************************************************
Private Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long _
) As Long
'
Private Declare Function TerminateProcess Lib "kernel32" ( _
ByVal hProcess As Long, _
ByVal uExitCode As Long _
) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
'
Private Const PROCESS_TERMINATE = &H1
Dim NumProcess As Long
Dim RC As Long
Dim hProcess As Long
'
Sub ouvrir()
NumProcess = Shell(Nom_fic, 1)
End sub
Sub fermer()
hProcess = OpenProcess(PROCESS_TERMINATE, -1&, NumProcess)
RC = TerminateProcess(hProcess, 0&)
RC = CloseHandle(hProcess)
End Sub
-------------
OU ÇA
-------------
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Dim Site As String
Site = "http://www.irolog.free.fr"
ShellExecute Me.hwnd, "Open", Site, "", App.Path, 1
HWND a peut être le processus, je crois...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
" teddy" <teddy@wanadoo.fr> a écrit dans le message de news:
%23VsTQxz9IHA.448@TK2MSFTNGP04.phx.gbl...
| Bonjour à tous,
|
| Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre
ouverte par ShellExecute() qui m'ouvre en fait l'application
| associée à un document (par exemple : pour un fichier CSV, ShellExecute()
ouvre Excel sur mon poste).
|
| D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de
succès : est-ce bien le N° d'instance de l'application lancée
| ou bien est-ce un simple code d'erreur ?
| Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre
avec GetWindowThreadProcessId()
|
| Des idées ?
| Merci beaucoup pour vos suggestions.
|
| Teddy
|
Bonjour,
Tiens, peut être que ça peut faire l'affaire ?
OUVERTURE D'UNE APPLICATION
FERMETURE DE L'APPLICATION DEPUIS LE PROGRAMME QUI L'A LANCE
************************************************************
Private Declare Function OpenProcess Lib "kernel32" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long _
) As Long
'
Private Declare Function TerminateProcess Lib "kernel32" ( _
ByVal hProcess As Long, _
ByVal uExitCode As Long _
) As Long
Private Declare Function CloseHandle Lib "kernel32" ( _
ByVal hObject As Long) As Long
'
Private Const PROCESS_TERMINATE = &H1
Dim NumProcess As Long
Dim RC As Long
Dim hProcess As Long
'
Sub ouvrir()
NumProcess = Shell(Nom_fic, 1)
End sub
Sub fermer()
hProcess = OpenProcess(PROCESS_TERMINATE, -1&, NumProcess)
RC = TerminateProcess(hProcess, 0&)
RC = CloseHandle(hProcess)
End Sub
-------------
OU ÇA
-------------
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Dim Site As String
Site = "http://www.irolog.free.fr"
ShellExecute Me.hwnd, "Open", Site, "", App.Path, 1
HWND a peut être le processus, je crois...
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
" teddy" a écrit dans le message de news:
%
| Bonjour à tous,
|
| Comme indiqué en objet, je cherche à récupérer le handle de la fenêtre
ouverte par ShellExecute() qui m'ouvre en fait l'application
| associée à un document (par exemple : pour un fichier CSV, ShellExecute()
ouvre Excel sur mon poste).
|
| D'abord je ne suis pas sûr du code retour de ShellExecute() en cas de
succès : est-ce bien le N° d'instance de l'application lancée
| ou bien est-ce un simple code d'erreur ?
| Je sais qu'avec le N° d'instance, on peut trouver le handle de la fenêtre
avec GetWindowThreadProcessId()
|
| Des idées ?
| Merci beaucoup pour vos suggestions.
|
| Teddy
|
Tiens, testé, là j'ouvre le bloc-notes + un fichier test.txt, et j'ai en
retour le n° du handle:
' exp appel sh avec processus
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As
String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal
nShowCmd As Long) _
As Long
Sub Form_Load()
Dim p01a As Long
ChDrive App.Path
ChDir App.Path
Form1.AutoRedraw = True
FontName = "courier new"
FontSize = 20
CurrentX = 100
CurrentY = 100
p01a = FreeFile
Open "test.txt" For Output As p01a
Print #p01a, "test du fichier text.txt"
Close p01a
ShellExecute Me.hwnd, "Open", "NotePad.exe", "test.txt", App.Path, 1
Print hwnd
End Sub
Tiens, testé, là j'ouvre le bloc-notes + un fichier test.txt, et j'ai en
retour le n° du handle:
' exp appel sh avec processus
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As
String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal
nShowCmd As Long) _
As Long
Sub Form_Load()
Dim p01a As Long
ChDrive App.Path
ChDir App.Path
Form1.AutoRedraw = True
FontName = "courier new"
FontSize = 20
CurrentX = 100
CurrentY = 100
p01a = FreeFile
Open "test.txt" For Output As p01a
Print #p01a, "test du fichier text.txt"
Close p01a
ShellExecute Me.hwnd, "Open", "NotePad.exe", "test.txt", App.Path, 1
Print hwnd
End Sub
Tiens, testé, là j'ouvre le bloc-notes + un fichier test.txt, et j'ai en
retour le n° du handle:
' exp appel sh avec processus
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As
String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal
nShowCmd As Long) _
As Long
Sub Form_Load()
Dim p01a As Long
ChDrive App.Path
ChDir App.Path
Form1.AutoRedraw = True
FontName = "courier new"
FontSize = 20
CurrentX = 100
CurrentY = 100
p01a = FreeFile
Open "test.txt" For Output As p01a
Print #p01a, "test du fichier text.txt"
Close p01a
ShellExecute Me.hwnd, "Open", "NotePad.exe", "test.txt", App.Path, 1
Print hwnd
End Sub
Je sais qu'on peut le faire avec FindWindow() mais je ne connais pas forcément à l'avance le nom de la fenêtre.
Je sais qu'on peut le faire avec FindWindow() mais je ne connais pas forcément à l'avance le nom de la fenêtre.
Je sais qu'on peut le faire avec FindWindow() mais je ne connais pas forcément à l'avance le nom de la fenêtre.
Mais n'est-ce pas ça la question, d'ouvrir une application et son fichier
avec shellexecut, et d'en récupérer le handel ???
Mais n'est-ce pas ça la question, d'ouvrir une application et son fichier
avec shellexecut, et d'en récupérer le handel ???
Mais n'est-ce pas ça la question, d'ouvrir une application et son fichier
avec shellexecut, et d'en récupérer le handel ???