![]() |
Mausklick + Ctrl und dann Text auslesen
Hallo Zusammen,
ich hoffe ihr könnt mir helfen. Sicherlich kennen einige von Euch den Babylon Translator. Dort kann man mit Hilfe von z.B. Rechter Maustaste + Ctrl die Übersetzung von dem Wort auf das man Klickt in einem belibigen Fenster übersetzen lassen. -> Es wird Babylon mit dem Wort aufgerufen. So etwas möchte ich für eine Anwengung haben, welches ich schreibe. Also wenn z.B. die Rechte Maustaste + Ctrl auf ein Wort soll mein Programm das Wort bekommen auf dem diese Aktion ausgeführt wurde. Leider habe ich in dieser Richtung noch nie etwas gemacht, könnt ihr mir da helfen? Muss ich das mit Hooks machen... wenn ja wie bekomme ich dann überhaupt den Text auf den geklickt wurde? Und muss ich den Hotkey registrieren? Vielleicht hat auch schon jemand ein Beispiel? :coder2: Oder weis jemand wo ich eine Anleitung dafür finde? Vielen Dank schon mal, Yves PS: Hab rausgefunden dass Babylon es mit OCR macht... das möchte ich nicht verwenden. Das muss sicher auch anders gehen! |
Re: Mausklick + Ctrl und dann Text auslesen
Zitat:
Wenns die linke Maustaste sein darf, dann setzt die den Cursor auf dein Wort und über die CaretPos-Eigenschaft von z.B. TMemo & TRichedit, findest du raus bei welchem Wort der Cursor sitzt. Wenns die rechte Maustaste sein soll, dann folgendes:
Delphi-Quellcode:
...und schon ist es wieder die linke, die dann das OnClick-Ereignis auslöst! :stupid:
procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if mouse.Button = mbRight then begin mouse_event(MOUSEEVENTF_LEFTDOWN, mouse.CursorPos.x, mouse.CursorPos.y, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, mouse.CursorPos.x, mouse.CursorPos.y, 0, 0); end; end; Zitat:
Hier ein ähnliches Problem: ![]() MfG GM |
Re: Mausklick + Ctrl und dann Text auslesen
Hallo,
habe während dessen auch noch in mehreren Foren gesucht. Und zwei Möglichkeiten gefunden. 1. Senden von Strg+C (was nicht empfohlen wird) 2. WM_GETTEXT welches beim InternetExploer und Word nicht klappt Bekommt man mit WM_GETTEXT den ganzen Text oder nur welcher selektiert ist? Wenn ja, gibt es auch eine Möglichkeit auser Str+C für alle Programme? Noch zu Info... es geht eigentlich nur über mein Programm heraus. Mein Programm verarbeitet den String nur. Und wenn es nur über Strg+C klappen sollte, gibt es dann eine Möglichkeit den ganzen Inhalt der Zwischenablage, egal welches Typs zu sichern und hinterher wieder hineinzuschreiben? Ich denk, die Aufgabe ist echt nicht leicht... habe bis jetzt noch nicht eine überzeugende Lösung gefunden! Danke, Yves |
Re: Mausklick + Ctrl und dann Text auslesen
Zitat:
aber es geht bei bildern nunmal nicht anderst ;) und eventuell bei sehr vielen unterschiedlichen anwendungen, die den text nicht als standard label haben, den man auslesen könnte, sonder neine eigene zeichen procedur haben, die du nicht kennst und nicht anzapfen/auslesen kannst |
Re: Mausklick + Ctrl und dann Text auslesen
Du wirst schon bei einer TLabel Komponente von Delphi selbst scheitern, da diese kein Handle hat, denn sie ist nicht von TWinControl abgeleitet.
Und wenn es wirklcih was bringen soll, dann wirst du um OCR nicht drumrumkommen. |
Re: Mausklick + Ctrl und dann Text auslesen
Hi,
danke schon mal für die Antworten. Ich habe gesehen, dass es bei Torry eine OCR Komponente gibt. Lässt sich dann sowas mit dieser Komponente realisieren? Und dann steckt ja einiges an Programmierung dahinter, damit man auch wirklich den Text unter dem Cursor bekommt! Hat sowas noch niemand gemacht? Danke, Yves |
Re: Mausklick + Ctrl und dann Text auslesen
Hi Zusammen,
ich hab schon mal weiter geschaut und hab gemerkt, dass sich der Aufwand nicht lohnt OCR zu benutzen. Also versuche ich mal die Variante mit Ctrl+C. Leider hab ich da gleich ein Problem. Bei Notepad, Word, Excel klappt es, aber bei I-Explorer und Firefox macht er nichts.
Code:
Eigentlich müsste das doch überall klappen, warum macht er das ausgerechnet bei den Browsern nicht?
Memo1.Lines.Clear;
Clipboard.Clear; GetCursorPos(rPos); hWnd := WindowFromPoint(rPos); SendMessage(hwnd, WM_COPY, 0, 0); Memo1.PasteFromClipboard; Danke, Yves |
Re: Mausklick + Ctrl und dann Text auslesen
Hoi
Schick besser die Tastenkombination, das raffen alle Edits, auch die ohne Handle. Gruss Shaman |
Re: Mausklick + Ctrl und dann Text auslesen
wie kommst du daraf das sich der einsatz von OCR nicht lohnt ?
nur weil du nicht weist, wie man die Komponente einsetzt ? oder wie ? ausserdem: Zitat:
|
Re: Mausklick + Ctrl und dann Text auslesen
Hallo supermuckl,
ja ich weis nicht wie ich das OCR einsetzen soll, hab auch noch gar keine Komponente gefunden. Und wenn kosten die alle Geld. Mein Programm sollte eigentlich auch nur den Text von Browser, TextEditoren und OfficeProdukten erkennen, und da dürfte es mit Ctrl+C klappen. Und wenn ich OCR verwenden sollte, wo gibt es was kostenlos? Und muss ichmich dabei gleichzeitig mit Neuronalen Netzen beschäftigen... Da ist mir der Aufwand zu groß! Da gibt es wohl keine andere Lösung! Gruß, Yves |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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-2025 by Thomas Breitkreuz