![]() |
Menüeinträge "virtuell" anklicken
Liste der Anhänge anzeigen (Anzahl: 1)
Alo und salut!
Hab grad ein Programm geschrieben, das das Hauptmenü eines ausgewählten Fensters auflistet. Die Idee dahinter ist sone Art Videorecorder für WinTV2000, sodass man nur Ort und Zeit eingeben müsste, und das eigene Programm automatisch auf die entsprechenden Menüeinträge "Start Recording" und "Stop Recording" klickt. Leider fehlt mir zurzeit noch das Know-How dazu, auf einen Menüeintrag per SendMessage zu klicken . Zudem wär es auch nützlich, wie man auch die ganzen andren in der Anwendung herumschwirrenden PopUpMenus auflisten kann. Kennt sich jemand von euch aus?! |
Re: Menüeinträge "virtuell" anklicken
Zitat:
![]() ciao, Philipp |
Re: Menüeinträge "virtuell" anklicken
THANX!!!
Scheint zu funktionieren :-D . Jetzt steht nur noch offen, wie ich PopUpMenus aufliste... *ausprobier**tüfftel**tüfftel* |
Re: Menüeinträge "virtuell" anklicken
Zitat:
ciao, Philipp |
Re: Menüeinträge "virtuell" anklicken
Zitat:
|
Re: Menüeinträge "virtuell" anklicken
Ich weis nicht wie oft ich diese 3 worte heut noch in den mund nehmen will, aber egal: API/Function Hooking. Du kannst theoretisch jedes popupmenü über z.B. TrackPopupMenü (bzw. die -Ex version) abfangen. Da kannst du dann feststellen was sich im menü befindet, aber dazu musst du es erst einmal von hand aufrufen ...
Gemacht habe ich das z.B. in meinem projekt inettime, dass ich hier in der dp gepostet hab. Diese Methode ist für dein Problem allerdings nicht gerade die beste Lösung. Eine weitere Methode wäre z.B. die exedatei wie mit dem ResourceHacker auseinanderzunehmen, und versuchen so die menüs zu finden, was allerdings noch komplizierter und warscheinlich weniger effektiv wäre ... ciao, Philipp |
Re: Menüeinträge "virtuell" anklicken
Ich werd' mal sehen, was sich mit diesem Wissen anfangen lässt.
Den ResHacker hab ich schon vorher benutzt... allerdings fehlt genau das Untermenu was ich brauche, was heißt, dass einige Einträge erst zur Laufzeit erzeugt werden :( . |
Re: Menüeinträge "virtuell" anklicken
Wie gesagt, die einzig mir bekannte Methode wäre einmaliges manuelles aufrufen der popupmenüs, die dann über den hook registriert und geloggt werden.
Die Methode die dem ResourceHacker ähnlich ist, ist eigentlich keine alternative, da sich hier noch viel mehr probleme auftun, angefangen von dem problem exepacker, bis hin zum auseinandernehmen des programms. ciao, Philipp |
Re: Menüeinträge "virtuell" anklicken
Letztendlich brauch ich ja nur die ID von dem benötigten Menüeintrag, da wäre ResHacker schon die ideale Lösung gewesen, wenn das Menü tatsächlich in den Resourcen der EXE abgelegt gewesen wäre...
So könnte man, um für dieses Thema einmal zu rekapitulieren, einfach folgendes machen:
Delphi-Quellcode:
@c113plpbr: Kennst du einige API/Function-Hooking-Tutorials? Will mich hier nicht kaputtsuchen ^^. Solange eine Lösung zu existieren scheint, ist's mir egal, wie schwierig es sein mag.
SendMessage(<Fenster-Handle>, WM_COMMAND, <Menüeintrags-ID>, 0);
|
Re: Menüeinträge "virtuell" anklicken
So richtige Tutorials kenn ich nicht, ich hab das meiste aus beispielen gelernt. Ein beispiel, wie gesagt, findest du hier in der dp in meinem 'programm'
![]() Ich hoffe, das hilft dir weiter, und ich denke, es ist die einzige, wirklich einigermaßen sinnmachende, lösung für dein problem. Wenn du es ned hinkriegst, kannste mich ja kontaktieren, per pn, oder email, und wenns sein muss, auch per icq ... ^^ ... ciao, Philipp |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz