Alternative für Send-Befehl

  • Hallole liebe Gemeinde,

    ich habe mir ein Programm geschrieben, welches via Browser die KVM-Fenster meiner Zielgeräte öffnet. Hierzu ist aber ein Login
    für den KVM-Switch nötig, der übergeben werden muss. Diese Login-Daten sind derzeit verschlüsselt in einer Ini-Datei.

    ich definiere also den KVM-Switch(wir haben mehrere), gebe die Portnummer des Zielgerätes ein und das Tool öffnet die dazugehörige Login-Seite im Standard-Browser.
    Der Login wird dann via Send-Befehl dort eingetragen. Da es möglich ist, dass nach Öffnung des Browserfensters dieses den Fokus verliert, meine Frage:

    Gibt es eine Alternative zum Send-Befehl? Oder kann man die Login-Daten i-wie an das Handle des Browserfenster senden, sodass es egal wäre welches Fenster den Fokus hat?

    ich weiss, dass man den Fokus mit WinActivate setzen könnte. Das ist aber nicht Gegenstand meiner Frage und insofern als Antwort nicht erwünscht. :saint:

  • off-topic:

    wer mit einer Browser-Session über seinen KVM-Switch auf seine Server connected macht irgendetwas falsch. ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • off-topic:

    wer mit einer Browser-Session über seinen KVM-Switch auf seine Server connected macht irgendetwas falsch. ;)

    hm. hilft aber nicht wirklich ^^.

    Wäre vielleicht besser dann auch eine alternative vorzuschlagen, da ich selbst keine auf anhieb kenne, den man kann ja nicht alles wissen, schlage ich vor die Webdriver udf zu verwenden?

    @hipfzwirgel

    Wie öffnest du den das Browser Fenster?

    Zeig mal den Code, den du bisher hast.

    Kannst du xpahts auslesen auf der login seite des kvms ?

    Wenn ja könntest du den Browser via Webdriver starten und von dort aus genau das Input Feld per xpaths anwählen und etwas einfügen lassen.

    Da verliert dann garnicht mehr den Focus ist sogar Fenster unabhängig, ob sichtbar oder nicht ob Fenster aktiv oder im Hintergrund ist dabei egal.

  • Hallo Schnuffel,

    also deine Aussage irritiert: Wofür bieten die KVM-Switche denn dann eine solche Möglichkeit an, die angeschlossenen Zielgeräte remote zu bearbeiten, so als säße man davor?
    Da es ich in unserem Fall nicht um Server sondern Testgeräte (Lappis und Desktops) handelt, können die IT-Support-Teams remote auf die Zielgeräte zugreifen und Kunden-Probleme
    nachstellen oder alle nötigen Testszenarien durch arbeiten. Die Lösung hierfür ist perfekt. Auch kann dadurch Treiber.- und Softwareintegration remote durchgeführt werden.

    Fazit: Es sollte in erster Linie im Forum um die Hilfestellung und Lösungsfindung gehen und nicht darum eine Bewertung abzugeben.

    @ Mojoeb:

    Die KVM bieten die Möglichkeit, den Zugriff auf ein angeschlossenes Zielgerät, direkt per URL zu öffnen. Mein Proggi stellt je nach verwendetem StandardBrowser, KVM und
    Zielgerät (KVM-Port) die Webadresse zusammen und ruft per Shellexecute den URL auf. Das zusammenstellen des URL ist von Hand eine üble Frickelei... :Face: vor allem dann wenn man ständig das Zielgerät wechseln muss ;)

    Code
    $s_Pfad = "https://IP-Adresse des KVM/dpa.asp?port=" & $s_Portname & "&client=" & $s_Client         ; $sClient ist die browserabhängige KVM-Client-Software, 
    ShellExecute($s_Pfad, "", "", "")

    Die Login-Seite ist komplett in Java-Script realisiert und bietet nur 2 Inputs für User und Pwd sowie den Enter-Button.

    Da ich mich mit xpaths nicht auskenne, weiss ich also nicht ob das hilft...

  • hipfzwirgel

    zeig mal bitte in einem Beispiel wie deine verschlüsselten ini daten zur Erstellung web Adresse aussieht.

    Da ich mich mit xpaths nicht auskenne, weiss ich also nicht ob das hilft...

    Das ist das gute daran du musst kein Stück xpaths verstehen ;).

    Besuche die Webadresse deiner Wahl mit bsp. ms edge browser.

    DEV TOOLS öffnen mit : Drücke F12 -> DEV Tool Auswahl Drücke dafür STRG+SHIFT+C

    wähle dann mit der Maus das gewollte input element aus, dadurch wirst du direkt an die Stelle des html Codes gebracht wo das Input benannt ist.
    Dann wählst mit rechtsklick direkt im Code nun kannst du X Möglichkeit den gewünschten Wert zu kopieren in deinem Fall XPATH.

    Schau dir WebDriver UDF (W3C compliant version) - 2023/11/14 - AutoIt Example Scripts - AutoIt Forums (autoitscript.com) an

    Mit coden kann ich dir heute nicht mehr helfen erst morgen wieder.

  • Hallo Mojoeb,

    bitte verzeih die lange Antwortzeit. ich bin geschäftlich gerade dermaßen eingespannt,dass ich hierfür kaum noch Zeit finde.
    ich schaue mir dein Vorschlag an, wenn es wieder etwas ruhiger ist bei mir. Einstweilen schließe ich das Thema als erledigt...

    die ini-Datei sieht so aus (Daten aus Sicherheitsgründen unecht!):

    Code
    [param]
    PWD=0xFCE87F6143C5B...
    Account=0x3F76EBD59...

    die Daten werden zur Laufzeit entschlüsselt und an das Browserfenster mittels Send übergeben.

    die Felder dazu im Browserfenster sehen so aus:

    Code
    <input type="text" name="username" value="" maxlength="64" size="32">
        -> xpath /html/body/form/table/tbody/tr[1]/td[2]/input
    
    <input type="password" name="password" value="" maxlength="64" size="32">
        -> xpath /html/body/form/table/tbody/tr[2]/td[2]/input
  • hipfzwirgel kein problem wir sind hier alle freiwillig :).

    Die xpaths die du reinkopiert hast sind die lang Fassung und nicht so aussagekräftig.

    zum glück hast du den html code mit reingepostet^^.

    Das müsste die korrekte Kurzfassung der xpaths sein:

    Code
    <input type="text" name="username" value="" maxlength="64" size="32">
    //input[@name='username']
    
    
    <input type="password" name="password" value="" maxlength="64" size="32">
    //input[@name='password']


    Damit lässt sich arbeiten, kann aber auch grad nicht zeitlich, werde mir mal die tage die mühe machen und ein kleines Skript schreiben.


    Edit:


    Das mit den veränderten daten ist oke .

    ich dachte in deiner ini steht mehr also links zu den du navigieren musst oder die Ports die du in Post 1 angesprochen hast die hat viel mehr interessiert damit ich ich auf der ini dann gleich das Skript aufbauen kann halt mit anderen links und nicht deine echten^^.

    Einmal editiert, zuletzt von MojoeB (24. November 2023 um 07:44)