Fermer une fenetre avec le handle problème.

Résolu
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010
-
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010
-
Re bonjours,
j'utilise une fonction de mon application pour fermer une fenetre web en connaissant sont handle.
j'utilise la fonction postmessage:
PostMessage(hWnd, WM_CLOSE, 0, 0)

En général tout marche bien, hors lorsque je veux fermer une fenetre qui contient un code javascript "unload" et bien le message javascript s'affiche et la fenetre ne se ferme pas.
Que faut t'il faire pour forcer la fermeture de la fenetre ?
Merci

8 réponses

Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut a tous,

DestroyWindow ne marchera pas je pense, je viens de faire une fonction pour le faire mais en tuant le process...

voici le code a mettre dans un module

Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
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 Const PROCESS_ALL_ACCESS As Long = &H1F03FF



Public Function ForceClosingWindow(ByVal hWindow As Long) As Long
   
    Dim ProcessId As Long
    Dim hProcess As Long
   
    GetWindowThreadProcessId hWindow, ProcessId
    hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId)
    ForceClosingWindow = TerminateProcess(hProcess, 0)
   
End Function




Ensuite suffit de faire :

ForceClosingWindow Handle_de_Fenetre

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
sans garantie... API ExitProcess peut-être, ou DestroyWindow...

++
Prenez un instant pour répondre à ce sondage svp
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Avec ExitPriocess c'est l'appelant qui se ferme, pas bon du tout.

ciao...
BruNews, MVP VC++
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
BruNews -> pas l'appelant que comme suit?
call ExitProcess (GetCurrentProcess)
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

re,

eh non BruNews a raison, tu confod avec TerminateProcess! ;)

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
param de ExitProcess est un exitCode, pas un handle.

ciao...
BruNews, MVP VC++
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010

je vais essayer, merci a tous pour vos réponse je vous tiens au courant trés vite.
Mais avec ton code draluorg est ce que cela va aussi fermer les autre fenetre de mon navigateur?
Messages postés
211
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
18 octobre 2010

ca marche comme je le voulais, c'est super simpas merci beaucoup.