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. gmmg

Beiträge von gmmg

  • Webdriver für Chrome

    • gmmg
    • 18. April 2024 um 09:20

    Ja, die v1.3.1 nutze ich schon.

    habe jetzt mal die _WD_UpdateDriver eingebunden.

    AutoIt
    _WD_UpdateDriver('chrome', @ScriptDir & '\data\')

    Danke

    Marcel

  • Webdriver für Chrome

    • gmmg
    • 18. April 2024 um 09:11

    Ja, aktuell mache ich das Webdriver Update immer von Hand. Die Scripte + Webdriver liegen bei uns im Netzlaufwerk und der User der das öffnet, hat nur RO Rechte.

    Der Webdriver wird dann einmal heruntergeladen und per CMD auf die verschiedenen Scripte im Netzlaufwerk verteilt, ebenso, wenn es im Script mal eine Anpassung gab.

    Wir müssen diesen Prozess mit dem Netzlaufwerk aber demnächst anpassen, da wir auf Azure Cloud wechseln. Da habe ich aber noch keine richtige Idee, wenn es mal ein Script Update gibt.

    Die Scripte müssten dann ja lokal auf die Clients und brauchte für eventuelle Script Update einen Updater. Die WD_UpdateDriver Funktion wäre da ja schon mal ganz gut.

    Danke

    Gruß Marcel

  • Webdriver für Chrome

    • gmmg
    • 18. April 2024 um 08:19

    Hat jemand den Webdriver für die Google Chrome Version 124.x.x.x. Die ist irgendwie nicht verfügbar für die Browserversion 124.x.x.x.

  • Webdriver für Chrome

    • gmmg
    • 18. April 2024 um 08:06

    Guten Morgen Sven,

    danke für deine Antwort. Ich schaue mir das an und teste nochmal.

    Die Umstellung auf Webdriver musste damals erfolgen, weil die IE Automation nicht mehr funktioniert hat.

    Vieles wurde da aus Beispielen übernommen.

    Gruß Marcel

  • Webdriver für Chrome

    • gmmg
    • 17. April 2024 um 13:35

    Hallo Sven,

    beim Ausführen des Scriptes ist der der Google Chrome Browser geschlossen. Von daher sollte keine alte Session offen sein.

    Wenn ich das Script mit den folgenden sDesiredCapabilities ausführe, kommt die Standard Webseite und danach die Navigation zur gewünschten Webseite.

    AutoIt
    	$sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"unhandledPromptBehavior": "ignore", ' & _
        '"goog:chromeOptions": {"w3c": true, "excludeSwitches": ["enable-automation"], "useAutomationExtension": false, ' & _
        '"prefs": {"credentials_enable_service": false},' & _
    	'"args": ["--user-data-dir=C:\\Users\\' & @UserName & '\\AppData\\Local\\Google\\Chrome\\User Data\\chromedriver\\meinTool\\", "--profile-directory=Default"] }}}}'

    Wenn ich das so nutze wird für jedes der Autologin Tools ein entsprechender Ordner im AppData Pfad erstellt. Inhalt des Ordners siehe Bild unten.

    Wenn ich die sDesiredCapabilities wie folgt nutze, wird scheinbar die Standard Webseite nicht vorher geöffnet oder es geht einfach schneller.

    Es scheint aber dennoch eine Unterschied zu dem Parameteraufruf zu geben.

    "C:\Program Files\Google\Chrome\Application\chrome.exe" http://www.google.de

    AutoIt
    	$sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"unhandledPromptBehavior": "ignore", ' & _
        '"goog:chromeOptions": {"w3c": true, "excludeSwitches": ["enable-automation"], "useAutomationExtension": false, ' & _
        '"prefs": {"credentials_enable_service": false},' & _
    	'"args": ["start-maximized"] }}}}'

    grafik.png

    Kann man das eventuell besser Lösen oder wird das nicht benötigt ?

    Gruß Marcel

  • Webdriver für Chrome

    • gmmg
    • 17. April 2024 um 11:10

    Hallo Zusammen,

    ich nutze jetzt schon länger den Webdriver für die Google Chrome Automatisierung.

    Leider wurde bei uns jetzt per GPO eine Startseite "Intranet" gesetzt und das _WD_Navigate($sSession, $url) zur eigentlichen URL dauert dadurch viel länger.

    Beim Google Chrome kann ich ja per Parameter direkt eine URL übergeben. Funktioniert sowas auch bei dem Webdriver?

    Beispiel: "C:\Program Files\Google\Chrome\Application\chrome.exe" http://www.google.de Hier kommt die per GPO hinterlegte Seite nicht.

    Danke

    Gruß gmmg

  • active directory - Bezug zwischen IP, hostname, User herstellen

    • gmmg
    • 16. April 2024 um 08:33

    SOLVE-SMART , ich selbst würde die DB auf ein Netzlaufwerk legen, aber per UNC Server Pfad im Script öffnen.

    Das Beispiel hoben habe ich mal aus meinen Scripten zusammen kopiert. :)

    Auch muss man bei @IPAddress schauen ob man die @IPAddress1, @IPAddress2 , @IPAddress3 oder @IPAddress4 benötigt.

    Ich habe das mal so auf die schnelle gelöst. geht sicherlich mit Schleife schöner.

    ;-----get IP -----------------------------------------------------------
    IF StringLeft(@IPAddress1,3) = "10." Then $ip = @IPAddress1
    IF StringLeft(@IPAddress2,3) = "10." Then $ip = @IPAddress2
    IF StringLeft(@IPAddress3,3) = "10." Then $ip = @IPAddress3
    IF StringLeft(@IPAddress4,3) = "10." Then $ip = @IPAddress4

    Die Umsetzung auf eine MySQL DB / Maria DB /MS-SQL ist auch kein Problem oder wie von water vorgeschlagen in eine Datei schreiben.

    Gruß gmmg

  • active directory - Bezug zwischen IP, hostname, User herstellen

    • gmmg
    • 15. April 2024 um 13:23

    Schreibe dir ein kleines Tool, was dann am PC im Autostart oder Loginscript liegt und schreibe deine gewünschten Daten in eine Datenbank (MySQL /MS Access oder sonstige).

    Dann hast du diese immer aktuell in der DB vorliegen.

    Hier mal ein Beispiel:

    AutoIt
    #AutoIt3Wrapper_UseX64=y
    
    #include <Array.au3>
    #include <Date.au3>
    #include <D:\Scripte\MS_AccessCom\Access UDF\Access_UDF.au3>
    
    ;--------- MSAccess DB ------------
    $dbname = @ScriptDir & "\DB.accdb"
    
    $tblname = "Login"
    
    Local $Connection = _Start_Connection($dbname & ";")
    
    Local $Array_Login = _Get_Records("SELECT * FROM " & $tblname)
    
    _ArrayDisplay($Array_Login)
    
    Local $InsertData = _Insert_Data("INSERT INTO " & $tblname & "([Computer], [IP], [User], [Datum]) VALUES ('" & @ComputerName & "', '"& @IPAddress3 & "', '" & @UserName & "', '" & _Now() & "');")
    
    Local $Array_Login = _Get_Records("SELECT * FROM " & $tblname)
    _ArrayDisplay($Array_Login)
    
    _Close_Connection()
    Alles anzeigen

    Die DB sieht dann so aus.

    Die UDF gibt es hier : https://www.autoitscript.com/forum/topic/17…ent-accdb-only/


    Gruß gmmg

    Bilder

    • grafik.png
      • 19,59 kB
      • 976 × 176
  • active directory - Bezug zwischen IP, hostname, User herstellen

    • gmmg
    • 12. April 2024 um 09:28

    Hi GML,

    leider kann man deinem Post nicht entnehmen, was du genau mit den Daten vorhast.

    Wir haben früher mal die Info benötigt, welcher User aktuell an welchem Client arbeitet. Hier wurden die entsprechenden Daten per Anmeldescript in eine Datenbank geschrieben.

    Falls ihr bereits Azure/ Intune benutzt, lassen sich dort meines Wissens auch diese Daten abgreifen.

    Gruß gmmg

  • Leerzeichen vor dem GUI-Titel

    • gmmg
    • 21. März 2024 um 14:21

    Hallo,

    ich nutze oft die Metro_CreateGUI UDF.

    Hier macht man das ja einfach mit einem Label "GUICtrlCreateLabel"

    Beispiel, kann ja für die einfache GUI angepasst werden.

    AutoIt
    Local $tel_GUI = _Metro_CreateGUI("", 280, 210,-1,-1,True)
    ;Add control buttons
    Local $Control_Buttons_tel = _Metro_AddControlButtons(True,False,True)
    ;Set variables for control buttons
    Local $GUI_CLOSE_BUTTON = $Control_Buttons_tel[0]
    Local $GUI_MINIMIZE_BUTTON = $Control_Buttons_tel[3]
    
    $label_tel = GUICtrlCreateLabel("Support",65,20,110,25)
    GUICtrlSetFont($label_tel, 9, 300, 0, "Arial")
    
    $n = GUICtrlCreatePic(@ScriptDir & "\bin\images\rotkreuz_gr.jpg", 12, 10, 38, 30)
    
    $lb1 = GUICtrlCreateLabel("Username:", 30, 80)
    $telEdit1 = _GUICtrlEdit_Create($tel_GUI, "erf", 90, 80, 100, 20, $ES_AUTOHSCROLL)
    
    
    $telButton = _Metro_CreateButton("Weiter", 90, 160, 100, 20)
    
    GUISetState()
    Alles anzeigen

    die GUI sieht dann so aus.


    Gruß gmmg

  • Schlechte Icon Qualität

    • gmmg
    • 15. März 2024 um 12:42

    Wenn du im IcoFX dein Bild hast, klickst du oben einfach auf das Windows Symbol.

    Hier kommt dann im Endeffekt das Ico mit den verschiedenen Größen raus.

    grafik.png

    grafik.png

    grafik.png

    Gruß gmmg

  • Gruppenmitgliedschaft ermitteln

    • gmmg
    • 4. Februar 2024 um 11:53

    sowas hier?

    Get localgroup members
    Hello again AutoIt people I'm having troubles on how to create a script, that would check a list (txt file) of computers for users of localgroup…
    www.autoitscript.com
  • Ordner älter 24 h löschen

    • gmmg
    • 26. Januar 2024 um 08:49

    Hier mal ein Autoit Script, welches ich nutze.

    AutoIt
    #include <Array.au3>
    #include <File.au3>
    #include <Date.au3>
    
    
    $path = "c:\Backup\"
    
    Dim $avArray[6]
    
    $avArray[0] = "Pfad1"
    $avArray[1] = "Pfad2"
    $avArray[2] = "Pfad3"
    $avArray[3] = "Pfad4"
    $avArray[4] = "Pfad5"
    $avArray[5] = "Pfad6"
    
    For $i = 0 To 5
    
    	;MsgBox(0,"",$path & $avArray[$i] & "\")
    	Local $aFileList = _FileListToArray($path & $avArray[$i] & "\", Default, Default, True)
            If @error = 1 Then
                    MsgBox($MB_SYSTEMMODAL, "", "Path was invalid.", 1)
                    Exit
            EndIf
            If @error = 4 Then
                    MsgBox($MB_SYSTEMMODAL, "", "No file(s) were found.", 1)
                    Exit
            EndIf
    	;_ArrayDisplay($aFileList, "$aFileList")
    
    	For $file = 1 To UBound($aFileList) -1
    		;MsgBox(0,"",$aFileList[$file])
    
    		; Get the Date/Time for the Created property of the file
    		$arrFileTime = FileGetTime($aFileList[$file], 1, 0)
    
    		; Format the Date/Time to calculate the difference
    		$strFileTime = $arrFileTime[0] & "/" & $arrFileTime[1] & "/" & $arrFileTime[2] & " " & $arrFileTime[3] & ":" & $arrFileTime[4] & ":" & $arrFileTime[5]
    
    		; Get the "Now" time to calculate the difference
    		$strNowCalc = _NowCalc()
    
    		; Calculate the difference in Days ("D")
    		$strDateDiff = _DateDiff("D", $strFileTime, $strNowCalc)
    
    		; Display the Difference in Days
    		If $strDateDiff > 4 Then
    			;ConsoleWrite("Difference from '" & $strFileTime & "' and '" & $strNowCalc & "' ( in Days ) = " & $strDateDiff & @CRLF)
    			FileDelete( $aFileList[$file])
    		EndIf
    
    
    	Next
    
    Next
    Alles anzeigen


    Gruß gmmg

  • NEWBI: WebsiteEingabe mit wd_core.au3 / _WD_ClickElement undefined function Fehler

    • gmmg
    • 11. Januar 2024 um 08:52

    schau auch mal hier: WebDriver- Chrome Browser

    und hier ein Beispiel:

    Der Pfad für den msedgedriver muss entsprechend angepasst werden.

    _WD_Option('Driver', 'D:\Scripte\WebDriver\EdgeDriver\edgedriver_win32_120\msedgedriver.exe')

    AutoIt
    #include "wd_helper.au3"
    #include "wd_core.au3"
    
    ;Edgedriver download : URL https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/?form=MA13LH#downloads
    
    ;Global $_WD_DRIVER
    Local $sDesiredCapabilities
    
    ;$_WD_DEBUG = $_WD_Debug_Info ; None ; Info
    $_WD_DEBUG = $_WD_DEBUG_None  ;set to $_WD_DEBUG_None before compiling.?
    
    $url = "https://autoit.de/wcf/login/?url=https%3A%2F%2Fautoit.de%2F"
    
    $user = "test"
    $pass = "test"
    
    SetupEdge()
    
    _WD_Startup()
    
    ; Hide the WebDriver Console
    ;_WD_ConsoleVisible(True)
    _WD_ConsoleVisible(False)
    
    $sSession = _WD_CreateSession($sDesiredCapabilities)
    
    _WD_Window($sSession, "Maximize", "{}")
    _WD_Navigate($sSession, $url)
    _WD_LoadWait($sSession, 1500)
    Sleep(1000)
    
    _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@id='username']")
    ConsoleWrite("+ @error = " & @error & @CRLF)
    $sElement_user = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@id='username']")
    
    If @error = $_WD_ERROR_Success Then
    	_WD_ElementAction($sSession, $sElement_user, 'value',$user)
    	Sleep(500)
    EndIf
    
    _WD_WaitElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='password']")
    ConsoleWrite("+ @error = " & @error & @CRLF)
    $sElement_pass = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//input[@name='password']")
    
    If @error = $_WD_ERROR_Success Then
    	_WD_ElementAction($sSession, $sElement_pass, 'value',$pass)
    	Sleep(500)
    EndIf
    
    $sElement = _WD_FindElement($sSession, $_WD_LOCATOR_ByXPath, "//*[@id='loginForm']/form/section[1]/div/input[1]")
    
    If @error = $_WD_ERROR_Success Then
    	_WD_ElementAction($sSession, $sElement, 'click')
    Sleep(500)
    EndIf
    
    _WD_Shutdown()
    _WD_DeleteSession($sSession)
    
    Exit
    
    
     Func SetupEdge()
    
    	;_WD_Option('Driver', 'msedgedriver.exe')
    	_WD_Option('Driver', 'D:\Scripte\WebDriver\EdgeDriver\edgedriver_win32_120\msedgedriver.exe')
    	_WD_Option('Port', 9515)
    	;_WD_Option('DriverParams', '--verbose --log-path="' & @ScriptDir & '\msedge.log"')
    	_WD_Option('DriverParams', '--verbose')
    
    	$sDesiredCapabilities = '{"capabilities": {"alwaysMatch": {"unhandledPromptBehavior": "ignore", ' & _
        '"ms:edgeOptions": {"excludeSwitches": ["enable-automation"], ' & _
        '"useAutomationExtension": false, "args": ["start-maximized"]}}}}'
    
    EndFunc
    Alles anzeigen

    Gruß gmmg

  • NEWBI: WebsiteEingabe mit wd_core.au3 / _WD_ClickElement undefined function Fehler

    • gmmg
    • 10. Januar 2024 um 07:44

    Hallo, wir nutzen nun seit Abkündigung vom IE11 den Chromedriver für automatisierte Webseiten Logins.

    Gruß gmmg

  • RunWait mit Batch in Netzlaufwerk

    • gmmg
    • 19. Dezember 2023 um 07:52

    Hallo Casi4712,

    meine erste Frage wäre gewesen, ob die Batch auch an dem PC mit einem anderen User funktioniert.

    Schön das es gelöst wurde.

    Gruß gmmg

  • _WD_ElementAction "back"

    • gmmg
    • 12. Dezember 2023 um 08:23

    steht so in der Function :)

    grafik.png

  • Access UDF -Spaltennamen in Array

    • gmmg
    • 8. Dezember 2023 um 08:15

    Also mit _ArrayAdd hat es bei mir nicht funktioniert.

    Hatte dann _ArrayInsert benutzt. Ergebnis siehe Bild.


    AutoIt
    #include <Array.au3>
    Global $oConnection, $aRecordSet, $sQuery, $aRecordSetArr, $Spalten
    Global $sTableName    =  "tblTable1"
    Global $sDatabaseName = "D:\Test-mdb\Test.mdb"
    If Not FileExists($sDatabaseName) Then Exit
    $oConnection   = ObjCreate("ADODB.Connection")
    $oConnection.Open("Driver=Microsoft Access Driver (*.mdb); DBQ=" & $sDatabaseName)
    $oRecordSet    = ObjCreate("ADODB.RecordSet")
    $sQuery        = "Select * From " & $sTableName
    $oRecordSet.Open($sQuery, $oConnection)
    For $i = 0 to $oRecordSet.Fields.Count - 1
    	$Spalten &= $oRecordSet.Fields.Item($i).Name & '|'
    Next
    $Spalten = StringTrimRight($Spalten, 1)
    $aRecordSetArr = $oRecordSet.GetRows
    ;_ArrayAdd($aRecordSetArr, $Spalten, 0)
    _ArrayInsert($aRecordSetArr, 0, $Spalten)
    $oRecordSet.Close()
    $oConnection.Close()
    _ArrayDisplay($aRecordSetArr, 'Tabelle = ' & $sTableName)
    Alles anzeigen


    grafik.png

  • Access UDF -Spaltennamen in Array

    • gmmg
    • 7. Dezember 2023 um 11:31

    Hallo Moombas,

    habe das jetzt wie in Post #8 im Einsatz.

    Gruß gmmg

  • Access UDF -Spaltennamen in Array

    • gmmg
    • 6. Dezember 2023 um 19:17

    Habe das jetzt mal in meine Access UDF übertragen.

    Danke nochmal an Moombas für den Input :)

    _Get_Records with Column Names

    AutoIt
    #Region _Get_Records with Column Names
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _Get_Records
    ; Description ...: This function will collect data from an access database and give it as an array.
    ; Syntax ........: _Get_Records($sSQLstring)
    ; Parameters ....: $sSQLstring          - SQL Statement for creating table.
    ; Return values .: If success, then it will return the data as an array. If any errors see this list
    ;					Return -1 - Connection error
    ;					Return -2 - Recordset error
    ;					Return -3 - No data in that table
    ; Author ........: kcvinu
    ; Modified ......: sep 2015
    ; Remarks .......:
    ; Related .......:
    ; Link ..........:
    ; Example .......: _Get_Records("SELECT [Column1],[Column2] FROM MyTable WHERE Column3 = '2500' ;") ; See the single quote.
    ; ===============================================================================================================================
    Func _Get_Records($sSQLstring)
        If Not IsObj($objConnection) Then Return -1
        If Not IsObj($objRecordSet) Then Return -2
        _Open_Recordset($sSQLstring)
        If Not $objRecordSet.RecordCount Or ($objRecordSet.EOF = True) Then Return -3
        Dim $arrRecords, $column_name
    
        If Not @error Then
    		;Local $header[$objRecordSet.Fields.Count], $rows
    
    		For $i = 0 To $objRecordSet.Fields.Count - 1
    			$column_name &= $objRecordSet.Fields($i).Name & "|"
            Next
    
    		;MsgBox(0,"", $column_name)
    
    		$column_name = StringTrimRight($column_name, 1)
    		$arrRecords = $objRecordSet.GetRows()
    
    		_ArrayInsert($arrRecords, 0, $column_name)
    
    	EndIf
    
    	_Close_RecordSet()
        Return $arrRecords
    
    EndFunc
    #EndRegion
    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™