Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#6

Re: Control + Copy-Simulation funktioniert nicht!!

  Alt 4. Mai 2006, 10:32
Hier ein Stückchen Code auf einem meiner Projekte.
Es gibt definitiv keine Probleme mit Browsern.
Lediglich bei Terminalservern und anderen "Remote-Desktop Anwendungen" funktioniert es auf diesem Wege nicht.

Delphi-Quellcode:
procedure TMain.WMHotKey(var Msg: TWMHotKey);
begin

  // Warten, bis der Hotkey durch den User losgelassen wurde ...
  
  while not ((GetASYNCKeyState(VK_LSHIFT) = 0) and
    (GetASYNCKeyState(VK_RSHIFT) = 0) and
    (GetASYNCKeyState(VK_LSHIFT) = 0) and
    (GetASYNCKeyState(VK_RCONTROL) = 0) and
    (GetASYNCKeyState(VK_RCONTROL) = 0) and
    (GetASYNCKeyState(VK_LMENU) = 0) and
    (GetASYNCKeyState(VK_RMENU) = 0)) do
  begin
    Application.ProcessMessages;
  end;
  
  // CTRL+C senden

  keybd_event(VK_CONTROL, 0, 0, 0);
  keybd_event(Ord('C'), 0, 0, 0);
  keybd_event(Ord('C'), 0, KEYEVENTF_KEYUP, 0);
  keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
  
  // kurz warten, damit das Schreiben der Zwischenablage beendet werden kann
  sleep(200);
  Application.processmessages;

  // Clipboard auf Text prüfen und verarbeiten

  if Clipboard.HasFormat(CF_TEXT) then
    s := clipboard.AsText;

  ...
  ...
end;

Schöne Grüße,
Jens


PS:
Verschlüsselte PDF Dokumente verweigern ebenfalls das Kopieren von Objekten (auch Text) in die Zwischenablage.

Wenn du was ganz Geniales bauen willst, dann vergiss CTRL+C.
Der Babylon Translator beispielsweise, liest das Wort unter dem Mauszeiger über OCR aus.
Damit kannst du dann auch Textinformationen nutzen, die als Images vorliegen.
Terminalserver u.Ä. sind dann auch kein Problem mehr.
  Mit Zitat antworten Zitat