1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Anonym343

Beiträge von Anonym343

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 26. Mai 2021 um 14:34

    Danke für Eure Antworten

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 21. Mai 2021 um 11:30
    Zitat von Moombas

    Also das finde ich nun schon merkwürdig. Warum kannst du die cmd (generell) nicht verwenden?

    Ich kann Sie im allgemeinen schon verwenden aber nicht für dieses Projekt.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 21. Mai 2021 um 11:29
    Zitat von 32vroni

    Wie wäre es mit dem folgenden Ansatz:

    Du machst einmal einen Screenshot vom ungefüllten Feld und einen vom gefüllten Feld. Bei anderen Programmen sieht man Sternchen und ein Screenshot zeigt auch diese. So könntest Du die beiden Bilder vergleichen.

    Danke für deine Antwort :)
    Ich verstehe nicht wie mir ein Screenshot bei dem Problem helfen soll...

    Ich habe schon versucht mit GetPixel, Pixelsearch und Pixelgetcolor auszulesen, ob sich innerhalb des Feldes ein nicht weißer Pixel befindet.

    Jedoch kamen bei mir sehr unzuverlässige Ergebnisse raus (Irgendwelche Farben die nicht im Feld zu sehen waren).

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 21. Mai 2021 um 11:23
    Zitat von misterspeed

    Warum kompliziert wenn es evtl. auch viel einfacher geht?

    https://community.teamviewer.com/German/kb/arti…zeilenparameter

    Demnach ist eine GUI Automatisierung völlig unnötig und man kann alle benötigten Verbindungsdaten per cmdline Aufruf an die teamviewer.exe übergeben.

    Vielen Dank für deine Antwort! :)

    Leider kann ich die cmd nicht verwenden.

    Dankeschön trotzdem :)

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 21. Mai 2021 um 11:22
    Zitat von BugFix

    Probier mal aus. Denn Abstand zwischen Rand Passwortfeld und eingetragenem Passwortzeichen habe ich händisch ausgemessen. Prüfe mal ob das bei dir identisch ist.

    AutoIt
    #include <ScreenCapture.au3>
    #include <GDIPlus.au3>
    #include <WinAPIHObj.au3>
    
    ; einmalig speichern zum Vergleich ohne PW
    Global $NonePW = _GetPixelOnPWChar()
    
    ; und dann immer wieder so
    If $NonePW = _GetPixelOnPWChar() Then
        ; PASSWORTEINGABE ERFORDERLICH
    EndIf
    
    Func _GetPixelOnPWChar()
        Local $hTV = WinGetHandle('TeamViewer Authentifizierung')
        Local $aW = WinGetPos($hTV)
        Local $aC = ControlGetPos($hTV, '', '[CLASS:Edit; INSTANCE:1]')    
        Local $iX = $aW[0] + $aC[0] + 17  ; 794 + 206 +17  (17 - Abstand Editrand li. bis Mitte PW-Pixel)
        Local $iY = $aW[1] + $aC[1] + 40  ; 354 + 72 +40   (40 - Abstand Editrand ob. bis Mitte PW-Pixel)    
        Local $hHBmp = _ScreenCapture_Capture("") ;create a GDI bitmap by capturing the desktop
        _GDIPlus_Startup()
        Local $hBmp = _GDIPlus_BitmapCreateFromHBITMAP($hHBmp) ;convert GDI to GDI+ bitmap
        _WinAPI_DeleteObject($hHBmp) ;release GDI bitmap resource because not needed anymore    
        Local $px = _GDIPlus_BitmapGetPixel($hBmp, $iX, $iY )
        _GDIPlus_BitmapDispose($hBmp)
        _GDIPlus_Shutdown()
        Return $px
    EndFunc
    Alles anzeigen

    Ich habe es ausprobiert doch leider hat es nicht funktioniert.

    Egal ob das Feld leer oder gefüllt ist, es wird immer überschrieben.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 17. Mai 2021 um 08:32
    Zitat von BananaJoe

    Ich habe den TeamViewer nicht mehr installiert, aber ich habe das seinerzeit so ausgelesen:

    Local $hTeamViewer = WinGetHandle('TeamViewer')

    Local $sID = ControlGetText($hTeamViewer, '', '[CLASS:Edit; INSTANCE:2]')

    Local $sKennwort = ControlGetText($hTeamViewer, '', '[CLASS:Edit; INSTANCE:3]')

    Damit konnte man zumindest sehen, ob was drin steht oder nicht.

    Da fehlt natürlich das komplette Errorhandling, etc.

    Alles anzeigen

    Vielen Dank BananaJoe für deine Antwort :)
    Ich habe deinen Vorschlag ausprobiert.

    Für die ID hat es super Funktioniert.

    Für das Kennwort leider nicht weil es immer zurückgibt dass es leer ist.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 17. Mai 2021 um 08:29
    Zitat von BugFix

    Datenschutzrelevante Dinge will niemand wissen.

    Ich geb mal ein Bsp. für einen Ablauf (hat jetzt nichts mit TV zu tun):
    - Öffnen der Anwendung XY

    - Warten auf Anmeldefenster

    - Eintragen Nutzername

    - Eintragen PW

    - Bestätigen mit Button <OK>

    Dann wissen wir das "Drumherum" - und nun kannst du ganz speziell auf einzelne Punkte dieses Ablaufs verweisen.

    Denn ich weiß wirklich nicht, wann du dein PW im TV eintragen musst. Und somit kann ich dir nicht sagen, wie man dieses PW-Feld prüft-Teamviewer öffnen

    Alles anzeigen

    -TeamViewer öffnen.

    -Partner-ID eingeben.

    -Verbinden.

    -Kennwort Eingabe öffnet sich.

    -Skript erkennt dass die Kennworteingabe geöffnet ist.

    -Skript prüft, ob das Eingabefeld leer oder gefüllt ist.

    -> Wenn das Feld gefüllt ist, dann wird einfach auf verbinden geklickt.

    -> Wenn das Feld leer ist, dann wird ein Text in das Feld eingefügt und danach wird auf verbinden geklickt.

    Ich hoffe es ist jetzt genug "Drumherum" bekannt.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 14. Mai 2021 um 15:05

    Es gibt in meiner Situation keine bessere Lösung.

    Das "Drumherum" möchte ich aus Datenschutzgründen nicht erklären.

    Ich möchte nur wissen, ob es eine Möglichkeit gibt zu prüfen, ob ein Passwortfeld leer oder gefüllt ist.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 14. Mai 2021 um 14:39
    Zitat von BugFix

    ??

    Wenn du dich bei jemandem zur Hilfestellung aufschalten möchtest, brauchst du dessen Passwort.

    Soll jemand dir helfen braucht er dein Passwort.

    In welcher Konstellation musst du denn dein eigenes Passwort eingeben?

    Wenn ich TV in der Serverinstallation nutze brauche ich ebenso das PW des Ziels. - Ist das dein Einsatz, z.B. von zu Hause auf PC in der Ferne (Firma) aufschalten? Da kannst du doch im Konto die Verbindung fix festlegen und wählst nur das Ziel an - fertig.

    Tut mir leid aber ich möchte jetzt nicht über TeamViewer reden. Ich weiß wie TeamViewer funktioniert.

    Ich möchte einfach nur wissen, ob man das Passwort nachprüfen kann.

    Am Ende ist es relativ egal in welcher Anwendung geprüft werden soll.

    Wenn jemand anderes auch ein Passwort Feld prüfen möchte, welches nicht TeamViewer beinhaltet, dann soll ihm ja auch geholfen werden.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 14. Mai 2021 um 14:17
    Zitat von BugFix

    Welchen Sinn soll das ergeben?

    Weiterhin ist m. W. die Automatisierung des TV ohne die (verfügbare) API nicht zulässig.

    Erstmals vielen Dank für deine schnelle Antwort.

    Der Sinn dabei ist, dass ich nicht 50-mal am Tag mein Passwort eingeben muss. :)

    Das ist keine Automatisierung. Es ist lediglich eine effektivere Nutzung meiner Zeit.

  • Ist das Passwortfeld gefüllt? | Teamviewer

    • Anonym343
    • 14. Mai 2021 um 14:01

    Hallo Leute,

    ich möchte mit einem AutoIT Skript herausfinden, ob mein Passwort Feld Leer oder gefüllt ist.

    Leider kann man mit ControlGetText("TeamViewer", "", "Edit1") das Passwort nicht auslesen (logischerweise).

    Ich habe versucht mit Pixelsearch das Passwort Feld nach einem nicht Weißen Pixel abzusuchen. Dies war jedoch Erfolglos.

    Das Gleiche habe ich auch schon mit Pixelgetcolor versucht (ohne Erfolg).

    Hat jemand eine Idee wie ich herausfinden könnte, ob das Passwortfeld gefüllt ist oder nicht?


    Spoiler anzeigen
    C
    #include <Process.au3>
    #include <String.au3>
    #include <WinAPI.au3>
    
     
    
    ;Metrics
    local $SM_CXCAPTION = _WinAPI_GetSystemMetrics(3)
    local $SM_CYCAPTION = _WinAPI_GetSystemMetrics(4)
    local $SM_CXBORDER = _WinAPI_GetSystemMetrics(5)
    local $SM_CYBORDER = _WinAPI_GetSystemMetrics(6)
    local $SM_CXFIXEDFRAME = _WinAPI_GetSystemMetrics(7)
    local $SM_CYFIXEDFRAME = _WinAPI_GetSystemMetrics(8)
    local $SM_CXEDGE = _WinAPI_GetSystemMetrics(45)
    local $SM_CYEDGE = _WinAPI_GetSystemMetrics(46)
    
     
    
    local $title = "TeamViewer"
    
     
    
    ;0=relative with borders, 1=absolute, 2=relative without window borders
    local $coordMode = 1
    
     
    
    AutoItSetOption("PixelCoordMode",$coordMode)
    
     
    
    while true
        local $window = WinWaitActive($title)
    
     
    
        local $whnd = WinGetHandle($window)
    
     
    
        MsgBox(1024,"handle",$whnd,1.5)
    
     
    
        local $winPos = WinGetPos($whnd)
        local $xy = ControlGetPos($whnd, "", "Edit1")
    
     
    
        local $offsetx = 0
        if $coordMode <> 2 then $offsetx = $SM_CXBORDER + $SM_CXFIXEDFRAME + $SM_CXEDGE; + $SM_CXCAPTION
        if $coordMode == 1 then $offsetx = $offsetx + $winPos[0]
        local $x = $xy[0] + $offsetx
    
     
    
        local $offsety = 0
        if $coordMode <> 2 then $offsety = $SM_CYCAPTION + $SM_CYBORDER + $SM_CYFIXEDFRAME + $SM_CYEDGE
        if $coordMode == 1 then $offsety = $offsety + $winPos[1]
        local $y = $xy[1] + $offsety
    
     
    
        local $empty = true
    
     
    
        local $colors = ""
    
     
    
        for $j = 6 to 12 step 1
            For $i = 2 to 20 step 1
                $colors = $colors & "," & PixelGetColor($x + $i, $y + $j,$whnd)
                ;mousemove($x + $i, $y + $j,1)
                ;msgbox(1234,"test",pixelgetcolor($x + $i, $y + 9),0.5)
                if PixelGetColor($x + $i, $y + $j,$whnd) > 10000000 then
                    $empty = false
                    ;Break
                endif
            next
        next
    
     
    
        msgbox(4096,"test",$colors)
        ;TODO fix this
        local $px = PixelSearch($x + $searchOffset,$y + $searchOffset,$x + $xy[2] - $searchOffset,$y + $xy[3] - $searchOffset,0x000000,20,1,$whnd)
        if not @error then
            $empty = true
            MsgBox(4096,$px[0],$px[1],1)
            MouseMove($px[0] + $winpos[0]+$SM_CXBORDER + $SM_CXFIXEDFRAME + $SM_CXEDGE,$px[1] + $winpos[1]+$SM_CYCAPTION + $SM_CYBORDER + $SM_CYFIXEDFRAME + $SM_CYEDGE)
        EndIf
    
     
    
        ;TODO remove this
        ContinueLoop
    
     
    
        if $empty Then
            ControlSetText($whnd, "", "Edit1", "1234")
        EndIf
    
     
    
        WinWaitClose($whnd ,"")
    WEnd
    Alles anzeigen

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™