Thema: Delphi key an console senden 2

Einzelnen Beitrag anzeigen

Benutzerbild von moin339
moin339

Registriert seit: 23. Sep 2002
Ort: Hamburg
136 Beiträge
 
#1

key an console senden 2

  Alt 4. Aug 2003, 18:49
Moin!

Ich möchte einen Taste an ein consolen programm senden. Zuerst wollte ich das ganze über das inputHandle der console machen aber das hat leider nicht funktioniert. Dann habe ich den Author des consolen-programms gefragt ob er die tasten vielleicht anders einließt. Er meinte er ließt die tasten mittels kbhit() und getch() ein. Wie kann ich dem consolen programm also tasten senden?

Ich habe es mal so probiert:

Delphi-Quellcode:
function enum(handle: THandle): Boolean; StdCall;
var Title : Array[0..255] of Char;
    ProcessId : HWND;
    absatz : string;
begin
  GetWindowText(handle, Title, 255);
  GetWindowThreadProcessId(handle, @ProcessId);
  absatz := char($0D) + char($0A);
  if ProcessId = ProcIdBuffer then // ProcIdBuffer ist die ProcessId der mit
  begin // CreateProcess gestarteten consolen-applikation
    ShowMessage(
    'ProccessId: ' + inttostr(ProcessId) + absatz +
    'Title: ' + title + absatz +
    'Handle: ' + inttostr(handle)
    );

    SendMessage(handle, WM_KEYDOWN, $4E, 0); //4E = Virtual-Key Code für 'N'
    SendMessage(handle, WM_KEYUP , $4E, 0);
  end;
  result := true;
end;

procedure TMainForm.Button2Click(Sender: TObject);
begin
  EnumWindows(@enum,0);
end;
Aber es passiert leider auch nichts

Kennt ihr eine andere (funktionierende) Lösung?

ciao, moin339
  Mit Zitat antworten Zitat