Fermer une page internet avec vba ( windows XP)
Le
JA
Bonjour,
Dans un script vba, j'ouvre une page internet (php) puis quand le travail
est terminé,
le vba ferme cette page.
Un fichier créé à la fin du php me renseigne sur la fin des travaux, le
vba boucle n fois avec test d'existence de ce fichier puis temporisation
si fichier existe t ou si n fois ( cas du php qui se serait
planté) alors fermer page internet.
Pour fermer cette page, j'avais trouvé sur internet le vba ci après.:
Depuis que je travaille sous XP ( avant, c'etait windows 2000), cette
fermeture de ne fait plus 1 fois sur 3 environ
( je sais, c'est pas scientifique mais, hélas je ne peux pas dire que
celà ne marche plus du tout).
Quelqu'un a -t-il quelque chose de stable sous XP ?
Par avance, merci
Francois
//==
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Const WM_CLOSE = &H10
Public Const WM_NCDESTROY = &H82 ' ok pour IE
Sub CloseWindow(quoi)
Dim HWnd As Long
HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
SendMessage HWnd, WM_NCDESTROY, 0, 0
Else
CloseWindow ("pb page à fermer")
End If
End Sub
Sub zz()
Application.WindowState = xlMaximized
'CloseWindow ("Wanadoo - Microsoft Internet Explorer")
Application.DisplayAlerts = False
CloseWindow ("La page - Microsoft Internet Explorer")
Application.DisplayAlerts = True
End Sub
//==
Dans un script vba, j'ouvre une page internet (php) puis quand le travail
est terminé,
le vba ferme cette page.
Un fichier créé à la fin du php me renseigne sur la fin des travaux, le
vba boucle n fois avec test d'existence de ce fichier puis temporisation
si fichier existe t ou si n fois ( cas du php qui se serait
planté) alors fermer page internet.
Pour fermer cette page, j'avais trouvé sur internet le vba ci après.:
Depuis que je travaille sous XP ( avant, c'etait windows 2000), cette
fermeture de ne fait plus 1 fois sur 3 environ
( je sais, c'est pas scientifique mais, hélas je ne peux pas dire que
celà ne marche plus du tout).
Quelqu'un a -t-il quelque chose de stable sous XP ?
Par avance, merci
Francois
//==
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Const WM_CLOSE = &H10
Public Const WM_NCDESTROY = &H82 ' ok pour IE
Sub CloseWindow(quoi)
Dim HWnd As Long
HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
SendMessage HWnd, WM_NCDESTROY, 0, 0
Else
CloseWindow ("pb page à fermer")
End If
End Sub
Sub zz()
Application.WindowState = xlMaximized
'CloseWindow ("Wanadoo - Microsoft Internet Explorer")
Application.DisplayAlerts = False
CloseWindow ("La page - Microsoft Internet Explorer")
Application.DisplayAlerts = True
End Sub
//==

Poser une question


vérifie que le titre de la page est bien "La page - Microsoft Internet
Explorer" dans le cas où ça ne marche pas.
Si oui, je suppose que l'installation de XP a relenti ton PC et qu'une de
tes lignes de code (probablement sendmessage) ne trouve pas le temps de
s'executer
essaie peut être de boucler sur la fermeture :
HWnd = FindWindow(vbNullString, quoi)
If HWnd > 0 Then
while HWnd >0
SendMessage HWnd, WM_NCDESTROY, 0, 0
HWnd = FindWindow(vbNullString, quoi)
wend
else
.....
http://jacxl.free.fr
"JA" 473bef9d$0$25910$
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd
As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
PostMessage HWnd, 16, 0, 0
http://jacxl.free.fr
""
salut tu fais comment pour l'ouvrir la page ?
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/micr...fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Je lance
iexplore.exe ma_page
Cordialement
Francois
Et merci pour toutes les réponses
Et si tu utilisais le composant ie en automation ?
Dim ie As Object
uerel = http://www.toto.fr
Set ie = CreateObject("internetexplorer.application")
ie.Visible = True
ie.navigate (uerel)
Do While ie.Busy
Application.Wait (Now + 0.2 / 3600 / 24)
Loop
'... ton code
ie.Quit
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/micr...fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~