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