Einzelnen Beitrag anzeigen

Leo0385

Registriert seit: 19. Mär 2007
2 Beiträge
 
#8

Re: Tastenkombination an Programm senden

  Alt 19. Mär 2007, 13:30
Ich stehe zur Zeit vor dem gleichen Problem. Eine Lösung wäre diese hier:
Delphi-Quellcode:

procedure PostKeyDown(key: Byte);
begin
  keybd_event(key, Mapvirtualkey(key, 0), 0, 0 );
end;

procedure PostKeyUp(key: Byte);
begin
  keybd_event(key, Mapvirtualkey(key, 0), KEYEVENTF_KEYUP, 0 );
end;


TForm1.Button1Click(Sender: TObject);
...
...
  wnd := FindWindowEx(0, 0, nil, 'Deine Anwendung');
  if wnd <> 0 then
  begin
    // weil die Proc PostKeyDown kein HWND benutzt,
    // muss das ZielFenster im Vordergrund stehen

    SetForegroundWindow(wnd);
    ShowWindow(wnd, 1);

    // 1 Sek. Verzögerung, um sicher zu stellen, dass
    // das ZielFenster bereit ist.

    Sleep(1000);

    // Jetzt die Tastenkombinationen senden...
    // (= DATEI SPEICHERN)

    PostKeyDown(VK_MENU);
    PostKeyDown(Ord('D'));
    PostKeyUp(Ord('D'));
    PostKeyUp(VK_MENU);
    PostKeyDown(Ord('S'));
    PostKeyUp(Ord('S'));
  end;
...
...
end;
Das wird dir helfen, wenn du die Abhandlung lokal durchführen willst. Ich stehe allerdings weiterhin vor dem Problem, weil meine Lösung auf einem REMOTE-PC laufen muss. Und wenn die Console geschlossen wird, funktioniert keybd_event leider nicht mehr.

Hat es vielleicht jmd fertig gebracht, mit PostMessage(wnd, WM_??????, VK_MENU, lParam) die Alt-Taste auszulösen? Ich würde mich über jede Hilfe freuen.

Gruß
Leo
  Mit Zitat antworten Zitat