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

Beiträge von Bitnugger

  • Poweshellbefehl

    • Bitnugger
    • 29. August 2022 um 18:33
    Zitat von casi4712

    wie entpacke ich das

    So sollte es gehen:

    AutoIt
    ; Download Teamviewer to @WorkingDir
    Local $sCMD = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -command Invoke-WebRequest -Uri "https://download.teamviewer.com/download/TeamViewerPortable.zip" -OutFile ".\teamviewer.zip"'
    If RunWait($sCMD, "", @SW_Show) Then
        ConsoleWrite('Download Teamviewer: @error = ' & @error & @CRLF)
    Else
        ; Extract Zip-Archiv to @WorkingDir & '\teamviewer'
        $sCMD = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass Expand-Archive -Path .\teamviewer.zip -DestinationPath .\teamviewer'
        If RunWait($sCMD, "", @SW_Show) Then
            ConsoleWrite('Extract Zip-Archiv: @error = ' & @error & @CRLF)
        EndIf
    EndIf
    Alles anzeigen
  • Poweshellbefehl

    • Bitnugger
    • 29. August 2022 um 17:43
    Zitat von casi4712

    der Befehl selber funktioniert in CMD allein.

    Für AutoIt hast du die Anführungszeichen falsch gesetzt... so funktioniert es:

    AutoIt
    Local $command = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -command Invoke-WebRequest -Uri "https://download.teamviewer.com/download/TeamViewerPortable.zip" -OutFile "teamviewer.zip"'
    If RunWait($command, "", @SW_Show) Then ConsoleWrite('@error = ' & @error & @CRLF)

    Bei -OutFile kannst du auch einen Pfad mitgeben, wo es gespeichert werden soll... z.B.: "m:\Temp\teamviewer.zip"

  • ImageSearch verhält sich unterschiedlich in Abhängigkeit des aktiven Fensters

    • Bitnugger
    • 28. August 2022 um 17:34
    Zitat von stefan10

    aber mein Bankingprogramm nicht.

    Soweit ich weiß, können sich Programme davor schützen, dass davon ein Screenshot gemacht werden kann... bzw. dir fehlen dafür die nötigen Rechte. So auch mit Zwischenablage & Co.

  • ImageSearch verhält sich unterschiedlich in Abhängigkeit des aktiven Fensters

    • Bitnugger
    • 27. August 2022 um 20:16
    Zitat von stefan10

    Auch der Ausschnitt lässt sich nicht hochladen. Er hat 4.025kB. Es kommt immer ein Fehler.

    Weil der Dateiname mit .xcf endet... diese Erweiterung ist hier nicht erlaubt. Der Dateiname in der Magenta-Cloud endet mit .bmp... das hättest du auch direkt hier hochladen können. ;) Ansonsten kann man Dateien mit unerlaubten Erweiterungen einfach umbenennen (z.B. *.nfo => *.txt) oder in ein Zip-Archiv packen, um es hier hochladen zu können.

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bitnugger
    • 15. August 2022 um 22:02
    Zitat von Andy

    Was sind denn "Serverprogramme"?!

    Er meint sicher Programme, die als Service ausgeführt werden... und die haben, soweit ich weiß, (normalerweise) keine GUI.

    Ansonsten bin ich zu 100% deiner Meinung! :rock:

  • paralleler CMD start mit schleife

    • Bitnugger
    • 15. August 2022 um 21:49
    Zitat von casi4712

    Jo danke sehr, das Problem ist halt, sobald kein Stick angeschlossen ist, wird nur lapidar geschrieben, es ist ein Fehler aufgetrten, dass ist für mein MInitool natütlich sehr unschön, wie kann ich da abfangen?

    So z. B.:

    Das Script von Musashi etwas gekürzt und erweitert...

    AutoIt
    #include <Array.au3>
    #include <AutoItConstants.au3>
    
    Local $iRemovable = 0, $aArray = DriveGetDrive($DT_ALL) ; ($DT_REMOVABLE) , ($DT_ALL) ; DRIVELETTER
    If @error Then
        Exit MsgBox(BitOR(4096, 16), "DriveGetDrive: ", "Es ist ein Fehler aufgetreten")
    Else
        _ArrayColInsert($aArray, 1) ; DRIVETYP
        _ArrayColInsert($aArray, 2) ; BUSTYPE
        _ArrayColInsert($aArray, 3)    ; DRIVELABEL
        _ArrayColInsert($aArray, 4) ; DRIVESTATUS
        For $i = 1 To $aArray[0][0]
            $aArray[$i][1] = DriveGetType($aArray[$i][0], $DT_DRIVETYPE)
            $aArray[$i][2] = DriveGetType($aArray[$i][0], $DT_BUSTYPE)
            $aArray[$i][3] = DriveGetLabel($aArray[$i][0])
            $aArray[$i][4] = DriveStatus($aArray[$i][0] & "\")
            If $aArray[$i][1] = 'Removable' Then $iRemovable += 1
        Next
        If $iRemovable = 0 Then MsgBox(BitOR(4096, 16), "DriveGetDrive: ", "Es ist kein USB-Stick/Wechseldatenträger angeschlossen!")
        ; erweitertes Array anzeigen :
        _ArrayDisplay($aArray, 'Drives', '', 0, Default, 'DRIVELETTER|DRIVETYP|BUSTYPE|DRIVELABEL|DRIVESTATUS')
    EndIf
    Alles anzeigen
  • paralleler CMD start mit schleife

    • Bitnugger
    • 13. August 2022 um 20:20
    Zitat von Racer

    Sorry für die Formatierung: Aber ich weiß nicht warum das beim C&P ist alles so verschoben ist!

    Dann versuche mal es mit Ctrl+Shift+V einzufügen... von wo kopierst du es denn in die Zwischenablage? ...aus welchem Programm. Wenn du das aus SciTE heraus machst, sollte es allerdings fehlerlos funktionieren.

    Zitat von Racer

    $dd[$i][1] & gettok ($b, "=", 2) & "|"

    Die Funktion gettok() gibt es nicht in deinem Script...

    Variablen-Deklaration

    In den ersten beiden Zeilen deklariest du sie mit Local... wobei in der zweiten Zeile jedoch das Komma zwischen den Variablen fehlt (Error!)... in der dritten mit Dim... wieso hier Dim?


    Zitat von casi4712

    Also ich habe das script jetzt mal getestet, ich seh schon Thema Autoit und Arays muss ich mich nich mit beschäftigen,

    Ohne die Integration von Arrays wäre jede Programmiersprache praktisch unbrauchbar. Arrays sind demzufolge ergo ein absolutes Muss... das ist zumindest meine Meinung.

  • paralleler CMD start mit schleife

    • Bitnugger
    • 13. August 2022 um 00:28
    Zitat von casi4712

    Warum das parallel laufen soll, weil es bei meheren eingesteckten Sticks Zeit spart.

    Du weißt, dass du hier von Millisekunden redest?

    Hier ein Bsp. das zeigt, wie schnell es geht, Notepad 10x zu starten...

    AutoIt
    Local $hTimer = TimerInit()
    For $i = 1 To 10 Step 1 ; 10x Notepad starten
        Run('Notepad.exe')
    Next
    ConsoleWrite('Time = ' & TimerDiff($hTimer) & ' ms' & @CRLF) ; Time = 49.0974 ms

    ...das dauert bei mir nicht mal 50 ms... was willst du da noch sparen?

  • paralleler CMD start mit schleife

    • Bitnugger
    • 12. August 2022 um 21:22
    Zitat von casi4712

    $sticks = Get-WmiObject Win32_LogicalDisk | Where-Object DriveType -eq 2

    So ermittelst du, ob es sich um einen Wechseldatenträger handelt... das kann ein USB-Stick sein... es kann aber auch eine USB-Festplatte sein.

    Das kannst du aber auch mit AutoIt machen: DriveGetType ( "path" [, operation = 1] )

    Zitat von casi4712

    Wie bekomme ich es hin, dass bei meherern existeten Sticks, diese Prozesse quasi parallel gestartet werden, also nicht nacheinander?

    Das willst du, weil... ?

  • Die Geschichte eines Mädchens aus einem kleinen Dorf mit dem Namen Barbara.

    • Bitnugger
    • 5. August 2022 um 13:07
    Zitat

    Die Gesichte eines Mädchen

    Kauf dich ein Tütä Deusch... hat mich auch gehelft... 8o

  • Splash Font automatisch anpassbar

    • Bitnugger
    • 4. August 2022 um 20:47
    Zitat von Oscar

    Man könnte den Pfad ja auch in der Mitte kürzen (vorn und hinten der Pfad und in der Mitte nur "..." anzeigen),

    _WinAPI_PathCompactPath ; Truncates a file path to fit within a given pixel width by replacing path components with ellipse

  • GDIPlus code als Funktion - Bitte um Hilfe.

    • Bitnugger
    • 1. August 2022 um 17:08
    Zitat von Kanashius

    #include "WallpaperUDF.au3"

    Ja und wo finde ich die?

    Hat sich erledigt...

    Zitat von Kanashius

    Func _getMaxRect()

    Die kann wohl weg...

  • Splash Font automatisch anpassbar

    • Bitnugger
    • 1. August 2022 um 17:02
    Zitat von Moombas

    256 wenn ich mich jetzt nicht falsch erinnere

    Während das Standard-Dateisystem von Windows, NTFS, Pfade bis zu einer Länge von 65.535 Zeichen unterstützt, hat Windows selbst in der neuesten Version eine maximale Pfadlänge von 255 Zeichen (der Wert der Konstante MAX_PATH).

  • SAX XML-Parser - anderer Parsing-Ansatz für die Behandlung von XML-Daten

    • Bitnugger
    • 27. Juli 2022 um 19:14

    Sehr schön... die "book id" sollte aber auch ausgegeben werden. :thumbup:

  • GUICtrlCreateIcon mit png-Datei

    • Bitnugger
    • 20. Juli 2022 um 18:47

    History

    AutoIt:

    3.3.14.0 (10th July, 2015) (Release)

    Au3Check:

    • Fixed: False error report on COM variable.
    • Fixed: False error report on With statement.
    • Added: Support of UTF8 with BOM files.

    Fazit: Dein AutoIt (Au3Check) ist zu alt... also entweder eine aktuellere Version installieren, oder die Datei (das Example) als UTF-8 ohne BOM speichern.

    Siehe auch hier: BOM

  • GUICtrlCreateIcon mit png-Datei

    • Bitnugger
    • 9. Juli 2022 um 21:28

    Schau mal hier: _GuiCtrlSetImageEx

  • Wenn eine Taste gedrückt wurde, soll zu einer anderen Stelle im Programm gesprungen werden

    • Bitnugger
    • 6. Juli 2022 um 16:57
    Zitat von Velted

    Deine Schleife aus #5 erzeugt bei mir ordentlich CPU-Last. Was spricht bei Anwendungen, die im Hintergrund laufen und nur auf Tastendruck reagieren, gegen die Funktion

    Im äußeren While...WEnd fehlte ein Sleep(100)... aber ja, ich würde es auch mit HotKeyset oder GUISetAccelerators machen.

    AutoIt
    If HotKeySet("{F9}", "_Start") = 0 Then Exit 1
    If HotKeySet("{ESC}", "_Exit") = 0 Then Exit 2
    
    While 1
        Sleep(100)
    WEnd
    
    Func _Start()
        HotKeySet("{F9}") ; Vorherigen Hotkey zurücksetzen, damit die Funktion erst nach Verlassen wieder aufgerufen werden kann.
        ConsoleWrite('Die Funktion _Start wurde aufgerufen...' & @CRLF)
        ; ...
        If HotKeySet("{F9}", "_Start") = 0 Then Exit 11 ; Hotkey wieder setzen.
    EndFunc   ;==>_Start
    
    Func _Exit()
        ConsoleWrite('Die Funktion _Exit wurde aufgerufen...' & @CRLF)
        Exit
    EndFunc   ;==>_Exit
    Alles anzeigen
  • Wenn eine Taste gedrückt wurde, soll zu einer anderen Stelle im Programm gesprungen werden

    • Bitnugger
    • 5. Juli 2022 um 20:38

    So ist besser...

    AutoIt
    ;-- TIME_STAMP   2022-07-05 20:34:37   v 0.1
    
    #include <Misc.au3> ; <<-- _IsPressed
    
    Global $g_hDLL = DllOpen("user32.dll") ; Handle für die Dll holen, damit _IsPressed dies nicht bei jedem Durchlauf machen muss.
    
    While 1
        If _IsPressed("78", $g_hDLL) Then ; F9 gedrückt?
            ConsoleWrite('"78" (F9) was pressed.' & @CRLF)
            While _IsPressed("78", $g_hDLL) ; Warten, bis die Taste F9 wieder losgelassen wurde, damit die Funktions _Start pro Tastendruck nur einmal aufgerufen wird.
                Sleep(250)
            WEnd
            ConsoleWrite('"78" (F9) was released.' & @CRLF)
            _Start()
        ElseIf _IsPressed("1B", $g_hDLL) Then ; ESC gedrückt?
            ConsoleWrite('"1B" (ESC) was pressed.' & @CRLF)
            _Exit()
        EndIf
        Sleep(100)
    WEnd
    
    Func _Start()
        ConsoleWrite('Die Funktion _Start wurde aufgerufen...' & @CRLF)
    EndFunc   ;==>_Start
    
    Func _Exit()
        DllClose($g_hDLL) ; Handle wieder freigeben.
        Exit
    EndFunc   ;==>_Exit
    
    
    ;~ https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate
    
    ;~ Func _IsPressed($sHexKey, $vDLL = "user32.dll")
    ;~     Local $aCall = DllCall($vDLL, "short", "GetAsyncKeyState", "int", "0x" & $sHexKey)
    ;~     If @error Then Return SetError(@error, @extended, False)
    ;~     Return BitAND($aCall[0], 0x8000) <> 0
    ;~ EndFunc   ;==>_IsPressed
    Alles anzeigen
  • Windows Aktivierung

    • Bitnugger
    • 16. Juni 2022 um 14:54
    Zitat von casi4712

    Die Funktion ifWinActivated von Oscar liefert bei mir in hjedem Falle True auch wenn ich per slmgr windows deaktiviert habe.

    Zum Verständnis:

    Code
    M:\>WMIC /NAMESPACE:\\root\CIMV2 PATH SoftwareLicensingProduct WHERE LicenseStatus=1 GET Description, LicenseStatus
    Description                                  LicenseStatus
    Windows(R) Operating System, RETAIL channel  1
    Office 16, RETAIL channel                    1


    Ändere die Funktion mal so, dann klappt es sicher auch bei dir:

    AutoIt: _IfWinActivated.au3
    ;-- TIME_STAMP   2022-06-16 14:52:23   v 0.1
    
    #include <StringConstants.au3>
    
    ConsoleWrite('Windows is activated: ' & _IfWinActivated() & @CRLF)
    
    Func _IfWinActivated()
        Local $sCommand, $iPID, $sData
        $sCommand = @ComSpec & ' /c WMIC /NAMESPACE:\\root\CIMV2 PATH SoftwareLicensingProduct WHERE LicenseStatus=1 GET Description, LicenseStatus|findstr "Operating System"'
        $iPID = Run($sCommand, @ScriptDir, @SW_HIDE, 0x2)
        ProcessWaitClose($iPID)
        $sData = StringStripWS(StdoutRead($iPID), $STR_STRIPTRAILING)
    ;~     ConsoleWrite("@@_Debug_line" & @TAB & @TAB & @ScriptLineNumber & "   var: $sData --> " & $sData & @LF)
        Return StringRight($sData, 1) == '1'
    EndFunc   ;==>_IfWinActivated
    Alles anzeigen
  • Ip Aktualsierung funktionieert nicht

    • Bitnugger
    • 14. Juni 2022 um 13:29
    Zitat von BugFix

    _PS_GetActiveAdapterShortInfo()

    Wenn IPv4 und IPv6 aktiviert ist, arbeitet die Funktion (StringRegExpReplace) nicht korrekt.

    Schau selbst:

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™