Gezielt in Eingabefelder springen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Gezielt in Eingabefelder springen

    Hallo Forum,

    ich habe ein Spracherkennungsprogramm
    mit dem ich den Cursor bewegen kann.

    Zum Beispiel, wenn ich eine Adressdatei
    ausfülle, setze ich den Cursor in das erste Eingabefeld und nachdem
    es ausgefüllt ist sage ich „Tabulator“ und er springt in das
    nächste Eingabefeld, das funktioniert.

    Zu meiner Frage:

    ich möchte den Cursor gezielt in
    gewisse Felder springen lassen zum Beispiel von Name zur
    Postleitzahl.

    Das Programm wo die Adressdatei ist,
    wurde zum Beispiel mit visual Fox geschrieben, kann aber auch mit
    einer anderen Sprache geschrieben sein und es gibt keinen Sourcecode.

    Ist es möglich ein Eingabefeld
    irgendwie zu identifizieren? Damit ich mit einem Skript das Feld
    anspringen kann?

    Würde mich sehr freuen wenn jemand
    eine Lösung hätte

    LG

    Ronald
    Willkommen im Forum.

    Ich wage zu behaupten: Wenn Du damit unterschiedliche Ziele ansteuerst, kann nicht pauschal gesagt werden, wie man diese Ziele identifiziert. Bewegst Du Dich in einer bestimmten Umgebung (dann könnte man vielleicht was machen) oder soll das für alles gelten (Internetbrowser, Windows Explorer, WinForms, WPF-App, Konsolenprogramm, …)? Bei letzterem: ich glaube kaum.
    Aber da Du das mit VB.NET getaggt hast: Hat das Problem überhaupt was direkt mit VB.NET zu tun?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @ron999 Ebenfalls Willkommen im Forum. :thumbup:
    Bringe ihm bei, auf "Postleitzahl" zu reagieren.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank fürs Willkommen und Antworten.
    Möglicherweise habe ich mich nicht richtig ausgedrückt auch nicht richtig getaggt. Ich werde ein kleines Foto einer Adressdatei anfügen. Da würde ich gerne auf Tel. 1: mit dem Cursor springen

    zb. Pseudocode

    Dim tel1Obj As New_class ?
    ...

    Sub Main
    Mytel1Name = irgendeineClass.Eingabefeldname
    ....
    End Sub

    bitte, es geht nicht um den Code!

    Sondern Eingabefeld ID o. ä. wie oben beschrieben Pos #1

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ron999“ ()

    @ron999 Ich weiß nicht, ob ich Dich richtig verstanden habe.
    Bezugnehmend auf meinen Post oben mach ein Dictionary(Of String, Control), in dem Du Deinen Sprechtext und das zu fokussierende Control gepaart ablegst.
    Wenn dann eine Sprachnachricht da ist, testest Du, ob der Text gefunden wurde, und wenn ja, fokussierst Du das dazugehörige Control.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Und dann bitte noch an Deinen nächsten Post die Antworten auf Post#2 hinzufügen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ist es möglich ein Eingabefeld irgendwie zu identifizieren?

    Sowas kannst du mit Spy++ bwerkstelligen. Findet sich unter dem Menüpunkt Extras in Visualstudio unter der Voraussetzung das die C++ ProfilingTools installiert sind.

    Und hier wäre auch noch weiter Lektüre, Bei fremden Fenster Schaltfläche betätigen
    @ron999 Fang an und beschreibe konkret, was da abläuft.
    Sollen wir annehmen, dass Du ein fremdes Programm fernsteuern willst mit Hilfe eines eigenen Programms und einer Spracherkennungssoftware, die von diesem Deinen eigenen Programm genutzt wird?
    Ist Das zu steuernde Programm ein natives Programm (z.B. mit C++ geschrieben):
    Andere Programme fernsteuern
    oder ist es eine .NET Assembly, dann so was:
    externe .Net-Programme auslesen und manipulieren
    Zieh das betreffende Programm auf den IlSpy, der sagt Die, was es für ein Programm ist.
    github.com/icsharpcode/ILSpy/releases
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    dazu kleine Ergänzung:
    @ron999: Was ich in Post#6 meinte, was Du in Post#11 nicht verstanden hattest: Hättest Du meine Fragen aus Post#2 (<- notfalls auf den blauen Link klicken) zeitnah beantwortet, hätten wir uns das Rätselraten sparen können, welches @RodFromGermany in Post#12 erwähnte.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vielen Dank @VaporiZed

    @RodFromGermany es handelt sich um Dragon Spracherkennungsprogramm welches man mit Sprachbefehlen erweitern kann
    das Programm, daß ich in diesen Fall steuern möchte wurde in Visual FoxPro geschrieben müsste jedoch mit jeden gehen.

    ein Befehl in Dragon wäre zum Beispiel:
    "Computername"

    VB.NET-Quellcode

    1. ' This command uses the Network object of the
    2. ' Windows Scripting Host to retrieve the name of the
    3. ' computer. It then displays the name in a message
    4. ' box.
    5. ' Before entering this script, the author had to
    6. ' right-click (or press Shift+F10) in the code window
    7. ' and add a reference to Windows Script Host Object
    8. ' Model. Information on this object model is in the
    9. ' Windows Scripting Host Programmer's Guide from
    10. ' Microsoft.
    11. Option Explicit
    12. Dim NetworkObject As New IWshNetwork_Class
    13. Dim MyComputerName As String
    14. Sub Main
    15. MyComputerName = NetworkObject.ComputerName
    16. MsgBox "Der Name dieses Computers ist " + MyComputerName
    17. End Sub


    wenn ich jetzt sage "Computername"
    wird das Programm ausgeführt und der Computername angezeigt.

    Bei meinem Programm, das ich vorhabe möchte ich sagen „Vorname“ und das Programm soll in das Eingabefeld „Vorname“ springen.

    Ich denke mir, das Netzwerkobjekt kann das Programm sein das läuft und der Verweis das Eingabefeld
    irgendwie so stellt sich der kleine Maxi das vor :)
    ich müsste dann für jedes einzelne Eingabefeld ein Programm schreiben.
    Glaubst du, daß man das realisieren kann?

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „ron999“ ()

    ron999 schrieb:

    ich müsste dann für jedes einzelne Eingabefeld ein Programm schreiben.
    Ich denke nicht.
    Sieh mal nach, was ich in Post #5 geschrieben habe. Ich weiß nicht, wie die Spracherkennungssoftware funktioniert.
    Jedenfalls sollte sie doch in der Lage sein, mehrere Statements sicher unterscheiden zu können, und den mögliche Output packst Du mit der Kennung der Spracherkennungssoftware und Deiner entsprechenden Nomenklatur ln eine List(Of SPRACHERKENNUNGS_STRING, DEINE_NOMENKLATUR).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Post#4 ist Dein eigener, siehe Anhang. Daher versteh ich nicht, was Du meinst.
    Das Verlinken musst Du selber machen:

    1. Text markieren, der blau und klickbar werden soll
    2. Link kopieren (bei Firefox, z.B. Rechtsklick auf die Postnummer, [Link-Adresse kopieren]
    2. Verlinkungsbutton anklicken


    3. Link einfügen
    Bilder
    • Post#4.png

      33,8 kB, 1.645×296, 67 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    ron999 schrieb:

    von der Programmierung bin ich noch weit entfernt
    Dann erkläre mal, ohne Dich auf Programmierung oder eine Programmiersprache zu beziehen, was Du eigentlich erreichen willst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ron999 Mein Augenmerk zielt hier drauf:

    RodFromGermany schrieb:

    ohne Dich auf Programmierung oder eine Programmiersprache zu beziehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!