Fermer une fenetre avec le handle problème.

Résolu
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010 - 8 sept. 2006 à 23:16
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010 - 9 sept. 2006 à 00:55
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

draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
9 sept. 2006 à 00:32
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...
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
9 sept. 2006 à 00:04
salut,
sans garantie... API ExitProcess peut-être, ou DestroyWindow...

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

ciao...
BruNews, MVP VC++
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
9 sept. 2006 à 00:36
BruNews -> pas l'appelant que comme suit?
call ExitProcess (GetCurrentProcess)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
9 sept. 2006 à 00:40
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...
0
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
9 sept. 2006 à 00:47
param de ExitProcess est un exitCode, pas un handle.

ciao...
BruNews, MVP VC++
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
9 sept. 2006 à 00:50
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?
0
lolpop Messages postés 211 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 18 octobre 2010
9 sept. 2006 à 00:55
ca marche comme je le voulais, c'est super simpas merci beaucoup.
0
Rejoignez-nous