#1 29. Mai 2006 Bräuchte mal eure Hilfe! Und zwar müsste ich wissen, wie ich es schaffe, dem Programm zu sagen, dass er die linke Maustaste klicken soll. Ich weiß nur wie es innerhalb einer Form geht. Aber wie geht es, wenn ich die Maus (virtuell) auf den Startbutton geschoben habe und das Programm das Startmenü nun aufmachen soll?? Wäre nett, wenn einer den Quelltext posten könnte...:] P.S: Ich weiß, dass es einen Befehl gibt, der das Menü öffnet (>SendMessage(Application.Handle, WM_SYSCOMMAND, SC_TASKLIST, 0)<). Aber es wäre auch hilfreich bei anderen Anwendungen, wie z.b. Programme öfnnen oder so... Thx 4 Help Fanatic + Multi-Zitat Zitieren
#3 29. Mai 2006 ThX aber soweit bin ich acuh gekommen. Da steht, dass die Anwendungen, wie sie dort beschrieben werden, nur innerhalb einer Form wirken, also nicht auf dem ganzen Bildschirm. Und ich habe keine Form, sondern ich benutze den Windowsbilschirm... Fanatic + Multi-Zitat Zitieren
#4 30. Mai 2006 Dann meld dich in dem selbem Forum an und such da nochmal. Wenn du immernoch nichts findest frage im forum nach. Die wissen (fast) alles. Forum Noch en kleinen Tipp am Rande... in dem Forum ist der Admin ziemlich "streng", also schreib alles ganz ordentlich und ausführlich und SUCHE VORHER, sonste kriegste da schnell einen drüber cheers + Multi-Zitat Zitieren
#7 1. Juni 2006 Doch, aber sowas hat man nicht im Kopf. Frag in dem Forum nach, das ich gepostet habe oder such nochmal in den Tips und Tricks. + Multi-Zitat Zitieren
#8 1. Juni 2006 also was asdrexit geschreiben hat ist schon volkommen richtig Code: VOID mouse_event( DWORD dwFlags, // flag zum festlegen der Aktion (maus bewegen, klicken etc.) DWORD dx, // horizontale mausposition DWORD dy, // vertikale mauspositon (an der die Aktion ausgeführt werden soll) DWORD dwData, // Menge der Mausradbewegungen (hab ih noch nie gebraucht, am besten immer nil ^^) DWORD dwExtraInfo // 32 bit mit speziellen Anwendungs-Informationen (eigentlich reicht auch immer nil) ); das "virtuelle" umsetzen der maus funktioniert aber leider nicht so richtig, wesshalb du in dem fall die funktion SetCoursorPos benutzen musst, um den mauszeiger tatsächlich (auch optisch) auf den startbutton zu setzen. Code: BOOL SetCursorPos( int X, // horizontal position int Y // vertical position ); das könnte so aussehen: Code: procedure ClickStartButton(); var p : TWindowPlacement ; x, y : Integer; hWnd : Handle; { wenn Handle nicht geht probier mal HWND } begin hWnd := FindWindow('Shell_TrayWnd', nil); GetWindowPlacement(hWnd, @p); x := p.rcNormalPosition.left+5; y := p.rcNormalPosition.top+10; SetCursorPos(x,y); mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0); end; Hier eine Methode um das Start-Menü zu öffnen, ohne die Maus bewegen zu müssen Code: PostMessage(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0, 'Button', nil), WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(1, 1)); PostMessage(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0, 'Button', nil), WM_LBUTTONUP, MK_LBUTTON, MAKELONG(1, 1)); Sollten kleine syntaktische Fehler drinnen sein, bitte ich um Verzeihung, ich code sonst nur C++ + Multi-Zitat Zitieren