vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Markierten 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ß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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 ???
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen 
Autor: effeff
Datum: 17.12.17 11:24

Nennt man so etwas dann nicht schon fast "KeyLogger"?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Markierten Text in externer, -beliebigen- Anwendung finden und nutzen 
Autor: effeff
Datum: 17.12.17 22:49

Nicht so ernst nehmen, Cowboy! Die Ausgangslage ist eine Andere als von Dir dargestellt. Aber die Richtung ist schon fast richtig...

Es wäre doch klasse, könnte man feststellen, was auf jedwedem Rechner im Netzwerk geschieht. Das ist nicht schwierig, doch auf jeden Fall personal- oder betriebsratsmäßig nicht zu verwenden. Aber dazu benötigt man solche Sachen nicht, selbst ohne sowas ist ein Rechner viel zu sehr zu kontrollieren. Man kann ja alles auslesen...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel