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

Beiträge von hipfzwirgel

  • Änderung eines Tab-Titels im Firefox nach Website-Aufruf

    • hipfzwirgel
    • 7. Dezember 2025 um 11:52

    Hallole alle Zusammen,


    Ich hatte den Vorschlag gesehen aber ich befinde mich derzeit nicht @home und das auch noch für die nächsten drei Wochen. Da ich solange keinen Zugriff auf meinen Dienstrechner habe, kann ich den Vorschlag nicht umsetzen, bzw. testen. Bitte entschuldigt...

  • Änderung eines Tab-Titels im Firefox nach Website-Aufruf

    • hipfzwirgel
    • 17. November 2025 um 13:45

    Hallo Gemeinde,

    ich rufe mit ShellExecute($s_Pfad, "", "", "", "") eine Webschnittstelle auf mit dem Titel (<title>Direct Port Access via Url</title>), die ihrerseits per Javascript ein neues Fenster öffnet.
    Im Browser bleibt der Tab bestehen, auch wenn ich das dazugehörige Javascriptfenster schließe. So sammeln sich ziemlich viele Tabs im Firefox an, die alle den genannten Fenstertitel tragen.

    Könnte man nicht den Tab, nachdem er das javascript-Fenster geöffnet hat, per Autoit ändern (hinzufügen einer Nummer, z.B. L20), damit ich weiss, welcher Tab zu welchem Javascriptfenster gehört hat?

  • Splashscreen-Gui mit Terminate Button / GuiEvents richtig abfangen

    • hipfzwirgel
    • 21. August 2025 um 16:34

    Hallole,

    das ging jetzt tatsächlich schneller als gedacht. ich habe das mit Adlibregister umgesetzt,. Was soll ich Sagen:

    ES LÄUFT SUPER!!!:party:

    Einen fetten Applaus für Kanashius :klatschen::klatschen::klatschen::klatschen:

    Vorgang erledigt...


    Code
    ; ich habe folgenden Codeschnipsel in die Splashscreen Func eingefügt und damit klappt es:
    
      ; Adlib aktivieren
        AdlibRegister("_CheckAbort", 200)
    EndFunc
    
    Func _CheckAbort()
        If Not IsHWnd($hGuiSp) Then Return
        Local $msg = GUIGetMsg()
        If $msg = $Button1 Then
            $g_bAbort = True
            LogWrite(@ScriptLineNumber, "Prozess vom Benutzer abgebrochen")
            _SplashStop()
        EndIf
    EndFunc
    Alles anzeigen
  • Splashscreen-Gui mit Terminate Button / GuiEvents richtig abfangen

    • hipfzwirgel
    • 21. August 2025 um 16:00

    Hallo Kanashius,

    vielen lieben Dank für deine Erklärung. Offenbar hatte ich das falsch verstanden. Dann mache ich mich mal an die Umsetzung
    könnte aber dauern , weil ich in ca. einer Stunde in den Urlaub aufbreche... :party::part::saint:

  • Splashscreen-Gui mit Terminate Button / GuiEvents richtig abfangen

    • hipfzwirgel
    • 21. August 2025 um 15:10

    Hallole Zusammen,

    zunächst einmal danke für die Beiträge :klatschen:

    Ich glaube das Prob ist doch größer. Wenn ich in der Hauptfunktion die Splashscreen-Funktion aufrufe blockiert diese mir die Hauptfunktion und da die Hauptfunktion aber mind. 32 Rechnernamen in eine Website einträgt und dann einen String ermittelt, den ich dann wieder in das Excel-File eintrage dauert der Vorgang mit ziemlicher Sicherheit zu lang für Adlibregister (Kanashuis ' Ansatz).

    Code
    ; das ist der Aufruf in der Hauptfunktion:
    
    ; === Hauptfunktion pro Sheet ===
    Func _Fetch_UBL_BySheet($sSheetName)
    
        LogWrite(@ScriptLineNumber, "_Fetch_UBL_BySheet() Start Sheet: " & $sSheetName)
       
         ; ==> dieser Aufruf blockiert die Func: 
        Local $hSplash = _SplashStart("Lese: " & $sSheetName)
    
        ; --- Excel öffnen ---
        Local $oExcel = _Excel_Open(True)
    	ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $oExcel = ' & $oExcel & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
        If @error Or Not IsObj($oExcel) Then
            _SplashStop()
            LogWrite(@ScriptLineNumber, "_Fetch_UBL_BySheet() Fehler: Excel konnte nicht gestartet werden.")
            Return MsgBox(16, "Fehler", "Excel konnte nicht gestartet werden.")
        EndIf
        .
        .
        .
        EndFunc
    Alles anzeigen


    Also wenn jemand eine Idee hätte wie ich den Splashscreen realisiert bekomme ohne die Hauptfunktion zu blockieren und mit einem Abbruch-Button, dann bitte her damit ;):)

  • Splashscreen-Gui mit Terminate Button / GuiEvents richtig abfangen

    • hipfzwirgel
    • 20. August 2025 um 16:02

    Hallo Moombas,

    Das war mein erster Versuch aber da der Splashscreen ja auch auf einer GUI basiert, reagiert GuiGetMsg nicht darauf.
    Ich teste gerade folgendes: der Splashscreen wird ja in der Func _Fetch_UBL_BySheet($aSheets[$i]) aufgerufen. Ich deaktiviere also zunächst die Hauptgui

    Code
    ; Beispiel:
    Case $idButtonReadSelected
    			GUISetState(@SW_DISABLE, $Hauptform) ; Hauptform deaktiveren wg Form in _SplashStart() / alle Gui-Variablen müssen dort anders heissen!!
    			For $i = 0 To 3
    				If GUICtrlRead($idRadio[$i]) = $GUI_CHECKED Then
    					_Fetch_UBL_BySheet($aSheets[$i])
    					ExitLoop
    				EndIf
    			Next
    			GUISetState(@SW_ENABLE, $Hauptform) ; Hauptform wieder aktivieren

    und aktiviere sie im Nachgang wieder. Durch eine eigene While für die Splashscreen-Gui, kann ich nun den Button1 des Splashscreens abfangen:

    Code
    ; While in der Func _SplashStart($sText)
    While 1 
    		$nMsg = GUIGetMsg()
    		Switch $nMsg
    			Case $GUI_EVENT_CLOSE
    				_SplashStop()
    
    			Case $Button1
    				_SplashStop()
    		EndSwitch
    	WEnd
    Alles anzeigen

    soweit so gut. So kann ich den Button des Splashscreens abfangen. Die Func Splashstop() ist die vorhandene Funktion um den Splashscreen zu beenden, wenn die Func _Fetch_UBL_BySheet($aSheets[$i])
    fertig ist und steht hier nur zum Testen. Jetzt muss ich nur noch heraus finden, wie ich beim Auslösen des Splash-Buttons den Excelprozess in der Func _Fetch_UBL_BySheet($aSheets[$i]) beenden kann, sowie die Func selbst und die Haupt-GUI wieder aktivere...
    Hätte da jemand evtl. eine Idee?

  • Splashscreen-Gui mit Terminate Button / GuiEvents richtig abfangen

    • hipfzwirgel
    • 20. August 2025 um 15:16

    Hallo Gemeinde,

    ich habe ein kleines Programm entwickelt, das mir aus einer Excelliste Rechnernamen ausliest, und diese in eine Website einträgt.
    Das Ergebnis wird dann wieder in die Excelliste eingetragen. Da dieser Vorgang lange dauern kann, habe ich einen Splashscreen erstellt.
    Auf der Gui des Splashscreen befindet sich ein "Terminate-Button" um den Vorgang abzubrechen. Wie fange ich diesen Buttonklick richtig ab?
    Ein Case in der Schleife der Haupt-GUI funzt nicht, logischer Weise...


    AutoIt
    ; HauptGui:
    
    ; === GUI erstellen ===
    GUICreate("UBL-Reader", 300, 250)
    GUICtrlCreateLabel("Wähle einen KVM:", 20, 20)
    
    Global $idRadio[4]
    $idRadio[0] = GUICtrlCreateRadio("DeskRegal", 20, 50)
    $idRadio[1] = GUICtrlCreateRadio("LapRegal", 20, 75)
    $idRadio[2] = GUICtrlCreateRadio("RaritanBla", 20, 100)
    $idRadio[3] = GUICtrlCreateRadio("RaritanBlupp", 20, 125)
    GUICtrlSetState($idRadio[0], $GUI_CHECKED)
    
    Global $idButtonReadSelected = GUICtrlCreateButton("Read Selected", 150, 60, 120, 30)
    Global $idButtonReadAll = GUICtrlCreateButton("Read All", 150, 100, 120, 30)
    
    GUISetState()
    
    ; === GUI Event-Loop ===
    While 1
    	Switch GUIGetMsg()
    		Case $GUI_EVENT_CLOSE
    			Exit
    
    		Case $idButtonReadSelected
    			For $i = 0 To 3
    				If GUICtrlRead($idRadio[$i]) = $GUI_CHECKED Then
    					_Fetch_UBL_BySheet($aSheets[$i])
    					ExitLoop
    				EndIf
    			Next
    
    		Case $idButtonReadAll
    			For $i = 0 To 3
    				_Fetch_UBL_BySheet($aSheets[$i])
    			Next
    
    	EndSwitch
    
    WEnd
    .
    .
    .
    
    ; === Splashscreen ===
    Func _SplashStart($sText)
    
    #Region ### START Koda GUI section ### Form=
    $hGuiSp = GUICreate("sFileVersion", 542, 314, -1, -1)
    GUISetFont(8, 800, 0, "Bosch Sans Bold")
    GUISetBkColor(0xFFFFFF)
    $SPPic2 = GUICtrlCreatePic("@ScriptDir\Band.jpg", 0, 0, 804, 11)
    $SPPlease = GUICtrlCreateLabel("Please be patient", 45, 224, 450, 41, $SS_CENTER)
    GUICtrlSetFont(-1, 22, 800, 0, "Sans Bold")
    GUICtrlSetColor(-1, 0x000080)
    $Label1 = GUICtrlCreateLabel("Searching UBL...", 154, 32, 233, 36)
    GUICtrlSetFont(-1, 22, 800, 0, "Office Sans")
    GUICtrlSetColor(-1, 0x000080)
    $Button1 = GUICtrlCreateButton("terminate", 230, 285, 81, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    
    
    	;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    	Global $sFile9 = "./loading.gif"
    
    	Global $hGIF = _GUICtrlCreateGIF($sFile9, "", 190, 122)
    	GUICtrlSetTip($hGIF, "Loading...")
    	;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    
    	GUIRegisterMsg(15, "_ValidateGIFs") ; WM_PAINT'
    	GUISetState()
    EndFunc
    
    
    Func _ValidateGIFs($hWnd, $iMsg, $wParam, $lParam)
    
    	#forceref $hWnd, $iMsg, $wParam, $lParam
    	_GIF_ValidateGIF($hGIF)
    
    EndFunc   ;==>_ValidateGIFs
    
    Func _SplashStop()
    	 If IsHWnd($hGuiSp) Then
            GUISetState(@SW_HIDE, $hGuiSp)
            Sleep(200)
            GUIDelete($hGuiSp)
            Sleep(300)
        EndIf
    EndFunc
    Alles anzeigen
  • GUi lässt sich nicht schließen

    • hipfzwirgel
    • 4. August 2025 um 10:50

    Hallo Aspirinjunkie,

    danke für deinen Denkanstoß. Da die GUI-Probs sich erst einstellten, als ich die SetError-Routine hinzugefügt hatte, habe ich den Block wieder entfernt.
    Die Original SSHREAD habe ich um die Fehler-Behandlung für den Fall, dass ein Computer zwar gefunden wird aber trotzdem nicht zur Verfügung steht erweitert und die ReadAllConsoles
    auch in die Originalversion zurückgeführt. Jetzt läuft das Programm wie es soll. Wenn ein Rechner in der Liste gefunden wird, wird der Browser mit dem Video des Computers geöffnet.
    Wenn nicht gefunden, Fehlermeldung und wenn gefunden aber nicht zu Verfügung, auch Fehlermeldung.

    Danke Fall gelöst...

  • GUi lässt sich nicht schließen

    • hipfzwirgel
    • 4. August 2025 um 09:29

    Hallo Gemeinde,

    die Func ReadAllConsoles ruft nacheinander die Func SSHRead auf. Dadurch werden nacheinander die 4 SSH-Consolen unserer KVM-Switche ausgelesen in ein Array.
    Das Array wird formatiert und gibt die Portnummer des gesuchten Computers und den Namen zurück. Da der Auslese-Vorgang etwas dauern kann habe ich einen Spinner hinzugefügt.
    Wenn der Fall eintritt, dass der Computer zwar gefunden wurde aber trotzdem nicht zur Verfügung steht, da er heruntergefahren ist, wird eine Warnung ausgegeben und die Suche abgebrochen.
    Leider schaffe ich es nicht, für diesem Fall, die Spinner-Gui zu beenden und auszublenden. GuiDelete gibt zwar die 1 zurück aber das Fenster bleibt weiter sichtbar.

    Hat jemand eine Idee woran das Liegen könnte?

    Code
    Func SSHRead($sKVM)
    	Local $sFoundNumber = -1
    	LogWrite(857, "SSHRead started for KVM: " & $sKVM)
    
    	; Decrypt login credentials
    	Local $s_Account = DeencryptionKVM($s_Konto, $sWert)
    	Local $s_Pwd = DeencryptionKVM($s_Parole, $sWert)
    
    	; Run SSH command using Plink
    	Local $sOutFile = @TempDir & "\output.txt"
    	Local $iPID = Run(@ComSpec & " /c " & $sVar4 & " " & $s_Account & "@" & $sKVM & " -pw " & $s_Pwd & " -batch > " & $sOutFile & " 2>&1", @TempDir, @SW_HIDE)
    
    	LogWrite(867, "SSH command launched. PID: " & $iPID)
    	Sleep(1500) ; Wait for output
    
    	; Clear credentials from memory
    	$s_Account = ""
    	$s_Pwd = ""
    
    	; Open and read output file
    	Local $hFile = FileOpen($sOutFile, $FO_READ)
    	If $hFile = -1 Then
    		LogWrite(877, "Error opening output file.")
    		Return SetError(1, 0, -1)
    	EndIf
    
    	Local $aArray = FileReadToArray($hFile)
    	FileClose($hFile)
    
    	If @error Or Not IsArray($aArray) Then
    		LogWrite(885, "Error reading SSH output.")
    		Return SetError(2, 0, -1)
    	EndIf
    
    	; Keep only relevant lines (indices 10–41)
    	For $i = UBound($aArray) - 1 To 42 Step -1
    		_ArrayDelete($aArray, $i)
    	Next
    	For $i = 9 To 0 Step -1
    		_ArrayDelete($aArray, $i)
    	Next
    
    	LogWrite(897, "SSH output trimmed. Entries remaining: " & UBound($aArray))
    
    	; Search through array
    	For $i = 0 To UBound($aArray) - 1
    		Local $sOriginalLine = $aArray[$i]
    		Local $sLine = StringStripWS($sOriginalLine, $STR_STRIPALL)
    
    		; Check for availability flags
    		Local $bUnavailable = (StringInStr($sLine, "NotAvailable") Or StringInStr($sLine, "down"))
    
    		; Extract computer name part
    		Local $sCleanLine = StringRegExpReplace($sLine, "_[^_]*$", "") ; Remove trailing suffix after "_"
    		Local $sName = StringRegExpReplace($sCleanLine, "^\d+-", "")    ; Remove leading number and dash
    		$sName = StringRegExpReplace($sName, "^CERT[1-5]-", "")         ; Remove CERTx- prefix
    
    		; Compare with entered computer name
    		If StringCompare($sName, $s_Compname, 0) = 0 Then
    			If $bUnavailable Then
    				LogWrite(915, "Computer '" & $s_Compname & "' found but not available: '" & $sOriginalLine & "'")
    				Return SetError(10, 0, -1) ; Code 10 = found but not available
    			EndIf
    
    			; Extract port number (digits before first "-")
    			Local $sNum = StringRegExpReplace($sLine, "^(\d+)-.*$", "\1")
    			LogWrite(921, "Computer '" & $s_Compname & "' found on port: " & $sNum)
    			Return $sNum
    		EndIf
    	Next
    
    	; Terminate plink.exe if still running
    	Local $plinkPID = ProcessExists("plink.exe")
    	If $plinkPID Then
    		ProcessClose($plinkPID)
    		ProcessWaitClose($plinkPID)
    		LogWrite(931, "plink.exe process terminated.")
    	EndIf
    
    	FileDelete($sOutFile)
    	LogWrite(935, "Computer '" & $s_Compname & "' NOT found on " & $sKVM)
    	Return SetError(3, 0, -1)
    EndFunc   ;==>SSHRead
    
    
    Func ReadAllConsoles()
    	LogWrite(941, "Starting console scan for computer: " & $s_Compname)
    
    	Disablecontrols()
    	ShowSpinnerGUI("🔍 Searching for '" & $s_Compname & "'...")
    
    	Local $aKVMs[5] = [$sKVM1, $sKVM2l, $sKVM3, $sKVM4]
    	Local $sFoundPort = ""
    	Local $bFoundButUnavailable = False
    
    	For $i = 0 To UBound($aKVMs) - 1
    		Local $sPort = SSHRead($aKVMs[$i])
    
    		Switch @error
    			Case 0
    				$sFoundPort = $sPort
    				LogWrite(957, "Computer found and available. Port: " & $sPort)
    				ExitLoop
    
    			Case 10
    				LogWrite(962, "Computer found on KVM but not available.")
    				$bFoundButUnavailable = True
    				ExitLoop
    
    			Case Else
    				LogWrite(968, "Computer not found on " & $aKVMs[$i])
    		EndSwitch
    	Next
    
    	; Spinner GUI jetzt sicher beenden, bevor irgendetwas angezeigt oder abgebrochen wird
    	HideSpinnerGUI()
    	Sleep(500)
    
    	If $bFoundButUnavailable Then
    		LogWrite(975, "Computer found but not available (down or not reachable).")
    		;MsgBox(48, "Information", "The computer '" & $s_Compname & "' was found, but is not available (down or unreachable).")
    		EnableControls()
    		Return
    	EndIf
    
    	If $sFoundPort = "" Then
    		LogWrite(982, "Computer '" & $s_Compname & "' not found on any KVM.")
    		;MsgBox(48, "Not Found", "The computer '" & $s_Compname & "' could not be found on any KVM.")
    		EnableControls()
    		Return
    	EndIf
    
    	LogWrite(989, "Generating URL with found port: " & $sFoundPort)
    	GenerateUrl("", $sFoundPort)
    EndFunc   ;==>ReadAllConsoles
    
    
    
    ; Die Spinner Funktionen:
    
    Func ShowSpinnerGUI($sText)
    
    	; Größe des Spinner-Fensters
    	Local $iWidth = 400
    	Local $iHeight = 80
    
    	; Position der Haupt-GUI ermitteln
    	Local $aPos = WinGetPos($Form1_1)
    	Local $iX, $iY
    
    	If @error Then
    		; Falls nicht bekannt, einfach zentriert am Bildschirm
    		$iX = -1
    		$iY = -1
    	Else
    		; Zentriert relativ zur Haupt-GUI
    		$iX = $aPos[0] + Int(($aPos[2] - $iWidth) / 2)
    		$iY = $aPos[1] + Int(($aPos[3] - $iHeight) / 2)
    	EndIf
    
    	; Fenster mit Popup und Dialog-Rahmen erstellen
    	$hSpinnerGUI = GUICreate("Search in progress...", $iWidth, $iHeight, $iX, $iY, BitOR($WS_POPUP, $WS_DLGFRAME), $WS_EX_TOPMOST)
    
    	; Label mit Text und Spinner
    	$idLabel = GUICtrlCreateLabel($sText & " " & $aSpinner[$iSpinnerIndex], 10, 30, 380, 40, $SS_CENTER)
    
    	; Hintergrundfarbe setzen (weiß)
    	GUISetBkColor(0xFFFFFF, $hSpinnerGUI)
    
    	; Schriftgröße und Fett
    	;GUICtrlSetFont($idLabel, 12, 600)
    	GUICtrlSetFont($idLabel, 12, 600, 0, "Consolas") ; 12pt, fett, nicht kursiv, Consolas
    	; Fenster anzeigen
    	GUISetState(@SW_SHOW, $hSpinnerGUI)
    
    	; Timer für Spinner starten
    	AdlibRegister("UpdateSpinnerLabel", 100)
    
    EndFunc   ;==>ShowSpinnerGUI
    
    
    ; Im Update-Loop nur Spinner-Zeichen austauschen, z.B. so:
    Func UpdateSpinnerLabel()
    	; Nur das rotierende Zeichen ändern, Text bleibt gleich lang
    	Local $sBaseText = "🔍 search for '" & $s_Compname & "'... "
    	$iSpinnerIndex = Mod($iSpinnerIndex + 1, UBound($aSpinner))
    	GUICtrlSetData($idLabel, $sBaseText & " " & $aSpinner[$iSpinnerIndex])
    EndFunc   ;==>UpdateSpinnerLabel
    
    
    Func HideSpinnerGUI()
    	AdlibUnRegister("UpdateSpinnerLabel")
    	If $hSpinnerGUI Then
    		Local $s_Handle = GUIDelete($hSpinnerGUI)
    		ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $s_Handle = ' & $s_Handle & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    		$hSpinnerGUI = 0
    	EndIf
    EndFunc   ;==>HideSpinnerGUI
    Alles anzeigen
  • Probs beim Auslesen einer Website

    • hipfzwirgel
    • 11. Juni 2025 um 13:59

    Hallo Kanashius,

    ich habe nach deiner Anleitung gehandelt aber unter Response, gibt es leider keine Zeile die die gewünschten Daten wie z.B.
    Port Name Type ...
    1 Rechnername_L1 DVM-HDMI 8000 5A97 HUX1...

    anzeigt. ;(;(;( Es taucht auch keine json datei, auf sondern nur html, js und css Dateien. Die js-Dateien haben keine Antwort verfügbar.

    Ich fürchte die Webseiten sind genauso schlecht umgesetzt wie die SSH-Schnittstelle der KVMs und die ist wirklich richtig grottig...

  • Probs beim Auslesen einer Website

    • hipfzwirgel
    • 11. Juni 2025 um 09:05

    Hallo Kanashuis, hallo Solve-Smart,

    zunächst vielen lieben Dank für eure Antworten. Ja man benötigt ein Login um sich die Konsole im Browser anzeigen zu lassen.

    So wie ich den Quelltext verstehe wird der Inhalt der jeweiligen Seite per JS zur Laufzeit generiert. Auf der Website wird eine Tabelle dargestellt, die die Portnummer, den dort angeschlossenen Rechnernamen und noch u.a. die Seriennummer des am Zielrechner angeschlossenen USB-Dongle(DCIM) des KVM's anzeigt. Das sind auch die Infos dir wir für das Projekt benötigen.
    Leider gibt es weder eine Möglichkeit via SSH oder sonst an diese Infos zu kommen. Es gäbe zwar laut Hersteller ein SDK für die KVMs aber diese Lizenz würde mehrere tausend €uro kosten.

    Mit welchen WEB-Developer Infos könnte ich euch hier weiterhelfen?

    Bilder

    • Raritankx.png
      • 17,66 kB
      • 751 × 424
  • Probs beim Auslesen einer Website

    • hipfzwirgel
    • 10. Juni 2025 um 12:55

    Hallo Gemeinde,

    für ein größeres Projekt benötigen wir die Seriennummern der am KVM-Switch angeschlossenen Dongles. Dies werden leider nur und ausschließlich auf einer Seite der WEB-Konsole des KVM angezeigt.
    Ich habe nun versucht das Auslesen der Informationen via Firefox (Browser öffnen, Webconsole des KVMs öffnen, per Sendbefehle zur Maintenance-Website wechseln und den Inhalt kopieren...) zu machen. Soweit würde dies auch funktionieren, wenn da nicht die Eigenheiten des Firefox dazwischen funken würden, wie z.B.
    das sich die Browserinstanz nicht richtig schliesst, bzw. beim neu öffnen eine Fehlermeldung erscheint, das der Browser noch in einer Instanz läuft oder er will die vorher geöffnete Instanz wieder herstellen, etc...

    Kann man mit Autoit ein eigenes Browserfenster erstellen oder wie würdet ihr da rangehen?

  • Keine Rückmeldung von DriveGetLabel mehr

    • hipfzwirgel
    • 21. Mai 2025 um 12:18

    Hm, ich habe jetzt die Schleife etwas geändert.

    Code
    ; ich habe 
    
    Local $sLabel = DriveGetLabel($aDGD[$i] & "\")
    If @error Then
    	ContinueLoop
    EndIf
    
    ;vor die "Label"-If gestellt und jetzt bekomme ich wieder das Label...
    ;offenbar wurde die Schleife immer beim ersten @error abgebrochen und in der Vergangenheit war der Stick immer auf D:
    ; seit heute ist er, warum auch immer, auf F:...	Fall erledigt
  • Keine Rückmeldung von DriveGetLabel mehr

    • hipfzwirgel
    • 21. Mai 2025 um 11:29

    Hallo Gemeinde,

    seit 2021 benutze ich folgenden Code in meinem Programm um festzustellen ob ein bestimmter USB-Stick
    angeschlossen ist:


    AutoIt
    Local $Name = "SCCMBOOT"
    Local $aArray1 = 0
    
    Sleep(1500)
    Local $aDGD = DriveGetDrive("REMOVABLE")
    For $i = 1 To UBound($aDGD)
        If DriveGetLabel($aDGD[$i] & "\") = $Name Then
        ;~ ...
        ;~ ...
        EndIf
    Next
    Alles anzeigen

    Das Ergebnis in $aDGD sieht so aus: Row|Col 0
    # 0|5
    # 1|d:
    # 2|f:
    # 3|g:
    # 4|h:
    # 5|i:

    Warum bekomme ich seit heute kein Label mehr zurück:?::?::?:
    Am Montag ging es noch.

    Wenn ich DriveGetLabel("F:\") ausführe bekomme ich das Label des Sticks zurück:!::!::!:

    Liegt das eigentlich an Autoit oder am OS. Ich hatte das jetzt schon öfter das bestimmte Codes Monate oder wie in diesem Fall Jahre funktionieren, und dann auf einmal nicht mehr. Echt nervig...

  • png-Datei in PDF umwandeln

    • hipfzwirgel
    • 15. April 2025 um 17:24

    Hallo Schnuffel,
    Hallo Gemeinde,

    Der Datenfluss ist folgendermaßen: Ich muss öfter ein sog. 0-Serientest machen. Dafür gibt es eine PDF-Checkliste (eben ein Formular) wo die Kopfdaten des zu testenden Computers und
    verschiedene technische Daten wie z.B. Bios-Version, SDD, etc. ebenfalls in die Checkliste einzutragen sind. Danach ist ein Screenshot via HWiNFO zu erstellen und ein BIOS-Dump (Textdatei).
    Alles zusammen muss dann zu einer Test-Protokoll-PDF gemerged werden, damit dieses auch weitergegeben werden kann. Bedingt durch vorgegebene Layoutanpassungen(z. B. Kopfzeile auf jeder Seite),
    bessere Abbildung des Screenshots, etc. muss ich eben ein Rework der Protokolldatei machen.

    Ich habe mir jetzt damit beholfen, das ich die Seite mit dem Screenshot (DinA4 quer), und das mehrseitige BIOS-Dump als Exceldateien angelegt habe. So kann ich zunächst die Kopfdaten per Autoit befüllen, den Screenshot einfügen und den Inhalt des BIOS-Dump auch in die notwendigen Seiten samt Kopfdaten mit Autoit einfügen und alles zu einer Datei mergen.

    Excel war für mich die bessere Wahl, da dort a) die Zellen leichter zu adressieren sind und b) die Textboxen der Kopfzeile ebenfalls relativ easy zu beschreiben sind und
    ich die BIOS-Angaben wie Bios-Option in die erste Spalte schreiben kann und den dazugehörigen Wert in eine weitere Spalte. Im Original sind dieses werte mittels Tabs formatiert, was in Word nicht wirklich schön ausgesehen hat... Vielen ieben Dank an dieser Stelle für all eure Ideen und Einlassungen. Sie haben mir sehr geholfen. :klatschen:

  • png-Datei in PDF umwandeln

    • hipfzwirgel
    • 10. April 2025 um 12:18

    Hallo Schnuffel,

    aber gerade da stößt die UDF ja an ihre Grenzen. Das Testprotokoll soll wie im Template ersichtlich, jetzt auf jeder Seite
    die Kopfzeile haben. Wie du selber gesagt hast, ist es nicht möglich mit der UDF das Template als Basis zu nehmen.
    Ich habe versucht die Grafik (Screenshot von HWiNFO64) in das PDF-Template einzufügen, sodass die Kopfzeile nicht überlagert wird aber das habe ich bis jetzt nicht hinbekommen.
    Auch Chatgpt hat mir keine praktikable Lösung geben können.

    Bisher füllt mein Autoit-Programm auf der ersten Seite (Checkliste als PDF-Formular) die Kopfdaten und verschiedene technische Parameter des
    zu prüfenden Computers aus. Dann wurde der notwendige HWiNFO64-Screenshot per UDF in ein PDF(leeres Blatt ohne Kopfzeile) konvertiert - das mit der Ausrichtung und Größe haben wir ja jetzt
    hinbekommen - aber eben nicht die (ausfüllbare) Kopfzeile. Im letzten Schritt erzeugt mein Proggi aus einem Textfile (Bios-Dump) eine weitere PDF (leider auch ohne die Kopfzeile). Alle 3 PDF-Dateien werden dann via pdftk.exe von meinem Proggi gemergt zu einem Testprotokoll.

    Fazit: Mein Proggi machte bisher alles was notwendig war. Nur leider muss ich eben jetzt überall die Kopfzeile einfügen...;(
    Daher der Gedanke die Seiten 2 mit dem Screenshot und die Seiten mit dem Bios-Dump als Excel zuerstellen, die notwendigen Angaben für die Kopfzeile und die Textdaten des Bios-Dump
    lassen sich via Autoit dort in die Zellen eintragen und die Grafik hoffentlich wie in Word einfügen. Das ganze dann als PDf speichern wird ja hoffentlich auch i-wie gehen...

  • png-Datei in PDF umwandeln

    • hipfzwirgel
    • 10. April 2025 um 11:23

    Hallo gmmg,

    das ist richtig und zwar wegen der Möglichkeit dort, dass Word-Dokument als PDF-Formular(befüllbare Textfelder) zu exportieren.
    Geht aber nur wenn das Wordfile im Kompatibilitätsmodus gespeichert ist und die Textfelder auch "alter Art sind".

    @ Schnuffel:

    ich denke ich werde die Seite mit der Grafik, sowie die Seite mit dem Textfile in Excel nachbauen.
    Dort kann ich ja die Zellen dann beschreiben, eine Grafik einfügen und das Textfile via z. B. FileReadArray eben falls in ein Excel Template eintragen.

    Könnte man die Excel-Files dann via Autoit als PDF speichern, so das ich sie dann mergen kann?

  • png-Datei in PDF umwandeln

    • hipfzwirgel
    • 9. April 2025 um 16:15

    Hallo Musashi,

    das ist traurig. Da wird dann wohl keine Antwort kommen ;(

  • png-Datei in PDF umwandeln

    • hipfzwirgel
    • 9. April 2025 um 12:18

    Hallo Schnuffel,

    ich habe heute morgen im Autoitscript.com eine Nachricht an taietel gesendet mit der Frage nach einem Howto.
    Dort bekam ich den Hinweis eingeblendet, er sei aktiv. Was auch immer das heissen mag... Schauen wir mal ob ich eine Antwort bekomme.
    Wenn ja werde ich sie hier posten. Mein Template ist im Anhang. Es handelt sich um ein PDF-Formular. Die ausfüllbaren Felder sollten erhalten bleiben,
    wenn i-wie möglich. ;)

    Im Vorfeld schon jetzt meinen aller herzlichsten Dank für deine Mühen...

    Dateien

    Checklist_Productive_0-series_Template_CCfürAutoit.pdf 31,13 kB – 219 Downloads
  • png-Datei in PDF umwandeln

    • hipfzwirgel
    • 9. April 2025 um 11:00

    Hallo Schnuffel,
    hallo Gemeinde,

    gibt es eigentlich so etwas wie ein Howto für die UDF?

    Ich konnte im Originalbeitrag leider nur die Examples finden aber
    eben keine "Bedienungsanleitung". ich würde gerne ein von mir entworfenes template als Basis-PDF nutzen...
    konnte aber weder in der Func initpdf noch sonst eine Möglichkeit finden dies umzusetzen...

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™