Fermer programme Windows mobile 5

Signaler
Messages postés
5
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
8 avril 2008
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonsoir,

Comment fermer un programme externe à l'application en WindowsMobile5 ?
Je recupère le handle avec
    Dim taskBarHandle As System.IntPtr
     taskBarHandle = FindWindow("Solitaire", "")

déclaré 

Private Declare Function FindWindow Lib "Coredll" Alias "FindWindow" (ByVal lpClassName As String, ByVal lpWindowName As String) As System.IntPtr

Mais ensuite comment fermer le handle récuperé?
    

11 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

tu envoies (sendmessage ou postmessage) un WM_CLOSE
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
5
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
8 avril 2008

Bonsoir,

Merci de ta réponse,
Malheuresement je n'y arrive pas!
Voila mon code

    Dim taskBarHandle As System.IntPtr
    taskBarHandle = FindWindow("Solitaire", "")
    Me.StatusBar1.Text = taskBarHandle
    Call PostMessage(taskBarHandle, WM_CLOSE, 0, 0)

Private Declare Function PostMessage Lib "Coredll" Alias "PostMessage" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function FindWindow Lib "Coredll" Alias "FindWindow" (ByVal lpClassName As String, ByVal lpWindowName As String) As System.IntPtr

Private Const WM_CLOSE = &H10

J'obtiens une erreur d'execution!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
en précisant que l'erreur est "fichier introuvable : coredll" çà serait mieux non? ^^

tu l'as sortie de où cette déclaration d'API?

en VB6 :
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

donc à transformer pour dotnet en :
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As System.IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

de même pour ta déclaration de FindWindow qui sort de nulle-part....
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
et c'est pas
taskBarHandle = FindWindow("Solitaire", "")
mais
taskBarHandle = FindWindow(string.empty, "Solitaire")

<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
5
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
8 avril 2008

Maintenant j'ai une erreure DLL Pinvoke 'user32' introuvable
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
sur laquelle?!
quelle API?
Messages postés
5
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
8 avril 2008

Le findWindow

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As System.IntPtr
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
umm...
peut-être une particularité pour Win Mobile?....

testé sous VB6 c'est OK (avec les bonnes déclarations d'API)

ici une solution alternative, çà donne quoi?
http://www.codyx.org/snippet_fermer-application-identifiee-son-titre_17.aspx#111

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
je viens de tester le snippet (sous VS2005 pro) avec le programme "Calculatrice", à vérifier pour le reste mais là : il faut remplacer p.close() par p.closemainwindow()

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
5
Date d'inscription
jeudi 9 mars 2006
Statut
Membre
Dernière intervention
8 avril 2008

Bonsoir,

Non toujours le même problème, je pense que c'est le user32 de :

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As
System.IntPtr
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
le dernier lien donné ne contient aucune API

peu ravi de voir que j'ai perdu mon temps mais bon
bonne continuation (sans moi)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp