Bonjour à tous,
voilà mon problème: je voudrais stopper une application (développée par mes soins) à l'aide d'une seconde application. Voici ce que j'ai codé:
D'après ce que j'ai compris pour l'utilisation de la fonction FindWindow, il lui faut en premier paramètre, le nom de la classe, puis en second, un éventuel paramètre du nom de la fenêtre (http://tcharles.developpez.com/simul/#handleprecis)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 HWND hHandle = FindWindow("TApplication", NULL); DWORD dwTmp; if(hHandle == NULL) { dwTmp = GetLastError(); } PostMessage(hHandle, // handle of destination window WM_CLOSE, // message to post 0, // first message parameter 0 // second message parameter ); return;
J'ai donc regardé du côté de la fonction Application->ClassName du programme que je veux fermer, et il m'a retourné la valeur TApplication.
Le problème est que le soft qui me permet de fermer mon premier programme (avec le code ci-dessus) est également développé avec Builder, et donc, sa ClassName est aussi TApplication. Du coup, quand je le lance, il se ferme lui-même (logique...)
Par contre, je n'ai pas eu la main sur le programme que je voulais fermer.
Avez vous une idée qui pourrait m'aider à retrouver le Handle de mon soft? Comment faire pour connaître le nom de la fenêtre? Et si celui-ci change au cours du déroulement du programme?
N'est-t'il pas possible de changer le nom du ClassName, et ainsi remplacer TApplication par un nom perso? (comme "Media Player 2" pour le média player cf http://tcharles.developpez.com/simul/#handleprecis)
Merci de vos conseils !![]()
Partager