| |
VB.NET - FortgeschritteneMarkierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: msSuper | Datum: 15.12.17 08:10 |
| Hallo,
meine Anwender möchten gerne Texte in unterschiedlichen Anwendungen markieren können und per Hotkey an meine Anwendung übergeben, die dann den Text auswertet und danach recherchiert.
Bisher habe ich das nur für Excel hinbekommen.
Dazu habe ich zunächst einen Hotkey Systemweit angelegt.
Wenn Excel dann aktiv ist und der Anwender den Hotkey drückt, hole ich mir den Excel-Prozess und darüber Workbook und ActiveSheet um dann die aktive Celle auszulesen.
Mit dem Value davon kann meine Anwendung dann was anfangen.
Nur kann ich dies nicht für jeden Browser und jede andere Anwendung umsetzen.
Kann man das irgendwie globaler abfangen?
Mit Api Funktionen komme ich an das aktive Fenster und damit auch an den Fenstertitel, aber was ist der aktive Text?
Gruß | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: Manfred X | Datum: 15.12.17 16:59 |
| Hallo!
Eigentlich ist für solche Zwecke bei Windows die Verwendung
der Zwischenablage (Clipboard) vorgesehen.
Prinzipiell ist davon abzuraten, in fremden Anwendungen zu operieren,
zumal vernünftige Sicherheitseinstellungen (UAC) solche Aktivitäten
blockieren würden. | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: Franki | Datum: 17.12.17 02:57 |
| Hallo ManfredX,
richtig, die Zwischenablage ist da erste Wahl und die funktiniert ja auch programmübergreifend auf einem Rechner, egal von wo die Daten dort hin eingefügt wurden oder wieder ausgelesen werden.
Was aber interessant wäre:
Es müsste die Möglichkeit geben in einem (lokalen) Netzwerk auf alle Zwischenablagen der beteiligten Rechner zugreifen zu können.
Also z.B. Bearbeiten/Kopieren, Bearbeiten/Einfügen so zu gestalten, dass man im Netzwerk beim Einfügen auswählen kann aus welcher Zwischenablage man die Daten holt. Also Bearbeiten/Einfügen --> RechnerA --> RechnerB usw.
Ich hatte damals unter VBClassic so etwas mal programmiert zu W95/W98/W2000 Zeiten, das hat hervorragend funktioniert. Aber unter aktuellen Windows Versionen funktioniert das aus der von dir angesprochenen UAC halt nicht mehr.
Kennst du vielleicht eine Möglichkeit so etwas komfortabel zu realisieren. Also so etwas wie TeamViewer z.B. bietet. Da geht das auch im lokalen Netzwerk und sogar über Internet hervorragend. Aber so etwas sollte man doch auch heute noch selbst mit .NET entwickeln können...
Gruß
Frank | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: Manfred X | Datum: 17.12.17 06:49 |
| Hallo!
Ich würde einen Hintergrund-Dienst erstellen auf jedem Rechner
im Netz installieren. Dieser Prozeß witd beim Einloggen eines
Users in das Netzwerk gestartet und überwacht die lokale Zwischen-
Ablage.
Einträge eines bestimmten Typs (Texte, Bilder, ..) werden von
diesem Dienst in einer lokalen Datei (z.B. XML) gesammelt und in
regelmäßigen Intervallen (mit Angaben zu Uhrzeit und Benutzer) an
eine zentrale Datenbank im Netz weitergeleitet.
Mir ist nicht klar, warum man aus einer "fremden" Ablage
etwas in eigene Anwendungen einfügen oder dort ablegen sollte.
Ist das für die User im Netz nicht extrem verwirrend ???
Verträgt sich solche Funktionalität mit den vorgesehenen Aufgaben des
Clipboard ??? | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: Manfred X | Datum: 17.12.17 14:15 |
| Die Ausgangs-Frage war:
[I]meine Anwender möchten gerne Texte in unterschiedlichen Anwendungen
markieren können und per Hotkey an meine Anwendung übergeben[/I]
Der Einsatz des von mir vorgeschlagenen Kopier-Dienstes für das Clipboard
erfordert selbstverständlich die ausdrückliche Zustimmung der betroffenen
User. | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: msSuper | Datum: 18.12.17 08:07 |
| Hallo, da habe ich wohl meine Anforderung nicht exakt genug beschrieben!
Ich möchte keineswegs die Zwischenablage aller User im Netzwerk auslesen.
Der Anwender soll lediglich auf seinem Rechner die markierten Text-Abschnitte aus allen Anwendungen jederzeit einfach in die Anwendungsoftware (= von mir entwickelte Software (in VB.NET)) einfügen können.
Klar ginge das irgendwie per Zwischenablage, aber bequemer wäre es, wenn es mit weniger Tasten ( Also z.B. nur "CTRL-S" funktionieren würde.
Das es technisch irgendwie lösbar ist, zeigt mir die Telefonwählsoftware (auch auf Win10), bei der ich jedweden Text (Hier spezielle: Telefonnummern) markieren kann und dann wird diese am Telefon gewählt.
Genauso sollte das mit meiner Anwendungssoftware auch laufen können.
Der Anwender ist z.B in Word, markiert dort einen Text indem bspw. Projekt 12345 steht, drückt den Hotkey und schickt den markierten Text an meine Anwendung (Nur auf dem Anwender PC!) mit dem passenden Projekt.
Bisher umgesetzt habe ich das für Excel. Ungern möchte ich nun aber für jeden Browser und jedes andere lokale Programm eine Einzellösung programmieren.
Nochmal ganz Klar:
Es soll keine Überwachung oder Bevormundung des Anwenders statt finden. Er soll ganz einfach bei seiner Arbeit unterstützt werden. | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: msSuper | Datum: 18.12.17 14:46 |
| Einen Schritt bin ich weiter gekommen und zwar bekomme ich mit
SendMessage(hwnd, WM_GETTEXT, BufferSize, SB)
an den kompletten Text des aktuellen Controls der aktiven Anwendung.
Nun müsste ich nur noch herausfinden, welcher Abschnitt davon markiert ist - und welcher nicht.
Any Ideas? | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: msSuper | Datum: 18.12.17 15:27 |
| Der nächste Schritt:
Dim Result As Long = SendMessage(focusedControlHandle, EM_GETSEL, Nothing, _
Nothing)
Dim Sel As New Selection
Sel.Start = Result And &HFFFF
Sel.End = Result >> 16 Hiermit bekomme ich den markierten Abschnitt.
Bei den Anwendungen, die Textboxen zur Eingabe verwendet funktioniert dieser Ansatz.
Leider komme ich nicht an den Text der Browser heran.
Auch Excel, Outlook und Word zeigen sich widerspenstig und liefern leer zurück. | |
Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen | | | Autor: msSuper | Datum: 19.12.17 13:58 |
| Word, Outlook und Excel fange ich nun gezielt ab und
für alle anderen mache ich ein kleine OCR ausgehend vom aktuellen Cursor.
Das haut meistens hin. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|