AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mausklick + Ctrl und dann Text auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Mausklick + Ctrl und dann Text auslesen

Ein Thema von yvesdaeschle · begonnen am 5. Jan 2005 · letzter Beitrag vom 5. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
yvesdaeschle

Registriert seit: 22. Nov 2004
Ort: Efringen
26 Beiträge
 
Delphi 6 Personal
 
#1

Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 01:21
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!
  Mit Zitat antworten Zitat
Benutzerbild von gmarts
gmarts

Registriert seit: 4. Apr 2004
Ort: Templin
290 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 02:21
Zitat von yvesdaeschle:
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.
So würde ich es in einer eigenen DelphiAnwendung machen:
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:
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;
...und schon ist es wieder die linke, die dann das OnClick-Ereignis auslöst!





Zitat von yvesdaeschle:
PS: Hab rausgefunden dass Babylon es mit OCR macht... das möchte ich nicht verwenden. Das muss sicher auch anders gehen!
Wenn du es über deine Anwendung hinaus brauchst, wirst du es wahrscheinlich auch so machen müssen.
Hier ein ähnliches Problem: Textfeld eines externen Programms ansprechen?

MfG GM
procedure TForm1.Button1Click(Sender: TObject);
begin
button1.Click;
end;
  Mit Zitat antworten Zitat
yvesdaeschle

Registriert seit: 22. Nov 2004
Ort: Efringen
26 Beiträge
 
Delphi 6 Personal
 
#3

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 02:28
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
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 02:59
Zitat:
PS: Hab rausgefunden dass Babylon es mit OCR macht... das möchte ich nicht verwenden. Das muss sicher auch anders gehen!
stimmt, babylon nutzt OCR
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
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 04:12
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
yvesdaeschle

Registriert seit: 22. Nov 2004
Ort: Efringen
26 Beiträge
 
Delphi 6 Personal
 
#6

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 09:43
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
  Mit Zitat antworten Zitat
yvesdaeschle

Registriert seit: 22. Nov 2004
Ort: Efringen
26 Beiträge
 
Delphi 6 Personal
 
#7

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 10:24
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:
  Memo1.Lines.Clear;
  Clipboard.Clear;
  GetCursorPos(rPos);
  hWnd := WindowFromPoint(rPos);
  SendMessage(hwnd, WM_COPY, 0, 0);
  Memo1.PasteFromClipboard;
Eigentlich müsste das doch überall klappen, warum macht er das ausgerechnet bei den Browsern nicht?

Danke, Yves
  Mit Zitat antworten Zitat
Benutzerbild von Shaman
Shaman

Registriert seit: 2. Nov 2003
Ort: Schweiz
407 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 10:41
Hoi

Schick besser die Tastenkombination, das raffen alle Edits, auch die ohne Handle.

Gruss
Shaman
Daniel Pauli
Looking for answers from the great beyond
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 10:43
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:
Du wirst schon bei einer TLabel Komponente von Delphi selbst scheitern, da diese kein Handle hat, denn sie ist nicht von TWinControl abgeleitet.
das ist genau das was du da hast. dein problem
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
yvesdaeschle

Registriert seit: 22. Nov 2004
Ort: Efringen
26 Beiträge
 
Delphi 6 Personal
 
#10

Re: Mausklick + Ctrl und dann Text auslesen

  Alt 5. Jan 2005, 13:08
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz