IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème avec API FindWindow sous "Microsoft Visual Basic 2008 Express"


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Problème avec API FindWindow sous "Microsoft Visual Basic 2008 Express"
    Bonjour,

    ... en fait je ne sais même pas si je suis dans le bon forum...

    Jusqu'à présent, je programmais toujours en VBA dans Excel... ça va je me débrouille...

    Pour aller un peu plus loin, je souhaitais tester "Microsoft Visual Basic 2008 Express"... Par contre là je galère un peu...


    J'ai un programme qui fonctionne très bien sous VBA, mais pas avec "Microsoft Visual Basic 2008 Express"...

    Voici mon code, qui permet via les api de récupérer le Handle de la calculatrice Windows XP, puis de la fermer (c'est un exemple)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Module Module1
        Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
        Private 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
     
        Private Const WM_CLOSE = &H10
        Sub test()
            Dim m_hWnd As Long
     
            m_hWnd = FindWindow(vbNullString, "Calculatrice")
            Call PostMessage(m_hWnd, WM_CLOSE, 0, vbNull)
     
        End Sub
     
    End Module

    En fait avec VBA la calculatrice se ferme bien... mais pas avec "Microsoft Visual Basic 2008 Express".

    Quelqu'un peut-il m'aider !? (je souhaite une solution via l'api)



    PS : D'ailleurs c'est quoi comme type de "Visual Basic " avec "Microsoft Visual Basic 2008 Express"... du VB.net ? c'est bien ça ???


    Merci
    a+

    Damsmut

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 167
    Points
    17 167
    Par défaut
    Citation Envoyé par damsmut Voir le message
    Bonjour,
    ........
    PS : D'ailleurs c'est quoi comme type de "Visual Basic " avec "Microsoft Visual Basic 2008 Express"... du VB.net ? c'est bien ça ???
    ........
    Oui d'où le déplacement.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Peut être en utilisant les déclarations "correctes" ?
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function FindWindow( _
         ByVal lpClassName As String, _
         ByVal lpWindowName As String) As IntPtr
    End Function
     
    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
    Private Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As Boolean
    End Function

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    C'est bon j'ai trouvé.
    En fait il faut changer tous les "Long" en "Integer", car les Integer sont sur 32 bits en VB .Net.

    A+
    Damsmut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb utilisation Split avec Visual basic 2008 Express
    Par duarep dans le forum VB.NET
    Réponses: 14
    Dernier message: 26/08/2013, 17h29
  2. Réponses: 0
    Dernier message: 19/03/2010, 18h03
  3. Ecrire un mail Outlook avec Visual Basic 2008 Express
    Par Pingouin1313 dans le forum VB.NET
    Réponses: 7
    Dernier message: 28/10/2009, 22h38
  4. Réponses: 2
    Dernier message: 19/03/2008, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo