|
| Connaitre la fenêtre active d'une autre application |
| Iniciado por mdelrue, 21,abr. 2009 18:04 - 4 respuestas |
| |
| | | |
|
| |
| Publicado el 21,abril 2009 - 18:04 |
Bonjour, Je dois développer une application externe qui peut être intégrée dans Sage Gescom l 100. Je voudrais a partir de cette application Windev connaitre le handle de la fenêtre sage pour la fermer, mettre a jour les données pouis envoyer un double clic a l'écran top most du moment. Comment faire. 1) pour récupérer le handel ou le nom de la fenêtre SAGE. 2) pour la fermer. 3) envoyer le double clic
Merci |
| |
| |
| | | |
|
| | |
| |
| Publicado el 21,abril 2009 - 19:42 |
Voici le code que j'utilise
// code dans un bouton nFichier est un entier = fOuvre("C:\HandleFenêtre.txt", foCréation) SI nFichier=-1 ALORS Erreur("Problème fichier") FinProgramme() FIN // On lance l'énumération AppelDLL32("User32", "EnumWindows", &EnumFenêtre, nFichier) // On ferme le fichier fFerme(nFichier)
// code de la procedure "call back" PROCEDURE EnumFenêtre(nHwnd est un entier, nFichier est un entier) // On écrit dans le fichier fEcritLigne(nFichier, nHwnd) RetourFonction est un entier // Type C :INT hWnd est un entier // Type C :HWND lpString est une chaîne // Type C :LPSTR, c'est l'adresse d'une chaîne, il est aussi possible de spécifier directement une chaîne nMaxCount est un entier = 255 // Type C :int str est une chaîne
RetourFonction=AppelDLL32("USER32","GetWindowTextA",nHwnd,lpString,nMaxCount) fEcritLigne(nFichier, lpString) RENVOYER Vrai
Le but est de récupérer les noms des fenêtres dont celles de sage (ou autre appli) pour pourvoir fermer fermer celle qui m'intéresse. Dans ce code, j'essaie de voir comment sont coder les noms de fenêtre. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 03,diciembre 2012 - 15:15 |
Bonjour, J'ai la même problématique, as tu trouvé une solution ? |
| |
| |
| | | |
|
| | |
| |
| Publicado el 20,mayo 2019 - 11:03 |
Bonjour,
Si c'est juste pour fermer une application dont vous connaissez le nom de l'executable (ex: monappli.exe) vous pouvez utiliser la commande dos 'TASKKILL', regardez la syntaxe avec 'TASKKILL /?'. Cela pourrait donner : LanceAppliAssociée("TASKKILL /IM monappli.exe /F") N.B : Cette fonction va fermer TOUTES les applications avec ce nom (attention donc si vous ne voulez en fermer qu'une seule !). |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 69 mensajes |
|
| Publicado el 21,mayo 2019 - 15:19 |
Bonjour,
Il est également possible de fermer l'autre application en envoyant un message Windows avec les touches ALT+F4 pour commander la fermeture de la fenêtre principale de l'autre application.
Voir Postmessage, SendMessage.
Bon développement |
| |
| |
| | | |
|
| | | | |
| | |
|