Fermer programme Windows mobile 5

slayerpapillon Messages postés 5 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 8 avril 2008 - 4 avril 2008 à 21:53
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 8 avril 2008 à 19:38
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

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 14:10
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
0
slayerpapillon Messages postés 5 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 8 avril 2008
6 avril 2008 à 19:08
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!
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 19:44
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
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 19: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
0

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

Posez votre question
slayerpapillon Messages postés 5 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 8 avril 2008
6 avril 2008 à 20:28
Maintenant j'ai une erreure DLL Pinvoke 'user32' introuvable
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 21:22
sur laquelle?!
quelle API?
0
slayerpapillon Messages postés 5 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 8 avril 2008
6 avril 2008 à 22:03
Le findWindow

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As System.IntPtr
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 23:40
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
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 avril 2008 à 01:54
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
0
slayerpapillon Messages postés 5 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 8 avril 2008
8 avril 2008 à 19:01
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
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
8 avril 2008 à 19:38
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
0