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

Beiträge von Gofel

  • Sreenshot bei headless Chrome bringt nicht die gewünschte Bildgröße

    • Gofel
    • 10. April 2021 um 14:01
    AutoIt
    #include <Inet.au3>
    
    Local $Website = "https://infogram.com/coronafallzahlen2-1hdw2jwlnqxp4l0"
    Local $Quelltext = _INetGetSource($Website)
    
    Local $ImageLink = StringTrimLeft($Quelltext, StringInStr($Quelltext, '"og:image" content="')+ 19)
    $ImageLink = StringLeft($ImageLink, StringInStr($ImageLink, '?')-1)
    InetGet($ImageLink, "C:\TESTS\Covid_Fallzahlen_MUC.jpg")

    Ich habe jetzt einfach mal das Bild von der Website gespeichert, hilft dir das?

  • Fehler beim Importieren erkennen

    • Gofel
    • 25. März 2021 um 21:14

    Danke für den Tipp, das reicht mir für den Hausgebrauch völlig:

    AutoIt
    #RequireAdmin
    
    
    Local $MyRegFile = @ScriptDir & "\MyRegFile.reg"
    Local $ret = _Import_RegFile($MyRegFile)
    MsgBox(1,"Result:",$ret) ;1=erfolg|0=fehler
    
    
    Func _Import_RegFile($RegFile)
    
        If Not FileExists($RegFile) Then Return 0
        If StringRight($RegFile, 4) <> '.reg' Then Return 0
    
        DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
        Local $Logfile = @TempDir & "\reglog.log"
        FileDelete($Logfile)
        RunWait(@ComSpec & ' /c reg import "' & $Regfile & '" && echo %errorlevel% >"' & $Logfile & '"', "", @SW_HIDE)
    
        Local $sRead = Number(FileRead($Logfile))
        FileDelete($Logfile)
    
        If $sRead = 0 Then Return 1
        Return 0
    
    EndFunc
    Alles anzeigen
  • Wie kann ich eine html Webseite in ein Bild umwandeln?

    • Gofel
    • 23. März 2021 um 13:56

    Sorry das ich das hier nochmal aufmache, aber das hatte mich jetzt auch interessiert...

    Sowohl Firefox als auch Chrome haben einen 'Screenshot' command für die Komandozeile. Allerdings wollen beide, auf den ersten Blick, mit einer live URL gefüttert werden, und nicht mit einer html Datei von der Festplatte. Aber eventuell hilft das ja.

  • Fehler beim Importieren erkennen

    • Gofel
    • 23. März 2021 um 11:48

    Ein 'reg import' wie in meinem Beispiel beinhaltet bereits eine Fehlerprüfung seitens Microsoft:

    https://docs.microsoft.com/de-de/windows-…ands/reg-import

    würde die Kommandozeile etwas brauchbares in StdoutRead schreiben wäre das ein vernünftige Lösung.

    Leider stehe ich mit StdoutRead auf Kriegsfuß :)

    Das Auslesen einer *.reg Datei und umwandeln in Autoit ist möglich, aber schwieriger als zunächst gedacht. REG_BINARY Werte z.B. müssen umgewandelt werden damit

    sie in der Registry richtig ankommen. Hatte ich in der Vergangeheit aber auch schonmal gemacht. Finde dazu aber leider nichts in meinem Archiv.

  • Fehler beim Importieren erkennen

    • Gofel
    • 22. März 2021 um 01:25

    Hier mal meine Lösung aus meinem Archiv. Ich füge die .reg Datei über die cmd hinzu.

    Die Fehlerprüfung ist rudimentär, hatte mir aber bisher genügt. Ich prüfe nur ob der 1. Schlüssel der in der .reg Datei aufgeführt ist auch in der Registry angekommen ist.

    Sauberer, und einfacher, wäre wohl ein StdoutRead der Kommandozeile. Das habe ich aber nicht hinbekommen.

    Bedenke das du für viele Bereiche in der Registry admin Rechte brauchst.

    AutoIt
    #RequireAdmin
    
    
    Local $MyRegFile = @ScriptDir & "\MyRegFile.reg"
    Local $ret = _Import_RegFile($MyRegFile)
    MsgBox(0, "", $ret)
    
    
    Func _Import_RegFile($RegFile)
    
        If Not FileExists($RegFile) Then Return 0
        If StringRight($RegFile, 4) <> '.reg' Then Return 0
    
        DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1)
        Local $iPID = RunWait(@ComSpec & ' /c reg import "' & $Regfile & '"', "", @SW_HIDE)
    
        Local $sRead = FileRead($RegFile)
        Local $sTestKey = StringMid($sRead, StringInStr($sRead, "[") + 1, StringInStr($sRead, "]") - StringInStr($sRead, "[") - 1)
    
        Local $RegRead = RegRead($sTestKey, "")
        If @error <> - 1 Then Return 0
    
        Return 1
    
    EndFunc
    Alles anzeigen
  • _GUICtrlListView_SetColumnWidth() - keine Funktion bei Aufruf mit Array-Variabel

    • Gofel
    • 12. März 2021 um 13:11
    Code
    Oder probier mal "Number"
    ...
    _GUICtrlListView_SetColumnWidth($ListView_Overview, 2, Number($LVwidth[2]))
    ...
  • Controller auslesen

    • Gofel
    • 19. Januar 2021 um 18:59

    Nochmals danke für deine Mühe!

  • Controller auslesen

    • Gofel
    • 19. Januar 2021 um 13:51

    Sehr merkwürdig. Mein XBox Controller braucht weiterhin eine GUI um ausgelesen werden zu können. Trotzdem danke für deine Hilfe.

    Ich werde da wohl erstmal mit leben müssen.

    Edit: Oh wow, Xbox ist das Stichwort. Der 8Bitdo Controller funktioniert sofort^^

    Nicht das es die Sache mit der GUI erklärt, aber das ist ja jetzt mal ein ganz anderer Ansatz.

    Edit 2: Um die Sache rund zu machen: https://www.autoitscript.com/forum/topic/21…360-controller/

    Funktioniert auch bei xbox Controllern völlig ohne GUI. Ich brech ab hier 8o

  • Controller auslesen

    • Gofel
    • 18. Januar 2021 um 20:38
    Zitat von Bitnugger

    Hast du den letzten Test mit meinem Script ohne und mit GUI gemacht?

    Mit GUI läuft dein Script jetzt auch, hatte ich ganz vergessen zu testen...

    Zitat von Bitnugger

    geht nichts mehr... was heißt das konkret?

    Naja, in der Ausgabevariablen stehen immer Nullen wenn ich keine GUI dabei habe (siehe Post 3). Sobald ich eine GUI verwende werden alle Controller Werte korrekt ausgeben (siehe Post 9).

    Und das in den Orginalscripts von 2005, in meinen Versuch die GUI loszuwerden (Post 1) und in deiner Variante.

    Funktioniert es den bei dir ohne GUI?

  • Controller auslesen

    • Gofel
    • 18. Januar 2021 um 20:20

    Klar, mit GUI verändert sich jeder Wert:

    Code
    ==========================================================
    [0]32767
    [1]32767
    [2]32767
    [3]32767
    [4]32767
    [5]0
    [6]65535
    [7]0
    ==========================================================
    ==========================================================
    [0]32533
    [1]32477
    [2]32767
    [3]32599
    [4]31713
    [5]0
    [6]65535
    [7]0
    ==========================================================
    ==========================================================
    [0]65535
    [1]48931
    [2]32767
    [3]15368
    [4]64870
    [5]0
    [6]65535
    [7]8
    ==========================================================
    ==========================================================
    [0]49571
    [1]0
    [2]65408
    [3]4576
    [4]57500
    [5]0
    [6]65535
    [7]29
    ==========================================================
    ==========================================================
    [0]22897
    [1]65535
    [2]65408
    [3]65535
    [4]24024
    [5]0
    [6]65535
    [7]31
    ==========================================================
    Alles anzeigen
  • Controller auslesen

    • Gofel
    • 18. Januar 2021 um 20:09

    Wir nähern uns der Sache :)

    Aber leider bleiben die Werte unverändert, egal was ich mit dem Gampad auch anstelle.

    Code
    @@_Debug_line		96   var: $aRet --> 0, 0, 64485024
    
    
    ==========================================================
    [0]32767
    [1]32767
    [2]32767
    [3]32767
    [4]32767
    [5]0
    [6]65535
    [7]0
    ==========================================================
    
    
    @@_Debug_line		96   var: $aRet --> 0, 0, 64485024
    
    
    ==========================================================
    [0]32767
    [1]32767
    [2]32767
    [3]32767
    [4]32767
    [5]0
    [6]65535
    [7]0
    ==========================================================
    Alles anzeigen
  • Controller auslesen

    • Gofel
    • 18. Januar 2021 um 20:02

    Danke das du dich reinfuchst!

    Sleep hatte ich gesehen, aber hier kommt in der:

    Code
    $aTestRawData

    wieder nichts an.

    Bilder

    • Screenshot 2021-01-18 195737.jpg
      • 13,13 kB
      • 429 × 172

    Dateien

    Screenshot 2021-01-18 195616.jpg 37,86 kB – 0 Downloads Screenshot 2021-01-18 195631.jpg 39,77 kB – 0 Downloads
  • Controller auslesen

    • Gofel
    • 18. Januar 2021 um 19:26

    Da passiert jetzt mit und ohne GUI gar nichts

    Code
    ==========================================================
    [0]0
    [1]0
    [2]0
    [3]0
    [4]0
    [5]0
    [6]0
    [7]0
    ==========================================================
  • Controller auslesen

    • Gofel
    • 18. Januar 2021 um 15:07

    Hallo,

    ich versuche meinen Controller auzulesen, dafür gibt es ja reichlich Beispiele. Hier nur ein paar:

    https://www.autoitscript.com/forum/topic/10953-joystick-udf/

    https://www.autoitscript.com/forum/topic/34…ntroller-input/

    Das Beispiel aus dem ersten Link (joystick-udf) läuft bei mir wunderbar (Post 4). Wenn ich mir den Code allerdings für meine Bedürfnisse umbaue geht nichts mehr. Ich benötige nämlich kein GUI. Wenn ich das aber weglasse funktioniert es nicht. Ist das nur bei mir so?

    Zum testen bitte mal Zeile 1 und 2 ein bzw auskommentieren und mich erleuchten ;)

    Danke


    Code
    ;GUICreate("",1,1,-1,-1)
    ;GUISetState()
    
    Global $myGamePadHandle = GPExInitialize()
    
    While 1
        Sleep(10)
        $testrawdata = GPExGetRawData($myGamePadHandle, 0) ; Get almost every data possible from the gamepad. Returns in an array with 8 elements.
        ;
        ; Display the RAW output.
        ; --->
        ; ---> Resize the console area so that you can have all the outputs and then move the gamepad. <---
        ; --->
        ConsoleWrite(@CRLF & "==========================================================")
        ConsoleWrite(@CRLF & "[0]" & $testrawdata[0]) ; X Axis
        ConsoleWrite(@CRLF & "[1]" & $testrawdata[1]) ; Y Axis
        ConsoleWrite(@CRLF & "[2]" & $testrawdata[2]) ; Z Axis
        ConsoleWrite(@CRLF & "[3]" & $testrawdata[3]) ; R Axis
        ConsoleWrite(@CRLF & "[4]" & $testrawdata[4]) ; U Axis
        ConsoleWrite(@CRLF & "[5]" & $testrawdata[5]) ; V Axis
        ConsoleWrite(@CRLF & "[6]" & $testrawdata[6]) ; Point of View
        ConsoleWrite(@CRLF & "[7]" & $testrawdata[7]) ; Buttons
        ConsoleWrite(@CRLF & "==========================================================")
    
    WEnd
    
    
    Func GPExInitialize()
        Local $joy
        Local $JOYINFOEX_struct = "dword[13]"
        $joy = DllStructCreate($JOYINFOEX_struct)
        If @error Then Return 0
        DllStructSetData($joy, 1, DllStructGetSize($joy), 1) ; dwSize  = sizeof(struct)
        DllStructSetData($joy, 1, 255, 2) ; dwFlags = GetAll
        Return $joy
    EndFunc   ;==>GPExInitialize
    
    Func GPExGetRawData($tempHandle, $tempID)
        Local $coor
        Dim $coor[8]
        DllCall("Winmm.dll", "int", "joyGetPosEx", _
                "int", $tempID, "ptr", DllStructGetPtr($tempHandle))
        If Not @error Then
            $coor[0] = DllStructGetData($tempHandle, 1, 3) ; X Axis
            $coor[1] = DllStructGetData($tempHandle, 1, 4) ; Y Axis
            $coor[2] = DllStructGetData($tempHandle, 1, 5) ; Z Axis
            $coor[3] = DllStructGetData($tempHandle, 1, 6) ; R Axis
            $coor[4] = DllStructGetData($tempHandle, 1, 7) ; U Axis
            $coor[5] = DllStructGetData($tempHandle, 1, 8) ; V Axis
            $coor[6] = DllStructGetData($tempHandle, 1, 11) ; POV Value
            $coor[7] = DllStructGetData($tempHandle, 1, 9) ; Buttons Mask
        EndIf
        Return $coor
    EndFunc   ;==>GPExGetRawData
    Alles anzeigen
  • Drag & Drop aus 7z heraus

    • Gofel
    • 14. Dezember 2018 um 18:18

    Nett das du dich reinhängst, danke.

    Es muss da doch einen Trick geben, andere Programme kommen mit dem Drop klar. Notepad++ zeigt das Textdokument anstandslos an wenn ich es darauf droppe.

    Bin also für weitere Hinweise dankbar!

  • Drag & Drop aus 7z heraus

    • Gofel
    • 14. Dezember 2018 um 15:26

    Danke für deine Hilfe, aber es verhält sich genau gleich. Die Datei ist weg bevor ich sie einlesen kann. Oder mach ich was falsch?

    Hier ist der Code aus der Hilfe. Zeile 49 ist von mir, ich erhalte eine leere MsgBox.

    Zumindest meistens! Von 10 Versuchen ist auch mal einer dabei wo es klappt und Autoit schneller ist als 7z die Datei löschen konnte.

    C
    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <WinAPISys.au3>
    #include <WindowsConstants.au3>
    
    OnAutoItExitRegister('OnAutoItExit')
    
    ; Create GUI
    Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 400, 400)
    Local $idCheck = GUICtrlCreateCheckbox('Enable Drag && Drop', 10, 370, 120, 19)
    Local $idLabel = GUICtrlCreateLabel('', 100, 100, 200, 200)
    Global $g_hLabel = GUICtrlGetHandle($idLabel)
    GUICtrlSetBkColor(-1, 0xD3D8EF)
    GUICtrlCreateLabel('Drop here', 175, 193, 50, 14)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    
    ; Allow WM_DROPFILES to be received from lower privileged processes (Windows Vista or later)
    #cs
    If IsAdmin() Then
        _WinAPI_ChangeWindowMessageFilterEx($g_hLabel, $WM_COPYGLOBALDATA, $MSGFLT_ALLOW)
        _WinAPI_ChangeWindowMessageFilterEx($g_hLabel, $WM_DROPFILES, $MSGFLT_ALLOW)
    EndIf
    #ce
    
    ; Register label window proc
    Global $g_hDll = DllCallbackRegister('_WinProc', 'ptr', 'hwnd;uint;wparam;lparam')
    Global $g_pDll = DllCallbackGetPtr($g_hDll)
    Global $g_hProc = _WinAPI_SetWindowLong($g_hLabel, $GWL_WNDPROC, $g_pDll)
    
    GUISetState(@SW_SHOW)
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $idCheck
                _WinAPI_DragAcceptFiles($g_hLabel, GUICtrlRead($idCheck) = $GUI_CHECKED)
        EndSwitch
    WEnd
    
    Func _WinProc($hWnd, $iMsg, $wParam, $lParam)
        Switch $iMsg
            Case $WM_DROPFILES
                Local $aFileList = _WinAPI_DragQueryFileEx($wParam)
                If Not @error Then
                    ConsoleWrite('--------------------------------------------------' & @CRLF)
                    For $i = 1 To $aFileList[0]
                        ConsoleWrite($aFileList[$i] & @CRLF)
                        MsgBox(0, "", FileRead($aFileList[$i]))
                    Next
                EndIf
    
                _WinAPI_DragFinish($wParam)
                Return 0
        EndSwitch
        Return _WinAPI_CallWindowProc($g_hProc, $hWnd, $iMsg, $wParam, $lParam)
    EndFunc   ;==>_WinProc
    
    Func OnAutoItExit()
        _WinAPI_SetWindowLong($g_hLabel, $GWL_WNDPROC, $g_hProc)
        DllCallbackFree($g_hDll)
    EndFunc   ;==>OnAutoItExit
    Alles anzeigen
  • Drag & Drop aus 7z heraus

    • Gofel
    • 14. Dezember 2018 um 13:05

    Hallo,

    ich möchte ein txt Datei die sich in einer zip Datei befindet auf meine GUI droppen. Ich packe die Textdatei also mit links im 7z Dateimanager an und lasse sie auf meine GUI fallen. Wärend ich die Datei über den Bildschirm bewege wird diese auch ordnungsgemäß in z.B. %temp%\7zECE395076\test.txt entpackt. Sobald ich sie auf die GUI droppe wird die Datei sofort wieder von 7z gelöscht, offensichtlich noch bevor in Autoit der Event ausgelöst wird. Es ist mir also nicht möglich mit dieser Datei zu interagieren.

    Kann mir jemand einen Tipp geben wie das gehen soll?

    Kleines Beispielscript:

    C
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    
    Opt("GUIOnEventMode", 1)
    
    GUICreate("Test GUI", 300, 100, -1, -1, -1, $WS_EX_ACCEPTFILES)
    GUISetOnEvent($GUI_EVENT_DROPPED, "On_Drop")
    GUISetOnEvent($GUI_EVENT_CLOSE, '_exit')
    
    GUICtrlCreateInput('', 28, 20, 240, 20)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    
    GUISetState(@SW_SHOW)
    
    Do
        Sleep(10)
    Until 0
    
    
    
    Func On_Drop()
    
        $ret = FileCopy(@GUI_DragFile, @DesktopDir & "\test.txt")
        MsgBox(0,"",$ret)
    
    EndFunc   ;==>On_Drop
    
    Func _exit()
        Exit 1
    EndFunc   ;==>_exit
    Alles anzeigen

    Danke!

  • ControlID ListViewItem

    • Gofel
    • 19. August 2015 um 15:09

    Zu Punkt 3:

    C
    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode", 1)
    
    
    Global $GE_Main, $GE_Listview
    
    
    _Gui()
    GUISetState(@SW_SHOW, $GE_Main)
    
    
    While 1
    	Sleep(50)
    WEnd
    
    
    
    
    Func _Gui()
    	$GE_Main = GUICreate("Sort", 800, 600, -1, -1)
    	GUISetOnEvent($GUI_EVENT_CLOSE, "_Program_Exit")
    
    
    	;Listview
    	$GE_Listview = GUICtrlCreateListView("", 5, 5, 790, 590)
    
    
    
    
    	;Spalten erstellen
    	_GUICtrlListView_AddColumn($GE_Listview, "Name", 100)
    	_GUICtrlListView_AddColumn($GE_Listview, "Typ", 100)
    	_GUICtrlListView_AddColumn($GE_Listview, "Size", 100)
    	_GUICtrlListView_AddColumn($GE_Listview, "Player", 100)
    	_GUICtrlListView_AddColumn($GE_Listview, "Balance", 100)
    	_GUICtrlListView_AddColumn($GE_Listview, "Difficulty", 100)
    	_GUICtrlListView_AddColumn($GE_Listview, "Version", 100)
    
    
    	;Test Array mit Werten füllen
    	Local $Array[51][9]
    	$Array[0][0] = 50
    
    
    	For $i = 1 To $Array[0][0]
    		$Array[$i][0] = "Name " & $i
    		$Array[$i][1] = "Typ " & $i
    		$Array[$i][2] = "Size " & $i
    		$Array[$i][3] = "Player " & $i
    		$Array[$i][4] = "Balance " & $i
    		$Array[$i][5] = "Difficulty " & $i
    		$Array[$i][6] = "Version " & $i
    	Next
    
    
    	;Listview füllen
    	For $i = 1 To $Array[0][0]
    		_GUICtrlListView_AddItem($GE_Listview, $Array[$i][0], 0)             ;Name
    		_GUICtrlListView_AddSubItem($GE_Listview, $i -1, $Array[$i][1], 1)   ;Typ
    		_GUICtrlListView_AddSubItem($GE_Listview, $i -1, $Array[$i][2], 2)   ;Size
    		_GUICtrlListView_AddSubItem($GE_Listview, $i -1, $Array[$i][3], 3)   ;Player
    		_GUICtrlListView_AddSubItem($GE_Listview, $i -1, $Array[$i][4], 4)   ;Balance
    		_GUICtrlListView_AddSubItem($GE_Listview, $i -1, $Array[$i][5], 5)   ;Difficulty
    		_GUICtrlListView_AddSubItem($GE_Listview, $i -1, $Array[$i][6], 6)   ;Version
    	Next
    
    
    	;_RegisterSortCallBack
    	_GUICtrlListView_RegisterSortCallBack($GE_Listview)
    	GUICtrlSetOnEvent($GE_Listview, '_GE_Listview_Sort')
    EndFunc
    
    
    
    
    
    
    Func _GE_Listview_Sort() ;Listview sortieren
    	_GUICtrlListView_SortItems($GE_Listview, GUICtrlGetState($GE_Listview))
    EndFunc
    
    
    Func _Program_Exit()
    	Exit
    EndFunc
    Alles anzeigen
  • GDI Plus Bild aus dem Backbuffer zeichen

    • Gofel
    • 10. Juli 2015 um 13:06

    "WM_PAINT" und "einfach" in einem Satz zu verwenden betrachte ich jetzt "einfach" mal als Provokation :|
    Spaß, ich verwende ja WM_PAINT. Aber ich zeichne ja ebend nicht immer das selbe sondern die Artworks zum Spiel ändern sich. Dabei muss wieder die Stelle neutral eingefärbt werden und ein neues Bild gezeichnet werden. Das ganze 5 mal hintereinander für 5 Artworks ergibt ein leichtes Flackern.

    Egal, Oscar hat tatsächlich die Lösung geliefert wie mir scheint. Der komplette Umbau wird mich noch etwas Zeit kosten, aber erste Tests laufen schon sehr erfreulich.

    Danke

  • GDI Plus Bild aus dem Backbuffer zeichen

    • Gofel
    • 9. Juli 2015 um 20:12

    Das klingt zu schön um wahr zu sein Oscar, ich schaue es mir morgen gleich an. Jetzt muss ich erstmal Sohnemann bespaßen. Ich geb dann bescheid.

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™