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

Beiträge von MojoeB

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

    • MojoeB
    • 9. Januar 2024 um 22:22

    mloew

    ^^ ich bin grad selbst dabei brauch das für eins meiner Projekte auf der Arbeit.
    ich habe zwar schon eine fertige Version des Projektes aber das läuft nur mit Edge und mit der älteren udf-

    Ich empfehle dir immer mit _WD_UpdateDriver den Driver runterzuladen falls es eine neue version davon gibt oder der edge sich aktualisiert benötigt man das ab und zu, damit die Anwendung nicht auf einmal nicht mehr funktioniert.


    edit:
    du musst dich nicht wirklich mit xpath auskennen, du benötigst nur die werte von dem jeweiligen Element und die bekommt du mit dem Entwickler Modus des Browsers, damit kannst du ein element auswählen, danach wirst du direkt zum code im html editor geleitet, dort kannst du dann einfach den kleinen xpath kopieren (also im Kontext Menu mit rechtsklick ).

  • QTWidget fernsteuern ...

    • MojoeB
    • 9. Januar 2024 um 14:23

    Willkommen im Forum,

    von welcher Anwendung redest du den ?
    Vielleicht hat schon jemand dazu etwas gemacht.

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

    • MojoeB
    • 9. Januar 2024 um 13:54

    mloew

    Hay Willkommen im Forum,
    Ich habe da was für dich, ich habe bereits einen Code den du verwenden könntest.

    Es sind einige Browser mit intrigiert.

    Ursprünglich habe ich den Code geschrieben damit ich das Fenster ins Menu einbinden kann und ich somit bei der Einrichtung direkt einen Test durchführen kann um zu sehen ob auch der Browser aufgerufen wird.
    Und damit ich die Einstellung auch flexibel wieder wechseln kann.

    Du kannst natürlich auch die mitgelieferte Demo von der udf anschauen.

    bekannte Probleme bei meinem Skript.:
    - chrome_legecy, öffnet fälschlicher weiße den edgebrowser wenn keine alte Version von Google Chrome installiert ist.
    - $sLogPath ist nicht richtig eingebunden
    - msedgeie bin ich mir nicht sicher ob da wirklich der ie-modus ist was ich da sehe wenn ich es starte. (die webdriver exe exsiert auch nicht zum runterladen in der udf, hatte mir diesen per hand runtergeladen.)

    Damit kannst du etwas rumspielen wenn du möchstet :

    AutoIt
    ;dddddddddddd.au3
    
    #include <nWebdriver\wd_capabilities.au3>
    #include <nWebdriver\wd_helper.au3>
    
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <GuiButton.au3>
    #include <EditConstants.au3>
    #include <ComboConstants.au3>
    
    
    #include <AutoItConstants.au3>
    
    Global $sLogFilePath = @ScriptDir & "\error_log.txt"
    Global $capa = '',  $sSession = '',  $iWebDriver_PID = '', $ssBROWSER, $BBUG, $BWINDOW
    
    load_webdriversettings()
    
    ;$oMyError = ObjEvent("AutoIt.Error", "_ErrFunc")
    $setupWEB = _guisetupweb()
    GUISetState()
    
    
    ;~ if STARTBROWSER($ssBROWSER,  $BBUG,  $BWINDOW) Then 
    ;~ $sSession = _WD_CreateSession($capa)		
    ;~ 		_WD_Navigate($sSession, 'https://www.google.de')
    ;~ EndIf 
    
    
    
    While 1
        Switch GUIGetMsg()
    		Case $GUI_EVENT_CLOSE
    			GUISetState(@SW_HIDE, $setupWEB.gui)
    			_WD_DeleteSession($sSession)
    			$sSession =  ''
    			_WD_Shutdown($iWebDriver_PID,Default)			
    			Exit
    			
    			case $setupWEB.edit				
    				
    				
    			Case $setupWEB.save
    				save_webdrivereinstellungen()
    				
    				
    		Case $setupWEB.btntest
    				WD_EXIT()				
    				testbrowser()
               
        EndSwitch
    WEnd
    
    func testbrowser()
    GUICtrlSetData($setupWEB.edit, '')
    Local $window = 0	
    Local $sbrowser,  $sidebug,  $sWindowON,  $surl
    	 $sbrowser 	= GUICtrlRead($setupWEB.browser,1)
    	 $sidebug 	= GUICtrlRead($setupWEB.idebug,1)
    	 $sWindowON = GUICtrlRead($setupWEB.WindowON)
    	 $surl 		= GUICtrlRead($setupWEB.url)
    	 
    		If $sWindowON = 1 Then 
    			$window = 1
    		EndIf	
    		if FileExists(@ScriptDir & '\WD_Console.log') = 1 Then FileDelete(@ScriptDir & '\WD_Console.log')
    		STARTBROWSER($sbrowser,  $sidebug,  $window)	
    		$sSession = _WD_CreateSession($capa)
    		IF @Error Then  
    			Webdrivererror(@Error, $sSession)
    			WD_EXIT()
    			Return 
    		EndIf
    		_WD_Navigate($sSession, $surl)
    		IF @Error Then 
    			 Webdrivererror(@Error, '_WD_Navigate')
    			Return 
    			 Sleep(2500)
    		EndIf				
    			_WD_GetSession($sSession)
    		IF @Error Then 
    			  Webdrivererror(@Error, $sSession)
    			 Sleep(2500)
    		EndIf
    	$read = FileRead(@ScriptDir & '\WD_Console.log')
        GUICtrlSetData($setupWEB.edit, $read & @CRLF, 1)
    	GUICtrlSetData($setupWEB.edit, _WD_GetSession($sSession), 1)	
    EndFunc
    
    
    func WD_EXIT()
    	_WD_DeleteSession($sSession)
    	_WD_Shutdown($iWebDriver_PID,Default)
    	$sSession = ''
    	$capa = ''
    EndFunc 
    
    
    func save_webdrivereinstellungen()	
    local	$sbrowser 	= GUICtrlRead($setupWEB.browser,1)
    local	$sdebug 	= GUICtrlRead($setupWEB.idebug,1)
    local	$sWindowON 	= GUICtrlRead($setupWEB.WindowON)
    local 	$window 
    	If $sWindowON = 1 Then 
    		$window = 1
    		Else 
    			$window = 0
    	EndIf
    	IniWrite('settings.ini',  'webdriver',  'browser', $sbrowser )
    	IniWrite('settings.ini',  'webdriver',  'debug',  $sdebug)
    	IniWrite('settings.ini',  'webdriver',  'window', $window )	
    
    EndFunc
    
    func load_webdriversettings()
    	$ssBROWSER = Iniread('settings.ini',  'webdriver',  'browser', '' )
    	$BBUG = Iniread('settings.ini',  'webdriver',  'debug',  '')
    	$BWINDOW = Iniread('settings.ini',  'webdriver',  'window', '' )
    EndFunc
    
    
    func STARTBROWSER($sBrowser = 'edge',  $ilvl = 0,  $window = 0)
    Local $headless = True 
    local $log = False 
     
    	
    	IF $iWebDriver_PID <> '' Then GUICtrlSetData($setupWEB.group, 'web_driver_pid_' & $iWebDriver_PID)
    	Local $pfad = shortPfad(@ScriptDir & '\WD_Console.log', 87)
    	
    	IF $ilvl = 0 Then 
    		$_WD_DEBUG = $_WD_DEBUG_None
    		$log = False 
    		GUICtrlSetState($setupWEB.logconsole,  4)	
    		GUICtrlSetData($setupWEB.labellogp, 'no')
    	ElseIf $ilvl = 1 Then 	
    		$_WD_DEBUG = $_WD_DEBUG_Full
    		$log = true		
    		GUICtrlSetState($setupWEB.logconsole,  1)		
    		GUICtrlSetData($setupWEB.labellogp, $pfad)
    	ElseIf $ilvl = 2 Then 	
    		$_WD_DEBUG = $_WD_DEBUG_Info
    		$log = true
    		GUICtrlSetState($setupWEB.logconsole,  1)
    		GUICtrlSetData($setupWEB.labellogp, $pfad)
    	EndIf
    	
    	IF $window = 1 Then 
    		$headless = False 
    	EndIf	
    	
    			IF $sBrowser = 'edge' Then 				
    					$capa = SetupEdge($headless,$log)
    					If @Error Then Webdrivererror(@Error,$capa)	
    			Elseif 	$sBrowser =  'chrome' Then 
    					$capa = SetupChrome($headless,$log)
    					If @Error Then Webdrivererror(@Error,$capa)	
    			Elseif 	$sBrowser = 'chrome_legecy' Then
    					$capa = SetupChromelegacy($headless,$log)
    					If @Error Then  Webdrivererror(@Error,$capa)	
    			ElseIf 	$sBrowser =  'opera' Then 
    					$capa = SetupOpera($headless,$log)
    					If @Error Then  Webdrivererror(@Error,$capa)		
    			ElseIf 	$sBrowser =  'firefox' Then 
    					$capa = SetupFireFox($headless,$log)
    					If @Error Then  Webdrivererror(@Error,$capa)	
    
    			ElseIf 	$sBrowser = 'msedgeie' Then 
    					$capa = SetupEdgeIE($headless,$log)
    					If @Error Then Webdrivererror(@Error,$capa)	
    			EndIf
    			MsgBox(0,  '', $capa)
    	IF $capa <> '' Then 
    		Return True 
    	EndIf
    			
    			
    			
    EndFunc 
    
    Func shortPfad($sPfad, $iMaxBreite)
        Local $sAbgekuerzterPfad = $sPfad
        Local $sTrennzeichen = "\"
    
        If StringLen($sPfad) > $iMaxBreite Then
            Local $aPfadTeile = StringSplit($sPfad, $sTrennzeichen)
            Local $iStart = 1
            Local $iEnd = UBound($aPfadTeile) - 1
            Local $iGesamteBreite = 0
    
            For $i = $iEnd To $iStart Step -1
                $iGesamteBreite += StringLen($aPfadTeile[$i]) + StringLen($sTrennzeichen)
    
                If $iGesamteBreite > $iMaxBreite - 5 Then
                    $sAbgekuerzterPfad = $aPfadTeile[1]& $sTrennzeichen & "..." & $sTrennzeichen & $aPfadTeile[$iEnd -1] & $sTrennzeichen & $aPfadTeile[$iEnd]
                    ExitLoop
                EndIf
            Next
        EndIf
        Return $sAbgekuerzterPfad
    EndFunc
    
    
    
    #Region Setup  - Browser Configuration
    ;edge is tested.
    	Func SetupEdge($headless, $log)	
    		_WD_UpdateDriver('msedge', @Tempdir & '\msedge\')
    		If @error Then Webdrivererror(@Error,'_WD_UpdateDriver')	
    		_WD_Option('Driver', @Tempdir & '\msedge\msedgedriver.exe')
    		_WD_Option('Port', 9515)
    	IF $log Then
    			_WD_Option('console', @ScriptDir & '\WD_Console.log')
    	EndIf
    		$iWebDriver_PID = _WD_Startup()
    		If @error Then Webdrivererror(@Error,'iWebDriver_PID')
    		_WD_CapabilitiesStartup()
    		_WD_CapabilitiesAdd('alwaysMatch', 'msedge')
    		_WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
    	If $headless Then
            _WD_CapabilitiesAdd('args', 'headless') ; Headless-Modus
            _WD_CapabilitiesAdd('args', 'disable-gpu') ; Manchmal notwendig für Headless
        EndIf		
    		_WD_CapabilitiesAdd('args', 'guest')
    		_WD_CapabilitiesDump(@ScriptLineNumber)
    		Local $sCapabilities = _WD_CapabilitiesGet()
    		Return $sCapabilities
    	EndFunc   ;==>SetupEdge
    
    ;chrome is not tested.
    
    Func SetupChrome($headless, $log)
        Consolewrite('func start: chromedriver.exe' & @CRLF)
        _WD_UpdateDriver('chrome', @Tempdir & '\chrome\')
        If @error Then Webdrivererror(@Error,'_WD_UpdateDriver')
        _WD_Option('Driver', @Tempdir & '\chrome\chromedriver.exe')
        _WD_Option('Port', 9515)
    	$iWebDriver_PID = _WD_Startup()
    	If @error Then Webdrivererror(@Error,'iWebDriver_PID')
        _WD_CapabilitiesStartup()
        _WD_CapabilitiesAdd('alwaysMatch', 'csssssssshrome')
        If $headless Then
            _WD_CapabilitiesAdd('args', 'headless') ; Headless-Modus
            _WD_CapabilitiesAdd('args', 'disable-gpu') ; Manchmal notwendig für Headless
        EndIf
    	ConsoleWrite($log & @CRLF)
    	_WD_CapabilitiesAdd('excludeSwitches', 'enable-logging')
        _WD_CapabilitiesAdd('args', 'guest')
        _WD_CapabilitiesDump(@ScriptLineNumber)
        Local $sCapabilities = _WD_CapabilitiesGet()
        Return $sCapabilities
    EndFunc   ;==>SetupChrome
    
    ;chrome legacy is not tested.
    	Func SetupChromelegacy($headless,$log)	
    		Consolewrite('func start : chromedriver.exe' & @CRLF)
    		_WD_UpdateDriver('chrome_legacy', @Tempdir & '\chromely\')
    		If @error Then Webdrivererror(@Error,'_WD_UpdateDriver')
    		_WD_Option('Driver', @Tempdir & '\chromely\chromedriver.exe')
    				IF $log Then
    					_WD_Option('console', @ScriptDir & '\WD_Console.log')
    				EndIf	
    		_WD_Option('Port', 9515)
    		$iWebDriver_PID = _WD_Startup()
    		If @error Then Webdrivererror(@Error,'iWebDriver_PID')
    		_WD_CapabilitiesStartup()	
    		_WD_CapabilitiesAdd('alwaysMatch', 'chrome')
    		_WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
    	If $headless Then
            _WD_CapabilitiesAdd('args', 'headless') ; Headless-Modus
            _WD_CapabilitiesAdd('args', 'disable-gpu') ; Manchmal notwendig für Headless
        EndIf		
    		_WD_CapabilitiesAdd('args', 'guest')
    		_WD_CapabilitiesDump(@ScriptLineNumber)
    		Local $sCapabilities = _WD_CapabilitiesGet()
    		Return $sCapabilities
    	EndFunc   ;==>SetupChromelegacy
    	
    Func SetupFireFox($headless, $log)
        _WD_UpdateDriver('firefox', @Tempdir & '\firefox\')
        If @error Then Webdrivererror(@Error,'_WD_UpdateDriver')
    	Sleep(150)
        _WD_Option('Driver', @Tempdir & '\firefox\geckodriver.exe')
    	If $log Then
    	_WD_Option('console', @ScriptDir & '\WD_Console.log')	
    	EndIf
        _WD_Option('Port', 4444)
        _WD_CapabilitiesStartup()
        _WD_CapabilitiesAdd('alwaysMatch', 'firefox')
        _WD_CapabilitiesAdd('browserName', 'firefox')
        _WD_CapabilitiesAdd('acceptInsecureCerts', True)
        _WD_CapabilitiesAdd('binary', "C:\Program Files\Mozilla Firefox\firefox.exe")
        _WD_CapabilitiesDump()
       $iWebDriver_PID =  _WD_Startup()   
       If @error Then Webdrivererror(@Error,'iWebDriver_PID')
    	If $headless Then
            _WD_CapabilitiesAdd('args', '--headless')
        EndIf
        Local $sCapabilities = _WD_CapabilitiesGet()
        Return $sCapabilities
    EndFunc   ;==>SetupFireFox
    
    ;opera is not tested.
    	Func SetupOpera($headless, $log)	
    		_WD_UpdateDriver('opera', @Tempdir & '\opera\')	
    		If @error Then Webdrivererror(@Error,'_WD_UpdateDriver')
    		_WD_Option('Driver', @Tempdir & '\opera\operadriver.exe')
    			If $log Then
    				_WD_Option('console', @ScriptDir & '\WD_Console.log')	
    			EndIf
    		ConsoleWrite( @Tempdir & '\opera\operadriver.exe')
    		_WD_Option('Port', 9515)
    		$iWebDriver_PID = _WD_Startup()
    		If @error Then Webdrivererror(@Error,'iWebDriver_PID')
    	_WD_CapabilitiesStartup()
    	_WD_CapabilitiesAdd('alwaysMatch', 'opera')
    	_WD_CapabilitiesAdd('w3c', True)
    	_WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
    	Local $sPath = _WD_GetBrowserPath("opera")
    	If Not @error Then
    		_WD_CapabilitiesAdd('binary', $sPath)
    		ConsoleWrite("wd_demo.au3: _WD_GetBrowserPath() > " & $sPath & @CRLF)
    	EndIf
    
    	If $headless Then _WD_CapabilitiesAdd('args', '--headless')
    		_WD_CapabilitiesDump(@ScriptLineNumber)
    		Local $sCapabilities = _WD_CapabilitiesGet()
    		Return $sCapabilities
    	EndFunc   ;==>SetupOpera
    
    ;IEmode - Edge is not tested.
    	Func SetupEdgeIE($headless,$log)	
    		_WD_UpdateDriver('msedgeie', @Tempdir & '\msedgeie\')	
    		If @error Then Webdrivererror(@Error,'_WD_UpdateDriver')
    		_WD_Option('Driver', @Tempdir & '\msedgeie\IEDriverServer.exe')
    			If $log Then
    				_WD_Option('console', @ScriptDir & '\WD_Console.log')	
    			EndIf
    		_WD_Option('Port', 9515)
    		$iWebDriver_PID = _WD_Startup()
    		If @error Then Webdrivererror(@Error,'iWebDriver_PID')
    		_WD_CapabilitiesStartup()
    		_WD_CapabilitiesAdd('alwaysMatch', 'opera')
    		_WD_CapabilitiesAdd('excludeSwitches', 'enable-automation')
    
        If $headless Then
            _WD_CapabilitiesAdd('args', 'headless') ; Headless-Modus
        EndIf		
    		_WD_CapabilitiesAdd('args', 'guest')
    		_WD_CapabilitiesDump(@ScriptLineNumber)
    		Local $sCapabilities = _WD_CapabilitiesGet()
    		Return $sCapabilities
    	EndFunc   ;==>SetupEdgeIE
    #EndRegion Browser
    Func Webdrivererror($error, $Element = '', $opt = '')
        Select
            Case $error = $_WD_ERROR_Success
                ConsoleWrite($Element & ' ' & $opt & ' ' & 'DONE' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, $Element & ' ' & $opt & ' ' & 'DONE' &@CRLF, 1)
            Case $error = $_WD_ERROR_NoMatch
                ConsoleWrite('Fehler beim Finden des Elements.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Fehler beim Finden des Elements.' & 'err_' & $Element &@CRLF, 1)
            Case $error = $_WD_ERROR_SessionNotCreated
                ConsoleWrite('Session konnte nicht erstellt werden.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Session konnte nicht erstellt werden.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_Exception
                ConsoleWrite('Eine Ausnahme ist aufgetreten.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Eine Ausnahme ist aufgetreten.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_Timeout
                ConsoleWrite('Zeitüberschreitung bei der Anforderung.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Zeitüberschreitung bei der Anforderung.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_InvalidDataType
                ConsoleWrite('Ungültiger Datentyp angegeben.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Ungültiger Datentyp angegeben.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_InvalidExpression
                ConsoleWrite('Ungültiger Ausdruck.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit,'Ungültiger Ausdruck.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_RetValue
                ConsoleWrite('Ungültiger Rückgabewert.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Ungültiger Rückgabewert.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_InvalidArgue
                ConsoleWrite('Ungültiges Argument.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Ungültiges Argument.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_NoAlert
                ConsoleWrite('Kein Alert vorhanden.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Kein Alert vorhanden.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_GeneralError
                ConsoleWrite('Allgemeiner Fehler.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Allgemeiner Fehler.' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_InvalidValue
                ConsoleWrite('Ungültiger Wert.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Ungültiger Wert.! ' & 'err_' & $Element& @CRLF, 1)
            Case $error = $_WD_ERROR_FileIssue
                ConsoleWrite('Problem mit der Datei.' & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Problem mit der Datei. ' & 'err_' & $Element& @CRLF, 1)
            Case Else
                ConsoleWrite('Ein unbekannter Fehler ist aufgetreten. Fehlercode: ' & $error & @CRLF)
    			GUICtrlSetData($setupWEB.edit, 'Ein unbekannter Fehler ist aufgetreten. Fehlercode: ' & $error & @CRLF, 1)
        EndSelect
    EndFunc   ;==>Webdrivererror
    Func _guisetupweb()
    	Local $setupWEB[]
    	$gui = GUICreate("webdrivertestgui",582,524,-1,-1,-1,-1)
    	$setupWEB.gui = $gui
    	$group = GUICtrlCreateGroup("web_driver",4,0,571,153,$BS_RIGHT,-1)
    	$setupWEB.group = $group
    	GUICtrlCreateGroup("debug Level",353,16,81,61,-1,-1)
    	GUICtrlCreateGroup("browser",15,16,316,61,$BS_CENTER,-1)
    	$browser = GUICtrlCreateCombo("",30,43,290,21,-1,-1)
    	$setupWEB.browser = $browser
    	GUICtrlSetData($setupWEB.browser,"edge|chrome|chrome_legecy|opera|firefox|msedgeie", "edge")	
    	$idebug = GUICtrlCreateCombo("",359,43,66,21,-1,-1)
    	$setupWEB.idebug = $idebug
    	GUICtrlSetData($setupWEB.idebug ,"0|1|2", "0")	
    	GUICtrlCreateGroup("browser window",439,90,130,55,-1,-1)
    	$WindowON = GUICtrlCreateRadio("ON",454,114,46,20,-1,-1)
    	$setupWEB.WindowON = $WindowON
    	$WindowOFF = GUICtrlCreateRadio("OFF",514,114,41,20,-1,-1)
    	$setupWEB.WindowOFF = $WindowOFF
    	GUICtrlCreateGroup("logpath",15,80,316,65,$BS_CENTER,-1)
    	$labellogp = GUICtrlCreateLabel("",71,110,230,20,-1,-1)
    	$setupWEB.labellogp = $labellogp
    	GUICtrlSetBkColor(-1,"-2")	
    	GUICtrlCreateLabel("URL",30,192,50,15,-1,-1)
    	GUICtrlSetBkColor(-1,"-2")
    	$logconsole = GUICtrlCreateCheckbox("",30,110,12,20,-1,-1)
    	$setupWEB.logconsole = $logconsole
    	$save = GUICtrlCreateButton("save",357,104,58,30,-1,-1)
    	$setupWEB.save = $save
    	GUICtrlCreateGroup("test browser",4,163,571,348,-1,-1)
    	$edit = GUICtrlCreateEdit("",10,220,559,281,-1,-1)
    	$setupWEB.edit = $edit
    	$btntest = GUICtrlCreateButton("TEST",434,180,119,30,-1,-1)
    	$setupWEB.btntest = $btntest
    	GUICtrlCreateLabel("URL",30,192,50,15,-1,-1)
    	$url = GUICtrlCreateInput("http://",107,187,308,20,-1,$WS_EX_CLIENTEDGE)
    	$setupWEB.url = $url
    	GUICtrlCreateLabel("URL",30,192,50,15,-1,-1)
    	GUICtrlSetBkColor(-1,"-2")
    	return $setupWEB
    EndFunc
    Alles anzeigen
  • Erweiterung für AutoIT kann nicht mehr geladen werden

    • MojoeB
    • 8. Januar 2024 um 12:42

    kannst du dein Script zeigen ich möchte versuchen es zu compilieren und zu testen ob das bei mir ebenfalls passiert?

  • Inetget wird gedrosselt

    • MojoeB
    • 8. Januar 2024 um 12:31

    Racer

    naja kommt drauf an was für eine Netzwerkkarte verbaut ist.
    hat man ein Ehternetport am Mainboard belegt, ist die Annahme meistens richtig, nutzt der Server bsp. eine Mellanox connect x3 oder 4 sehen die mtu werte schon wieder ganz anders aus.

    Aber du hast recht es kann nur von einer Einstellung auf dem Server kommen.

  • Inetget wird gedrosselt

    • MojoeB
    • 4. Januar 2024 um 13:47

    MTU ist ein wert deiner netzwerkkarte jede netzwerkkarte hat je nach Spezifikationen einen eigenen optimalen mtu wert.
    Den Optimalen wert erkennt Windows meistens nicht meist ist ein Standard wert von 1000 oder 1500 eingetragen.

    Das heißt also dein Server steht bei einem Provider, dann fällt Unraid nach meinen Überlegungen schonmal weg weil da habe ich nur Erfahrungen im Heimnetz und du musst es um es zu nutzen einen usb stick dran stecken.^^

    Also dir geht es darum Daten mit einem Skript zu laden, es geht nicht um Datenbank Sachen ?
    Große daten mit einem Skript laden hab ich selbst keine Erfahrungen mit.

    Je nachdem was du erreichen möchtest, FTP musst du nicht nutzen ist auch sehr Sicherheitsbedenklich wenn die Daten etwas wert sind.
    Du könntest auch mit Webdriver deine Daten herunterladen, wenn die Geschwindigkeit im Browser bei dir nach einer zeit nicht langsamer wird.

  • Inetget wird gedrosselt

    • MojoeB
    • 4. Januar 2024 um 12:39

    Windows 2019, 8 cores, 64gb RAM, 10tb Platte.

    Ich bin kein super Server experte ich kenne aber Windows 2019 nicht einmal.

    Sie meinen Windows Server 2019,
    wird bei Ihnen, über eine Interne Verbindung die Daten geladen oder von Server ans Internet zu Client am Internet?
    Setze dich mit dem Microsofts SMB Sachen auseinder, deaktiviert für eine bessere Performens alte SMB dienste im Windows.
    setze den MTU wert client und server richtig passend zu deinen netzwerkkarten.
    Microsoft ist in der hinsicht ein arsch, Windows kann nicht mal selbst entscheiden was es tun soll wenn 2x Internet angeschlossen ist.
    Wechselt er immer zwischen den Verbindungen hin und her du musst meist Windows alles sagen was du genau möchtest.

    Ist es dein eigner Server oder steht der in einer Firma ?
    Wenn es dein eigner ist, dann schlage ich vor Unraid zu nutzen, zfs pools erstellen und dann abfahrt.
    Damit könntest du locker über oder an die Geschwindigkeiten einer m.2 nvme ssd im Netzwerk herankommen.
    da würde halt die eine Festplatte nicht passen da wären mehr als 1 ratsam, sowie ecc Speicher damit deine Daten auch sicher so bleiben wie du sie drauf kopierst.

  • Transparente GUI mit Memofunktion

    • MojoeB
    • 23. Dezember 2023 um 17:00

    ^^


    ich war auch grad dabei :

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <WINAPI.au3>
    #include <sendmessage.au3>
    #include <GuiConstants.au3>
    #AutoIt3Wrapper_Res_HiDpi=y
    #NoTrayIcon
    HotKeySet("ESC", "_Exit")
    
    Global Const $DEFAULT_WINDOW_WIDTH = 800
    Global Const $DEFAULT_WINDOW_HEIGHT = 40
    Global $ConfigFile = StringTrimRight(@ScriptFullPath, 3) & "ini"
    Global $map[]; Erstellen einer Map für die GUI-Elemente
    
    
    Main()
    
    Func Main()
        MakeDPIAware()
        CreateGUI($map)
    EndFunc
    
    While 1
        Switch GUIGetMsg()
    		Case $GUI_EVENT_CLOSE
    			_GUISavePositions($map.GUI, $ConfigFile)
                Exit
            Case $GUI_EVENT_PRIMARYDOWN
                _SendMessage($map.GUI, $WM_SYSCOMMAND, 0xF012, 0)
        EndSwitch
    WEnd
    
    Func CreateGUI(ByRef $m)
        $m.GUI = GUICreate("Test", $DEFAULT_WINDOW_WIDTH, $DEFAULT_WINDOW_HEIGHT, -1, -1, $WS_POPUP, $WS_EX_LAYERED)
            
        If Not FileExists($ConfigFile) Then
            _StandardPos() 
        Else
            _GUIRestorePositions($m.GUI, $ConfigFile) 
        EndIf
    
        GUISetBkColor(0xABCDEF)
    	
        ; Hinzufügen von Combobox-Elementen zur Map
        $m.cmb01 = GUICtrlCreateCombo('123', 10, 10, 150, 20)
        $m.cmb02 = GUICtrlCreateCombo('', 170, 10, 50, 20)
        $m.cmb03 = GUICtrlCreateCombo('', 230, 10, 50, 20)
        $m.cmb04 = GUICtrlCreateCombo('', 290, 10, 200, 20)
    	
    	_WinAPI_SetLayeredWindowAttributes($map.GUI, 0xABCDEF, 250)
    	GUISetState()
        
    	Return $m.GUI	
    EndFunc
    
    Func MakeDPIAware()
        If Not @Compiled Then DllCall("User32.dll", "bool", "SetProcessDPIAware")
    EndFunc
    
    Func _GUISavePositions($hGUI, $sConfigFile, $sSectName="Window Positions")
        Local $aGUI_Pos = WinGetPos($hGUI)
        If @error Then Return 0
    
    		IniWrite($sConfigFile, $sSectName, "Left", $aGUI_Pos[0])
    		IniWrite($sConfigFile, $sSectName, "Top", $aGUI_Pos[1])
    		IniWrite($sConfigFile, $sSectName, "Width", $aGUI_Pos[2])
    		IniWrite($sConfigFile, $sSectName, "Height", $aGUI_Pos[3])
    
        Return 1
    EndFunc
    
    Func _GUIRestorePositions($hGUI, $sConfigFile, $sSectName="Window Positions", $iDefWidth=700, $iDefHeight=40)
        Local $iGUI_Left = IniRead($sConfigFile, $sSectName, "Left", -1)
        Local $iGUI_Top = IniRead($sConfigFile, $sSectName, "Top", -1)
        Local $iGUI_Width = IniRead($sConfigFile, $sSectName, "Width", $iDefWidth)
        Local $iGUI_Height = IniRead($sConfigFile, $sSectName, "Height", $iDefHeight)
    
        If $iGUI_Left = -1 Then $iGUI_Left = (@DesktopWidth / 2) - ($iGUI_Width / 2)
        If $iGUI_Top = -1 Then $iGUI_Top = (@DesktopHeight / 2) - ($iGUI_Height / 2)
    
       Return WinMove($hGUI, "", $iGUI_Left, $iGUI_Top, $iGUI_Width, $iGUI_Height)
    EndFunc
    
    
    Func _StandardPos()
        Local $iScreenWidth = @DesktopWidth
        Local $iScreenHeight = @DesktopHeight
    
        Local $iWindowWidth = $DEFAULT_WINDOW_WIDTH
        Local $iWindowHeight = $DEFAULT_WINDOW_HEIGHT
        Local $iWindowX = ($iScreenWidth - $iWindowWidth) / 2
        Local $iWindowY = $iScreenHeight - $iWindowHeight - 3  ; 3 Pixel Abstand vom unteren Rand
    
        ; Setze die Position des GUI-Fensters
        WinMove($map.GUI, "", $iWindowX, $iWindowY)
    EndFunc
    
    Func _Exit()
        Exit
    EndFunc
    Alles anzeigen
  • OutlookEX - Benutzerwechsel

    • MojoeB
    • 15. Dezember 2023 um 16:16

    ich weiß nicht ob das hilft aber mir ist auch aufgefallen,

    das manchmal im Hintergrund die das Icon der alten mail app im Task Manger auftaucht, auch wenn das 2 verschiede Programme sind kommt da 'OutlookEX.au3' Funktionen durcheinander und es kommt zu unterschiedlichen Fehlern.

    Wird die app im Task Manger komplett manuell gekillt funktioniert alles wieder wie gedacht bei mir auch mit 365.


    bisher...

  • Erstellte GUI minimiert starten

    • MojoeB
    • 15. Dezember 2023 um 15:13
    Zitat von schelle

    Danke erstmal.

    Dein erster Versuch startet das Fenster allerdings immer minimiert, selbst bei Parameter normal.

    falsch, dann hast du keine leere Datei im scriptordner erstellt die show heißt und keine Datei Endung besitzt.
    Es gibt garkeine Parameter und auch nicht den Parameter normal im ersten Beispiel.

  • Erstellte GUI minimiert starten

    • MojoeB
    • 13. Dezember 2023 um 20:17

    entweder in eine extra Datei (ini, config, etc.) den zustand eintragen wie es gestartet werden soll, oder einfach eine leere datei erstellen.

    hier

    ein Beispiel mit einer leeren Datei :


    C
    ;alt
    
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    
    If $cmdline[0] > 0 Then
       If $cmdline[1] = "-neu" Then
          Run("C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exe /in " & @ScriptName & " /out C:\ProgramData\!Starter\test.exe /comp 4 /x64 /icon D:\Schelle\Programmierung\install\Resourcen\install.ico")
          Run("C:\Program Files (x86)\AutoIt3\Aut2Exe\Aut2exe_x64.exe /in " & @ScriptName & " /out " & @ScriptDir & "\install.exe /comp 4 /x64 /icon D:\Schelle\Programmierung\install\Resourcen\install.ico")
        Exit
       EndIf
    EndIf
    
    $Fenster                = GUICreate("Test", 200, 200, 200, 200, -1)                      
    windowstate($Fenster)
    
    While 1
       Switch GUIGetMsg()
          Case $GUI_EVENT_CLOSE
               ExitLoop
       EndSwitch
    WEnd
    
    func windowstate($window)
    	If $window = '' Then Return -1 
    	Local $file = @Scriptdir & '\show'
    	IF FileExists($file) Then 										;wenn das File show im Scriptverzeichnis exsitert dann
    			IF GUISetState(@SW_SHOW, $window) = 1 Then				;starte es offen
    					Return True 
    				Else 
    					Return False 
    			EndIf
    	Else 															;wenn das File show im Scriptverzeichnis nicht exsitert dann 
    		
    			IF GUISetState(@SW_SHOWMINIMIZED, $window) = 1 Then 	;startet er es minimiert.
    					Return True 
    				Else 
    					Return False 
    			EndIf				
    	EndIf	
    	;Gibt True zurück wenn ein Fenster erfolgreich geSetet wurde.
    	;Gibt False zurück wenn das Fenster nicht  geSetet werden konnte.
    	;Gibt -1 zurück wenn kenn window-handle angeben wurde.
    EndFunc
    Alles anzeigen


    Gerade nochmal was anderes ausprobiert habe ich selbst davor auch noch nie gemacht.
    Schau :

    C
    ;Neu:
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    
    
    $Fenster  = GUICreate("Test", 200, 200, 200, 200, -1)                      
    CheckCommandLineParameters($Fenster)
    
    While 1
       Switch GUIGetMsg()
          Case $GUI_EVENT_CLOSE
               ExitLoop
       EndSwitch
    WEnd
    
    Func CheckCommandLineParameters($window)
        If $CmdLine[0] > 0 Then
    		Switch $CmdLine[1]
    			Case "-maximize"
    				GUISetState(@SW_MAXIMIZE, $window)
    			Case "-minimize"
    				GUISetState(@SW_SHOWMINIMIZED, $window)
    			EndSwitch
    	Else 
    			GUISetState(@SW_SHOW, $window)		
        EndIf
    EndFunc
    Alles anzeigen



    Damit kannst du auch den Parameter in der Verknüpfung eintragen,


    aber ohne dein $cmdline hätte ich das nie rausgefunden ich wusste nicht das diese schon bereits definiert sind und genau dafür gedacht so wie es aussieht ^^.

  • Den Zeitpunkt des letzten Herunterfahrens auslesen

    • MojoeB
    • 6. Dezember 2023 um 14:11

    ich hab nicht ganz verstanden was du sucht.


    aspirinjunkie hat schon die richtige Antwort geliefert.
    meine testvariante sah so aus, bevor ich aspirinjunkie seine getestet habe.

    Code
    #Include <Array.au3>
    $objWMIService = ObjGet("winmgmts:\\.\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NTLogEvent WHERE Logfile = 'System'", "WQL", 0x10 + 0x20)
    
    For $objItem In $colItems
        ConsoleWrite("Event ID: " & $objItem.EventCode & @CRLF)
        ConsoleWrite("Type: " & $objItem.Type & @CRLF)
        ConsoleWrite("Time Generated: " & $objItem.TimeGenerated & @CRLF)
        ConsoleWrite("Message: " & $objItem.Message & @CRLF & @CRLF)
    Next
  • MySQL - externe Datenbankabfrage

    • MojoeB
    • 6. Dezember 2023 um 12:34

    Also konnte es nun endlich ansatzweiße testen dank engl. forum und da die it mir endlich den Port frei gemacht hat.

    - 10.6.12-MariaDB + Ubuntu 22.04 ltsc

    Ich bekomme keine Fehlermeldung mehr, ich muss nur noch lernen damit richtig umzugehen.
    unten ist ein Beispiel das eine Tabelle ausließt und als Array anzeigt.

    Die Variablen müssen natürlich im Skript an euere Bedürfnisse angepasst werden.

    Wichtig ist das Skript mit 64x zu starten, wenn auch der Treiber 64xbit ist.
    Weil sonst seht ihr nur Fehlermeldung.

    verwendet wird momentan:
    - UDF ADO.au3 neuste Version.
    - MySQL ODBC 8.2 Unicode Driver64x

    C
    #include <ADP\ADO.au3>
    #include <array.au3>
    ;@AutoItX64 ? True : False
    $sDriver = ''
    $aDrivers = Get_ODBC_Drivers(False )
    For $Index = 1 To $aDrivers[0]
        If StringLeft($aDrivers[$Index], 5) = 'MySQL' Then
            $sDriver = $aDrivers[$Index]
            ExitLoop
        EndIf
    Next
    _ArrayDisplay($aDrivers,  $sDriver)
    $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    
    
    $sConnecetion = _ADO_ConnectionString_MySQL('user', 'pass', 'datenbank', $sDriver, 'ip', Default)
    $oConnection = ObjCreate("ADODB.Connection")
    $oConnection.Open($sConnecetion)
    
    ; Assuming $oConnection is your already established database connection
    $sQuery = "SELECT * FROM tabellenname" ; Replace 'your_table_name' with your actual table name
    $aResult = _ADO_Execute($oConnection, $sQuery, True, True)
    
    ; Check for errors
    If @error Then
        MsgBox(0, "Error", "SQL Query failed with error code: " & @error)
    Else
        ; Do something with $aResult, which is an array of your table data
        _ArrayDisplay($aResult, "Results") ; Display the results in an array display
    EndIf
    
    
    Func MySQL_Connect($sDriver = 'MySQL ODBC 8.2 Unicode Driver', $sServer = 'localhost', $sDatabase = '', $sUsername = '', $sPassword = '', $iPort = 3306, $iOption = 10)
        Local $oADO = ObjCreate('ADODB.Connection')
        ConsoleWrite('ADODB Connection object created: ' & IsObj($oADO) ? True : False & @CRLF)
        $oADO.ConnectionString = 'Driver={' & $sDriver & '};Server=' & $sServer & ';Database=' & $sDatabase & ';User=' & $sUsername & ';Password=' & $sPassword & ';Port=' & $iPort & ';Option=' & $iOption & ';'
        $oADO.Open()
        Return $oADO
    EndFunc
    
    
    Func Get_ODBC_Drivers($x64 = False)
        Local $sDrivers, $sDriver, $iInstance = 1
        Do
            $sDriver = RegEnumVal('HKLM' & ($x64 ? '64' : '') & '\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers', $iInstance)
            If $sDriver Then $sDrivers &= $sDriver & Chr(1)
            $iInstance += 1
        Until Not $sDriver
        Return StringSplit(StringTrimRight($sDrivers, 1), Chr(1))
    EndFunc
    
    Func _ErrFunc($oError)
       ConsoleWrite(@ScriptName & " (" & $oError.scriptline & ") : ==> COM Error intercepted !" & @CRLF & _
               @TAB & "err.number is: " & @TAB & @TAB & "0x" & Hex($oError.number) & @CRLF & _
               @TAB & "err.windescription:" & @TAB & $oError.windescription & @CRLF & _
               @TAB & "err.description is: " & @TAB & $oError.description & @CRLF & _
               @TAB & "err.source is: " & @TAB & @TAB & $oError.source & @CRLF & _
               @TAB & "err.helpfile is: " & @TAB & $oError.helpfile & @CRLF & _
               @TAB & "err.helpcontext is: " & @TAB & $oError.helpcontext & @CRLF & _
               @TAB & "err.lastdllerror is: " & @TAB & $oError.lastdllerror & @CRLF & _
               @TAB & "err.scriptline is: " & @TAB & $oError.scriptline & @CRLF & _
               @TAB & "err.retcode is: " & @TAB & "0x" & Hex($oError.retcode) & @CRLF & @CRLF)
    EndFunc
    Alles anzeigen
  • AOD SQLlite?

    • MojoeB
    • 5. Dezember 2023 um 14:50

    :) hat sich erledigt der chef hat sich gemeldet, es war ein anzeige Fehler im Programm, deshalb nicht konfigurierbar.

    Die richtige Auswahl wurde erst angezeigt, als noch eine Datenbank angelegt wurde.
    Und die *dll Methode funktioniert mit den Einstellungen die ich nun auch sehen kann doch.

    Deshalb Thema erledigt :)...

    Aber danke für eueren Beitrag.


    edit :


    Velted

    der connectingstring war Driver={SQLite3 ODBC Driver};Database=L:\meineDatenbank.db;
    würd nun aber nicht mehr benötigt.

  • AOD SQLlite?

    • MojoeB
    • 4. Dezember 2023 um 18:58

    water :) genau den habe ich als 2tes getestet.


    Tabellename wird angezeigt aber keine spalten Namen und auch keine daten.

  • AOD SQLlite?

    • MojoeB
    • 4. Dezember 2023 um 17:37

    Velted
    nunja 'ich sollte einen geeigneten Treiber finden, '
    ich habe heute mit 2 treibern rumexperimentiert und was soll ich sagen

    Ich habe heute den kompletten connectingstring direkt ins letzte Feld geschrieben, dort auch den Driver definiert.
    Und siehe da ich konnte ich mit Hilfe der Treiber (Devart ODBC ), in der Testumgebung schon mal die Tabelle sehen.
    In der Tabelle konnte ich die Spaltenbezeichungen auslesen der Inhalt hat aber gefehlt.
    Trailversion - Devart ODBC Driver for SQLite, der kostet aber pro Maschine monatlich etwas.

    Mit dem SQLite3 ODBC Driver konnte ich nur die Tabelle sehen aber keine Spalten kein Inhalt.
    - (SQLite ODBC Driver (ch-werner.de))

    Am Telefon hatte ich ja auch nur den Support dran nicht denjenigen der alles gecodet hat.
    Ich gehe davon aus das die erste Intension die *dll Variante war.
    Bis das Programm wieder neue Module bekommen hat und vor neuen Anforderungen stand.
    Und es dann bei der Umprogrammierung etwas unter gegangen, vielleicht wurde es zu selten benutzt.

    Das deutet zu mindestens auf die Dokumentation hin in der noch die *dll vermerkt ist.
    Sonst würde da nicht stehen die *dll von ...sqlite3... runterladen...

    Hat noch jemand einen driver den ich testen könnte ;(?`^^

  • AOD SQLlite?

    • MojoeB
    • 4. Dezember 2023 um 10:31

    Hallo zusammen,

    Ich habe mich daraun gewöhnt, dass SQLite sehr einfach mit AutoIt zu bedienen ist. Ich habe erfolgreich eine SQLite-Datenbank aus einer existierenden Excel-Datei mit AutoIt erstellt.

    Mein Ziel war es, diese Datenbank in ein externes Programm zu integrieren, das auf einem WindowsServer läuft, ohne zusätzliche Installationen (weitere Installtionien sind auf diesem System auch nicht erwünscht.).
    Laut der Programmdokumentation benötigt man nur die SQLite-DLL von der offiziellen Homepage.
    Weitere Details wurden nicht erwähnt.

    Nachdem ich den Hersteller kontaktiert hatte, schlug ein Mitarbeiter vor, die DLL ins Root-Verzeichnis zu legen und im Programm den richtigen ConnectionString für SQLite zu definieren.
    Da er sich aber nicht sicher war, verwies er mich an einen Kollegen.
    Die vorgeschlagene Methode funktionierte jedoch nicht.

    Der zweite Mitarbeiter, der wenig Erfahrung mit SQLite hatte, empfahl die Verwendung eines MS Express Servers, was mir übertrieben erschien, nur um eine Datei zu handhaben.
    Er meinte, ich sollte einen geeigneten Treiber finden, der über AOD läuft, da dies am besten mit dem Programm funktionieren würde.
    Nach der Installation mehrerer Treiber, wie Devart ODBC Driver für SQLite und SQLite3 ODBC Driver, wurden diese jedoch nicht als Provider-Optionen im Programm angezeigt.

    Daher habe ich zwei Fragen:

    1. Wo finde ich einen passenden Treiber für SQLite oder ist es überhaupt sinnvoll, danach zu suchen?
    2. Wie ist eure Meinung dazu?

  • Daten zwischen 2 Zeichen auslesen - Denkanstoss

    • MojoeB
    • 24. November 2023 um 16:10

    Moombas

    nunja entweder habe ich die frage nicht richtig gelesen oder verstanden.

    Verstanden habe ich es so :

    Wie bekomme ich die Werte zwischen '<''>' heraus.
    Der Ersteller hat geschrieben das die Werte innerhalb mit einem Leerzeichen getrennt sind.
    Wo nachmeiner Einschätzung der Ersteller denkt das hätte Auswirkungen auf den Code.
    Das Leerzeichen hat aber keine Auswirkung auf das Ergebnis.

    Denn er hat nicht gesagt er möchte alle werte zwischen '<''>' & diese nochmal im Leerzeichen splitten um statt 1 Wert 2 Werte zu erhalten.


    ob nun da steht : <ABC BLA BLA BLA>, oder <ABCBLABLABLA> ist egal es ist und bleibt 1 Wert zwischen <>.
    ob zwischen in meinem Beispiel ein Leerzeichen ist, ist unerheblich , da es nicht berücksichtigt werden muss.

    Außer der Ersteller hat die Absicht die Werte nochmal auseinander zu nehmen.

    Dann hast du natürlich vollkommen recht.

  • Daten zwischen 2 Zeichen auslesen - Denkanstoss

    • MojoeB
    • 24. November 2023 um 13:47
    AutoIt
    #include <array.au3>
    #include <String.au3>
    $source = '<Value1 Key1><Value2 Key2><Value3 Key3>'&@CRLF&'<Value1 Key4><Value5 Key5><Value6 Key6>'
    
    
    $a = _stringbetween($source, "<", ">")
    
    
    _ArrayDisplay($a)


    Einfacher geht's nicht.


    wenn es keine anderen Einflüsse gibt dann sollte _stringbetween immer funktionieren.

  • Alternative für Send-Befehl

    • MojoeB
    • 24. November 2023 um 07:37

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

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™