Faire une injection dll et besoin de détruire une certaine fenêtre. Cependant, DestroyWindow
ne fonctionne que si le même thread qui a créé la fenêtre l'appelle. Sinon, il échoue avec l'erreur 5: Accès refusé. J'ai pensé que peut-être je pourrais l'amener à penser que j'étais le thread de création en obtenant l'identifiant de thread (DWORD dwTid = GetWindowThreadProcessId
), puis en définissant l'ID de thread du thread en cours: __writefsdword(0x24, dwTid)
mais il échoue toujours avec l'erreur 5, Accès refusé.Comment détruireWindow à partir de thread à distance?
Après quelques recherches, je n'ai pas encore trouvé de réponse.
BTW: Je suis conscient que je pourrais envoyer WM_DESTROY
Cependant, par curiosité et la nécessité de résoudre des problèmes, je veux savoir comment le faire avec DestroyWindow
.
Avez-vous essayé de poster WM_CLOSE dans la fenêtre? – Robinson
"BTW: Je suis conscient que je pourrais envoyer WM_DESTROY cependant, par curiosité et le besoin de résoudre des problèmes, je veux savoir comment le faire avec DestroyWindow." - Y compris WM_CLOSE. Désolé, aurait dû être plus précis. –
Je ne suis pas sûr des problèmes que vous avez besoin de résoudre qui vous obligent à faire quelque chose de simple et direct d'une manière compliquée. Peut-être pouvez-vous expliquer le problème que vous essayez de résoudre et nous pouvons vous aider à trouver des solutions à ce problème? – Basya