Entwickler-Ecke

Windows API - Ok Button click simulieren


Anonymous - Mo 14.04.03 15:37
Titel: Ok Button click simulieren
Hallo, ich habe mal ne kruze Frage.

Wie ist es möglich einen Button Click eines anderen Programms zu simulieren.

Es geht dabei einfach um einen Ok/abbrechen Dialog.

Hoffe auf schnelle Hilfe.

Alex


Popov - Mo 14.04.03 15:48

Dazu brauchst du das Handle des Buttons. Hast du das Handle des Buttons?


Delete - Mo 14.04.03 16:01

Das habe ich glaube ich schon tausendmal gepostet. Mit Findwindow Hauptfenster suchen, mit FindWindowEx den Button und dann ein BM_CLICK an den Button schicken - fertig.


Da_Knuddelbaer - Mo 14.04.03 18:10

Oh Luckie, es gibt hier zig Themen die immer wieder gefragt werden :D
Als Beispiel wäre da noch die Verschlüsselung etc. :wink:


patrick - Mo 14.04.03 19:17

vieleicht was in die FAQ sparte schreiben?
das könnte unter umständen die anzahl der fragen reduzieren?


Anonymous - Mo 14.04.03 21:25
Titel: Code
Kann mal jemand nen Code posten?


Da_Knuddelbaer - Di 15.04.03 09:08

Popov hat folgendes geschrieben:
Dazu brauchst du das Handle des Buttons. Hast du das Handle des Buttons?


Beziehungsweise weißt du irgendwas von dem Button den Du klicken willst?


Delete - Di 15.04.03 09:28

So mal frei aus dem Kopf:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function ClickOK(sCaption: String): Boolean;
var
  hWnd, hBtn : cardinal;
begin
  result := false;
  hWnd := FindWindow(nil, pointer(sCaption));
  if hWnd <> 0 then
  begin
    hBtn := FindWindowEx(hWnd, 0, nil, 'OK');
    if hBtn <> 0 then
    begin
       SendMessage(hBtn, BM_CLICK, 0, 0);
       result := TRUE;
    end;
  end;
end;


Anonymous - Sa 19.04.03 15:36
Titel: Code funktioniert nicht....
Leider funktioniert der Code bei mir nicht.....


Also noch einmal mit voller Erklärung:


Ich habe ein Programm das sich automatisch mit dem Internet verbindet, doch bei meinen Netzwerkrechnern ist es erforderlich einen Benutzernamen und ein Kennwort einzugeben. Dazu öffnet sich ein dialog. Der Benutzername und das Kennwort stehen zum Glück schon fest in diesem Dialog, ich muss es nur schaffen diesen dialog zu bestätigen.

Wie schaffe ich das?


Delete - Sa 19.04.03 16:07
Titel: Re: Code funktioniert nicht....
Ak-Alex hat folgendes geschrieben:
Leider funktioniert der Code bei mir nicht.....

Wie soll ich dir nach der Aussage helfen? Was funktioniert nicht? Bekommst du gültige Handles?


noxe - Fr 05.11.04 11:30

Nehme PostMessage statt SendMessage und sollte funktionieren.


patrick - Fr 05.11.04 16:32

:welcome: im DF
aber der letzte beitrag ist schon über ein jahr her:
Sa. 19 Apr. 2003 ,15:07
bitte das nächste mal aktuellere sachen raussuchen :twisted:


BenBE - Sa 06.11.04 00:24

Zumal ich glaube, dass Ak-Alex die Lösung gar nicht mehr interessiert. Tät mich mal interessieren, warum nur noch Gast? Admin-Löschung seines Accounts oder freiwilliger Rückzug?


tommie-lie - Sa 06.11.04 11:56

BenBE hat folgendes geschrieben:
Admin-Löschung seines Accounts oder freiwilliger Rückzug?
Beides, vom Admin wurde er auf jeden Fall gelöscht. ;-) Aber User werden hir nicht einfach gelöscht, es war also höchstwahrscheinlich ein freiwilliger Rückzug.