Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text unterMaus bzw.Text aus aktivem Fenster inZwischenablage (https://www.delphipraxis.net/65528-text-untermaus-bzw-text-aus-aktivem-fenster-inzwischenablage.html)

benst 17. Mär 2006 16:20


Text unterMaus bzw.Text aus aktivem Fenster inZwischenablage
 
Hi,

ich benötige folgende Funktion:
1. Das Programm soll Text unterhalb des Mauszeiger (z.B. aus Word, Outlook, Editor, ...) automatisch in die Zwischenablage kopieren (und anzeigen).
2. Das Programm soll Text aus dem aktiven Fenster automatisch in die Zwischenablage kopieren (und anzeigen).
Wie kann ich das bewerkstelligen?

Gruß
Ben

marabu 17. Mär 2006 17:01

Re: Text unterMaus bzw.Text aus aktivem Fenster inZwischenab
 
Hi Ben,

du solltest genau beschreiben, welches Ereignis den Kopiervorgang auslösen soll, in welchem Format die Daten in der Zwischenablage abgelegt werden sollen, und wie der Umfang des zu kopierenden Textes bestimmt werden soll.

Grüße vom marabu

benst 17. Mär 2006 17:20

Re: Text unterMaus bzw.Text aus aktivem Fenster inZwischenab
 
@marabu
Das Programm soll evt. mit einem Timer schauen, ob in dem aktuellen Fenster Text ist und ihn dann in als Text in die Zwischenablage kopieren - reine Text(ohne Formatierung)! (als wenn ich alles markieren würde und dann in die Zwischenablage kopieren würde).
Bei PGP oder WinPT gibt es z.B. die Funktion "aktuelles Fenster verschlüsseln" - so ähnlich halt.
Mein Problem ist, dass ich nicht weiß, wie ich prüßen kann, ob Text unter der Maus ist, kann ja nicht ständig "Strg+A" + "Strg+C" ausführen.
Ben

marabu 17. Mär 2006 17:28

Re: Text unterMaus bzw.Text aus aktivem Fenster inZwischenab
 
Du könntest das aktive Eingabefenster mit der Funktion GetFocusedControl() ermitteln, den darin enthaltenen Text mit GetWindowText() auslesen und diesen Text dann an ClipBoard.AsText übergeben.

marabu

benst 17. Mär 2006 17:53

Re: Text unterMaus bzw.Text aus aktivem Fenster inZwischenab
 
@marabu
Vielen Dank.
...

Delphi-Quellcode:
function GetFocusedControl: HWnd;
var
  tid: Cardinal;
  hw: HWND;
begin
  hw := GetForegroundWindow;
  tid := GetWindowThreadProcessID(hw, nil);
  if AttachThreadInput(GetCurrentThreadID, tid, true)
    then Result := GetFocus
    else Result := HWND(-1);
  AttachThreadInput(GetCurrentThreadID, tid, false);
end;


procedure TForm1.Button20Click(Sender: TObject);
var Buffer: array[0..99] of Char;
begin
GetWindowText(GetFocusedControl(), Buffer, 100);
ClipBoard.AsText:=StrPas(Buffer);
end;
So in etwa? Natürlich wird der Tastendruck über einen Timer ausgelöst.
Aber ich bekomme nichts in die Zwischenablage. Was mache ich falsch.
Gruß
Ben

benst 17. Mär 2006 18:05

Re: Text unterMaus bzw.Text aus aktivem Fenster inZwischenab
 
.. ach ne jetzt habe ich das verstanden, ich bekomme den Titel, aber ich möchte doch gar nicht den Titel sondern den Textinhalt von einem z.B. Editor.
Ben

marabu 17. Mär 2006 18:38

Re: Text unterMaus bzw.Text aus aktivem Fenster inZwischenab
 
Ich dachte wirklich, dass der Weg so funktioniert. Schade.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz