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

Beiträge von GtaSpider

  • DllStructGetData durch Punkt-Notation ersetzen ein Risiko?

    • GtaSpider
    • 8. August 2017 um 15:30

    Habe schon seit der Existenz dieser Schreibweise mein Code nur noch so geschrieben und viele sehr große, komplexe Scripte gepostet. Anfaenglich habe ich, falls irgendwas nicht geklappt hat, die Schuld gerne auch auf die Punktnotation geschoben, um dann aber festzustellen, dass mit DllStructSetData genau das gleiche passiert ist und das Problem mal wieder 20cm vor dem Bildschirm zu suchen war.

    Kurz und knapp: Es ist sicher, sonst waere mir garantiert was aufgefallen. Das einzige worauf du aufpassen musst: Wenn du Arrays in den Strukturen hast (z.B. char[5]) ist erstens aus irgendeinem unerfindlichem Grund der erste Index nicht wie sonst überall auch 0, sondern 1 (wie bei DllStructSetData auch), und wenn du den Index aus einer Variable ausließt musst du zwei Klammern darum setzten (ist wohl ein Bug)

    Spoiler anzeigen
    AutoIt
    $tTest = DllStructCreate("char char[5]")
    
    
    For $i = 1 To 5
    ;~ 	$tTest.char($i) = 'A'; Funktioniert nicht!
    	$tTest.char(($i)) = 'A'; Funktioniert
    Next
    
    
    $tTest.char(2) = 'B';funktioniert auch
    
    
    $x = 3
    ;~ $tTest.char($x) = 'C';funktioniert wieder nicht
    $tTest.char(($x)) = 'C';funktioniert
    
    
    ConsoleWrite($tTest.char & @CRLF)
    Alles anzeigen

    Lieben Gruß,
    Spider

  • Bilder verschieben per Drag and Drop

    • GtaSpider
    • 25. März 2017 um 00:25

    Hallo,

    Ist wohl noch ein bisschen zusätzliche Arbeit, aber schau dir mal die Funktionen _GUICtrlListView_DrawDragImage und _GUIImageList_BeginDrag an.
    Ich hab dir hier mal aus den beiden Funktionen und der Hilfe Datei was zusammen geschustert, leider sieht das je nach OS nicht besonders schön aus, aber damit kann man auf jeden Fall anfangen und es weiter optimieren:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiListView.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region Globals *************************************************************************
    Global $g_ahDragImageList, $g_hListView, $g_bDragging = False, $g_iLV_Height
    Global $g_aIndex[2] ; from and to

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $g_iDebugIt = 1

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion Globals *************************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    Opt("WinTitleMatchMode", 2)

    [/autoit] [autoit][/autoit] [autoit]

    Example()

    [/autoit] [autoit][/autoit] [autoit]

    Func Example()
    Local Const $iImage_width = 64
    Local Const $iImage_height = 64
    Local $hImages, $hMain_GUI, $iIndex

    [/autoit] [autoit][/autoit] [autoit]

    $hMain_GUI = GUICreate("GuiImageList Begin Drag", 225, 400)

    [/autoit] [autoit][/autoit] [autoit]

    $g_hListView = _GUICtrlListView_Create($hMain_GUI, "Entry Name", 5, 75, 220, 280, -1, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
    $g_iLV_Height = 280 - 75
    _GUICtrlListView_SetColumnWidth($g_hListView, 0, 100)
    _GUICtrlListView_SetColumnWidth($g_hListView, 1, 100)
    _GUICtrlListView_SetExtendedListViewStyle($g_hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
    ;------------------------------------------------------
    ; Using subitem images
    ;------------------------------------------------------
    _GUICtrlListView_SetExtendedListViewStyle($g_hListView, BitOR($LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_SUBITEMIMAGES))

    [/autoit] [autoit][/autoit] [autoit]

    ;------------------------------------------------------
    ; create the image list
    ;------------------------------------------------------
    $hImages = _GUIImageList_Create($iImage_width, $iImage_height, 5, 1)
    For $x = 1 To 21
    _GUIImageList_AddIcon($hImages, @SystemDir & "\shell32.dll", $x, True)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_SetImageList($g_hListView, $hImages, $LVSIL_SMALL)

    [/autoit] [autoit][/autoit] [autoit]

    ;------------------------------------------------------
    ;Register event functions
    ;------------------------------------------------------
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_LBUTTONUP, "WM_LBUTTONUP")
    GUIRegisterMsg($WM_MOUSEMOVE, "WM_MOUSEMOVE")

    [/autoit] [autoit][/autoit] [autoit]

    ;------------------------------------------------------
    ; add listview items with images
    ;------------------------------------------------------
    Local $y = 1
    For $x = 0 To 9
    $iIndex = _GUICtrlListView_AddItem($g_hListView, "", $y) ; handle, string, image index
    $y += 2
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1

    [/autoit] [autoit][/autoit] [autoit]

    Switch GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------
    ;This case statement exits and updates code if needed
    Case $GUI_EVENT_CLOSE
    ExitLoop
    ;-----------------------------------------------------------------------------------------
    ;put all the misc. stuff here
    Case Else
    ;;;
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    _GUIImageList_Destroy($hImages)
    GUIDelete()
    EndFunc ;==>Example

    [/autoit] [autoit][/autoit] [autoit]

    #Region Item Function(s) **********************************************************************************************
    Func _LVInsertItem($i_FromItem, $i_ToItem)
    Local $iItem_state, $i_NewIndex
    Local $tStruct_LVITEM = DllStructCreate($tagLVITEM)
    Local $tStruct_String = DllStructCreate("wchar Buffer[4096]")

    [/autoit] [autoit][/autoit] [autoit]

    ; Insert item into new position
    DllStructSetData($tStruct_LVITEM, "Mask", BitOR($LVIF_STATE, $LVIF_IMAGE, $LVIF_INDENT, $LVIF_PARAM, $LVIF_TEXT))
    DllStructSetData($tStruct_LVITEM, "StateMask", $LVIS_STATEIMAGEMASK)
    DllStructSetData($tStruct_LVITEM, "Item", $i_FromItem)
    DllStructSetData($tStruct_LVITEM, "SubItem", 0)
    DllStructSetData($tStruct_LVITEM, "TextMax", 4096)
    DllStructSetData($tStruct_LVITEM, "Text", DllStructGetPtr($tStruct_String))
    _GUICtrlListView_GetItemEx($g_hListView, $tStruct_LVITEM)
    If @error Then Return SetError(-1, -1, -1)
    $iItem_state = DllStructGetData($tStruct_LVITEM, "State")
    DllStructSetData($tStruct_LVITEM, "Item", $i_ToItem)
    $i_NewIndex = _GUICtrlListView_InsertItem($g_hListView, DllStructGetData($tStruct_String, "Buffer"), $i_ToItem, DllStructGetData($tStruct_LVITEM, "Image"))
    If @error Then Return SetError(-1, -1, -1)

    [/autoit] [autoit][/autoit] [autoit]

    ; restore previous state
    _DebugPrint("$i_NewIndex = " & $i_NewIndex)
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_STATE)
    DllStructSetData($tStruct_LVITEM, "Item", $i_NewIndex)
    DllStructSetData($tStruct_LVITEM, "State", $iItem_state)
    DllStructSetData($tStruct_LVITEM, "StateMask", $LVIS_STATEIMAGEMASK)
    _GUICtrlListView_SetItemState($g_hListView, $i_NewIndex, $iItem_state, $LVIS_STATEIMAGEMASK)
    If @error Then Return SetError(-1, -1, -1)
    Return $i_NewIndex
    EndFunc ;==>_LVInsertItem

    [/autoit] [autoit][/autoit] [autoit]

    ; ------------------------------------------------------
    Func _LVCopyItem($i_FromItem, $i_ToItem, $i_SubItem = 0)
    Local $tStruct_LVITEM = DllStructCreate($tagLVITEM)
    Local $tStruct_String = DllStructCreate("wchar Buffer[4096]")

    [/autoit] [autoit][/autoit] [autoit]

    ; get from item info
    DllStructSetData($tStruct_LVITEM, "Mask", BitOR($LVIF_STATE, $LVIF_IMAGE, $LVIF_INDENT, $LVIF_PARAM, $LVIF_TEXT))
    DllStructSetData($tStruct_LVITEM, "StateMask", $LVIS_STATEIMAGEMASK)
    DllStructSetData($tStruct_LVITEM, "Item", $i_FromItem)
    DllStructSetData($tStruct_LVITEM, "SubItem", $i_SubItem)
    DllStructSetData($tStruct_LVITEM, "TextMax", 4096)
    DllStructSetData($tStruct_LVITEM, "Text", DllStructGetPtr($tStruct_String))
    _GUICtrlListView_GetItemEx($g_hListView, $tStruct_LVITEM)

    [/autoit] [autoit][/autoit] [autoit]

    ; set to
    DllStructSetData($tStruct_LVITEM, "Item", $i_ToItem)
    ; set text
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_TEXT)
    DllStructSetData($tStruct_LVITEM, "Text", DllStructGetPtr($tStruct_String))
    DllStructSetData($tStruct_LVITEM, "TextMax", 4096)
    _GUICtrlListView_SetItemEx($g_hListView, $tStruct_LVITEM)
    If @error Then Return SetError(@error, @error, @error)
    ; set status
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_STATE)
    _GUICtrlListView_SetItemEx($g_hListView, $tStruct_LVITEM)
    ; set image
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_IMAGE)
    DllStructSetData($tStruct_LVITEM, "State", $LVIF_IMAGE)
    _GUICtrlListView_SetItemEx($g_hListView, $tStruct_LVITEM)
    ; set state
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_STATE)
    DllStructSetData($tStruct_LVITEM, "State", $LVIF_STATE)
    _GUICtrlListView_SetItemEx($g_hListView, $tStruct_LVITEM)
    ; set indent
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_INDENT)
    DllStructSetData($tStruct_LVITEM, "State", $LVIF_INDENT)
    _GUICtrlListView_SetItemEx($g_hListView, $tStruct_LVITEM)
    ; set Param
    DllStructSetData($tStruct_LVITEM, "Mask", $LVIF_PARAM)
    DllStructSetData($tStruct_LVITEM, "State", $LVIF_PARAM)
    _GUICtrlListView_SetItemEx($g_hListView, $tStruct_LVITEM)
    EndFunc ;==>_LVCopyItem
    #EndRegion Item Function(s) **********************************************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    #Region Event Function(s) **********************************************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    ; WM_MOUSEMOVE event handler
    ; ------------------------------------------------------
    Func WM_MOUSEMOVE($hWndGUI, $iMsgID, $wParam, $lParam)
    #forceref $iMsgID, $wParam
    ;------------------------------------------------------
    ; not dragging item we are done here
    ;------------------------------------------------------
    If $g_bDragging = False Then Return $GUI_RUNDEFMSG

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlListView_DrawDragImage($g_hListView, $g_ahDragImageList)

    [/autoit] [autoit][/autoit] [autoit]

    ;------------------------------------------------------
    ; update the image move
    ;------------------------------------------------------
    Local $aPos = ControlGetPos($hWndGUI, "", $g_hListView)
    Local $x = BitAND($lParam, 0xFFFF) - $aPos[0]
    Local $y = BitShift($lParam, 16) - $aPos[1]
    If $y > $g_iLV_Height - 20 Then
    _GUICtrlListView_Scroll($g_hListView, 0, $y)
    ElseIf $y < 20 Then
    _GUICtrlListView_Scroll($g_hListView, 0, $y * -1)
    EndIf
    _GUIImageList_DragMove($x, $y)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_MOUSEMOVE

    [/autoit] [autoit][/autoit] [autoit]

    ; WM_LBUTTONUP event handler
    ; ------------------------------------------------------
    Func WM_LBUTTONUP($hWndGUI, $iMsgID, $wParam, $lParam)
    #forceref $iMsgID, $wParam
    $g_bDragging = False
    Local $aPos = ControlGetPos($hWndGUI, "", $g_hListView)
    Local $x = BitAND($lParam, 0xFFFF) - $aPos[0]
    Local $y = BitShift($lParam, 16) - $aPos[1]
    _DebugPrint("$x = " & $x)
    _DebugPrint("$y = " & $y)
    ;------------------------------------------------------
    ; done dragging
    ;------------------------------------------------------
    _GUIImageList_DragLeave($g_hListView)
    _GUIImageList_EndDrag()
    _GUIImageList_Destroy($g_ahDragImageList[0])
    _WinAPI_ReleaseCapture()
    ;------------------------------------------------------
    ; do hit test see if drag ended in the listview
    ;------------------------------------------------------
    Local $tStruct_LVHITTESTINFO = DllStructCreate($tagLVHITTESTINFO)

    [/autoit] [autoit][/autoit] [autoit]

    DllStructSetData($tStruct_LVHITTESTINFO, "X", $x)
    DllStructSetData($tStruct_LVHITTESTINFO, "Y", $y)
    $g_aIndex[1] = _SendMessage($g_hListView, $LVM_HITTEST, 0, DllStructGetPtr($tStruct_LVHITTESTINFO), 0, "wparam", "ptr")
    Local $iFlags = DllStructGetData($tStruct_LVHITTESTINFO, "Flags")
    _DebugPrint("$iFlags: " & $iFlags)
    ;------------------------------------------------------
    ; // Out of the ListView?
    ;------------------------------------------------------
    If $g_aIndex[1] == -1 Then Return $GUI_RUNDEFMSG
    ;------------------------------------------------------
    ; // Not in an item?
    ;------------------------------------------------------
    If BitAND($iFlags, $LVHT_ONITEMLABEL) == 0 And BitAND($iFlags, $LVHT_ONITEMSTATEICON) == 0 And BitAND($iFlags, $LVHT_ONITEMICON) = 0 Then Return $GUI_RUNDEFMSG
    ;------------------------------------------------------
    ; make sure insert is at least 2 items above or below, don't want to create a duplicate
    ;------------------------------------------------------
    If $g_aIndex[0] < $g_aIndex[1] - 1 Or $g_aIndex[0] > $g_aIndex[1] + 1 Then
    _DebugPrint("To = " & $g_aIndex[1])
    Local $i_NewIndex = _LVInsertItem($g_aIndex[0], $g_aIndex[1])
    If @error Then Return SetError(-1, -1, $GUI_RUNDEFMSG)
    Local $iFrom_index = $g_aIndex[0]
    If $g_aIndex[0] > $g_aIndex[1] Then $iFrom_index = $g_aIndex[0] + 1
    ;------------------------------------------------------
    ; copy item and subitem(s) images, text, and state
    ;------------------------------------------------------
    For $x = 1 To _GUICtrlListView_GetColumnCount($g_hListView) - 1
    _LVCopyItem($iFrom_index, $i_NewIndex, $x)
    If @error Then Return SetError(-1, -1, $GUI_RUNDEFMSG)
    Next
    ;------------------------------------------------------
    ; delete from
    ;------------------------------------------------------
    _GUICtrlListView_DeleteItem($g_hListView, $iFrom_index)
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_LBUTTONUP

    [/autoit] [autoit][/autoit] [autoit]

    ; WM_NOTIFY event handler
    ; ------------------------------------------------------
    Func WM_NOTIFY($hWndGUI, $iMsgID, $wParam, $lParam)
    #forceref $hWndGUI, $iMsgID, $wParam
    Local $tNMHDR, $iCode, $x, $y, $tNMLISTVIEW, $hWndFrom, $tDraw, $iDrawStage, $iItemSpec
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam) ;NMHDR (hwndFrom, idFrom, code)
    If @error Then Return
    $iCode = DllStructGetData($tNMHDR, "Code")
    $hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    Switch $hWndFrom
    Case $g_hListView
    Switch $iCode
    Case $LVN_BEGINDRAG
    _DebugPrint("$LVN_BEGINDRAG")
    $x = BitAND($lParam, 0xFFFF)
    $y = BitShift($lParam, 16)
    $tNMLISTVIEW = DllStructCreate($tagNMLISTVIEW, $lParam)
    $g_aIndex[0] = DllStructGetData($tNMLISTVIEW, "Item")
    $g_ahDragImageList = _GUICtrlListView_CreateDragImage($g_hListView, $g_aIndex[0])
    If @error Then Return SetError(-1, -1, $GUI_RUNDEFMSG)

    [/autoit] [autoit][/autoit] [autoit]

    _GUIImageList_BeginDrag($g_ahDragImageList[0], 0, 0, 0)

    [/autoit] [autoit][/autoit] [autoit]

    If @error Then Return SetError(-1, -1, $GUI_RUNDEFMSG)
    _DebugPrint("From = " & $g_aIndex[0])
    _GUIImageList_DragEnter($g_hListView, $x, $y)
    _WinAPI_SetCapture($hWndGUI)
    $g_bDragging = True
    Case $NM_CUSTOMDRAW
    _DebugPrint("$NM_CUSTOMDRAW")
    $tDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)
    $iDrawStage = DllStructGetData($tDraw, "dwDrawStage")
    $iItemSpec = DllStructGetData($tDraw, "dwItemSpec")
    Switch $iDrawStage
    Case $CDDS_PREPAINT
    _DebugPrint("$CDDS_PREPAINT")
    Return $CDRF_NOTIFYITEMDRAW
    Case $CDDS_ITEMPREPAINT
    _DebugPrint("$CDDS_ITEMPREPAINT")
    If BitAND($iItemSpec, 1) = 1 Then
    DllStructSetData($tDraw, "clrTextBk", $CLR_AQUA)
    Else
    DllStructSetData($tDraw, "clrTextBk", $CLR_WHITE)
    EndIf
    Return $CDRF_NEWFONT
    EndSwitch
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    #EndRegion Event Function(s) **********************************************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    Func _DebugPrint($s_Text)
    If Not $g_iDebugIt Then Return
    $s_Text = StringReplace($s_Text, @CRLF, @CRLF & "-->")
    ConsoleWrite("!===========================================================" & @CRLF & _
    "+===========================================================" & @CRLF & _
    "-->" & $s_Text & @CRLF & _
    "+===========================================================" & @CRLF)
    EndFunc ;==>_DebugPrint

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    lg,
    Spider

  • Warte auf Datei script #Fragenmachtspaß

    • GtaSpider
    • 13. Januar 2017 um 23:44

    Hey,

    Schau dir mal die Funktion

    AutoIt
    _WinAPI_ReadDirectoryChanges

    an. Die sollte genau das machen was du suchst. Und wenn du mal nach "AutoIt Monitor Folders" googlelst, solltest du sogar irgendwo eine Version mit Callbacks finden.

    Gruß,
    Spider

  • Treeviewitems aus externem Programm auslesen

    • GtaSpider
    • 21. Dezember 2016 um 20:46

    Hallo,

    Dein Problem ist, dass die ListViews keine Standard WINAPI ListViews sind (wie die, die du mit GuiCtrlCreateListView erstellst) sondenr .Net ListViews (WindowsForms10)
    Ich würde dir Empfehlen mal zu googeln: SysTreeView32.net AutoIt

    Grüße,
    Spider

  • Richtiger Umgang mit selbsterstellten Zertifikate?

    • GtaSpider
    • 12. September 2016 um 11:42

    Hey,

    Ich bin gerade dabei ein Gerät zu entwickeln, welches mit Windows 7 läuft, und wo der Kunde nachher ein Administrator Konto mit vollen Rechten und ein Benutzterkonto fast ohne Rechte hat. Vorstellen kann man sich das ungefähr wie ein Internet-Kiosk-PC in dem der Benutzter nichts anderes machen darf außer bestimmte EXE Dateien zu öffnen, die von mir Programmiert wurden.

    Ich habe das Problem gelöst mit dem Windows eigenen Software Restriction Protocol (SRP) und selbst erstellen Zertifikaten mit openSSL (Stamm- und Zwischenzertifizerungsstellen) mit denen ich die jeweiligen ausführbaren Dateien Zertifiziert habe (SignTool).

    Nun meine Frage: Wie gehe ich mit diesen Zertifikaten richtig um? Wie lange sollten die Zertifikate gültig sein? 1 Jahr? 10 Jahre? 100 Jahre? Je länger, desto unsicherer, aber natürlich soll das System auch noch in einem Jahr funktionieren. Gibt es eine elegante Möglichkeit wie man eigene Zertifikate Updated mit einem Script? Oder geht man hier ganz anders vor?

    Viele Dank,
    Gruß,
    Spider

  • unterstützt AutoIt SFTP?

    • GtaSpider
    • 6. Juli 2016 um 20:05

    Hey,

    Da sFTP letztendlich auch nur eine TCP/IP Verbindung ist, kann AutoIt das natürlich. Nun könntest du dich durch Wikipedia und Stackoverflow durchwurschteln, oder du suchst einfach mal nach sFTP für AutoIt bei Google: https://autoit.de/www.lmgtfy.com/?q=sftp+autoit

    Gruß,
    Spider

  • HotKeySet und {SLEEP} Key

    • GtaSpider
    • 26. Mai 2016 um 13:48

    alpines: Definitiv Overkill :D Aber sehr Interessant. Das Hauptproblem an der ganzen Sache ist eigentlich, dass es mich nervt, dass sowas nicht verhältnismäßig einfach machbar ist und ich nicht verstehe wieso! Treibermanipulation wäre wirklich der letzte Schritt, aber danke dir :D
    @CentuCore: Ach so. Ja, nein, ist es leider nicht :(

  • HotKeySet und {SLEEP} Key

    • GtaSpider
    • 26. Mai 2016 um 12:30

    Wie gesagt, das ist mir bewusst aber nicht das was ich will. Ich will die StandBy Taste auf meinem Keyboard benutzten um mein System zu Sperren. Deine Methode bietet die Möglichkeit über "STRG + ALT + BUCHSTABE/ZAHL" einen Shutdown/Lock/Hibernate/Standby herbei zu rufen.

    Danke trotzdem für deine Mühe,
    Spider

  • HotKeySet und {SLEEP} Key

    • GtaSpider
    • 26. Mai 2016 um 11:36

    Hallo,

    Nope, wird alles über PowerCfg geregelt, was zwar auch in der Registry wiederzufinden ist aber nur feste Parameter erlaubt, und der Artikel beschreibt lediglich wie ich mit einem HotKey mein PC Herunterfahren kann ;)

    Jemand eine andere Idee?

    Gruß,
    Spider

  • Wie kommuniziert AutoIt mit dem COM-Port?

    • GtaSpider
    • 26. Mai 2016 um 11:34

    Willst du die Zeitanzeige denn immer auf ein PC anzeigen lassen? Alternativ kannst du dir auch mal überlegen mit einem Arduino und einer 7-segment-Anzeige zu basteln, sieht vielleicht auch ein wenig cooler aus^^ Dann bräuchtest du auch kein PC.
    http://arduino.itdevelopment.at/?page_id=62
    http://shelvin.de/eine-7-segment…uino-ansteuern/

    Gruß,
    Spider

  • HotKeySet und {SLEEP} Key

    • GtaSpider
    • 24. Mai 2016 um 13:29

    Moin,

    Ich habe mir eine neue Tastatur gekauft (DAS Keyboard 4 ultimate) und auf dem ist neben den üblichen Tasten auch eine Taste für den Sleep Modus (Standby/Energiesparmodus). Diese kann ich via Energiespareinstellungen unter Windows 10 aktivieren bzw einer Funktion zu weisen, leider aber nur Sleep, Hibernate oder Shutdown. Ich würde aber gerne mit dieser Taste meine Station sperren.

    Also dachte ich mir, ich setzte in den Energieeinstellungen die Taste auf "Nichts Unternehmen" und fange mit HotKeySet("{SLEEP}","_lock") die Taste ab. Leider funktioniert dies nicht, die Taste wird nicht erkannt. Nach etwas googlen fand ich auch den VK_KEY für die Sleeptaste (für _IsPressed), nämlich 0x5F, leider erkennt aber auch _isPressed/GetAsyncKeyState diese Taste nicht an.

    Hat jemand eine Idee wie ich vorzugsweise mit AutoIt es hinbekomme, meine Sleep-Taste umzufunktionieren, dass sie einfach nur meine Station sperrt?

    Danke im Voraus,
    Gruß,
    Spider

  • Standard-Autoit-Icon fehlt

    • GtaSpider
    • 24. März 2016 um 12:26

    Hallo,

    Nope, du musst schon wenn du das AutoIt Icon haben willst immer mit #pragma Compile(Icon, <Filename>) arbeiten. Das AutoIt icon findest du im AutoIt installationsverzeichnis unter dem Ordnernamen "Icons"

    Mehr Infos: https://www.autoitscript.com/forum/topic/15…t-created-exes/

    Gruß,
    Spider

  • Am Ende eines Satzes immer eine "3"

    • GtaSpider
    • 29. Januar 2016 um 15:21
    Zitat von autoBert

    Hallo Daloped,

    hört sich nach einem Spaßvirus oder Spamingtool an. Da sich beides nicht im Einklang mit unseren https://autoit.de/index.php/CustomPage/?id=1 ist, verstehst du sicher wenn dier hierzu niemand hilft helfen darf.

    @Mod/Admin: weg damit in BOTers Datengrab.


    Hey autoBert,

    Könnte aber auch eine Datenbank-eingabe-vereinfachung oder so etwas sein. AutoIt wurde nun mal dazu erfunden um Dinge in Windows zu automatisieren, dies hier ist einer der klassischsten AutoIt Anwendungen, wir müssen aufhören hinter jeder Supportanfrage Botler zu vermuten - sonst wird man noch depressiv ;)

    Gruß,
    Spider

  • Am Ende eines Satzes immer eine "3"

    • GtaSpider
    • 29. Januar 2016 um 14:55
    AutoIt
    HotKeySet("{ENTER}","_enter")
    HotKeySet("{ESC}","_exit");Mit ESC beenden
    
    
    While Sleep(100);Dauerschleife
    WEnd
    
    
    Func _enter()
    	HotKeySet("{ENTER}");Hotkey Freigeben
    	Send("3{ENTER}");Sende 3 und danach Enter
    	HotKeySet("{ENTER}","_enter");Enter wieder verknüpfen
    EndFunc
    
    
    
    
    Func _exit()
    	Exit;Tschau!
    EndFunc
    Alles anzeigen
  • Bei $ws_ex_topmost dennoch den x Button anzeigen lassen ?

    • GtaSpider
    • 27. Dezember 2015 um 16:43

    Hey,

    Geht auch mit WS_EX_TOPMOST

    AutoIt
    #include <WindowsConstants.au3>
    
    
    ;So ist es richtig! Mit Default arbeiten anstatt einfach 0 einzutragen
    $hGui1 = GUICreate("Mit X", 600, 400, 100, 100, Default, $WS_EX_TOPMOST)
    GUISetState()
    
    
    ;So ist es falsch!
    $hGui2 = GUICreate("Ohne X", 600, 400, 700, 100, 0, $WS_EX_TOPMOST)
    
    
    GUISetState()
    
    
    While GUIGetMsg() <> -3
    WEnd
    Alles anzeigen

    lg
    Spider

  • Betätigung des Ein-/Aus-Tasters am Notebook erkennen

    • GtaSpider
    • 24. November 2015 um 23:49

    Hey,

    Ab Vista gibt es die Möglichkeit mit _WinAPI_ShutdownBlockReasonCreate und WM_QUERYENDSESSION --> _WinAPI_ShutdownBlockReasonQuery ein Shutdown zu verhindern (auch wenn kein User eingeloggt ist wenn du es als Service startest). Ich benutzte das um meine Daten beim Herunterfahren zu Synchronisieren.

    Leider kenne ich unter XP keine Möglichkeit dies zu tun.

    Gruß,
    Spider

  • TCP - Datenübertragung -- Ausführbare Dateien gehen nicht

    • GtaSpider
    • 10. Juni 2015 um 16:30

    Hallo,

    Das Script ist auch schon ein paar Järchen alt und sollte eigentlich auch nicht mehr benutzt werden. Es gibt sehr viele TCP File Transfer funktionen die viel mehr up2date sind.
    Es ist richtig, dass man beim Dateitransfer immer ein Protokoll mitschicken sollte. Ich erinnere mich auch, dass ich vor paar Jahren eine Funktion geschrieben hat, die ein Protokoll mitliefert, vlt mal googlen. Ich glaube ich habe dort folgendes Protokoll verwendet : "HEADERLEN|CRC32|FILENAME|FILE-PAYLOAD".

    Falls ich die Tage mal ein wenig Zeit habe, könnte ich ja nochmal eine aktuellere Version schreiben, die auch mit dem Errorhandlig der neuen Version klar kommt (Problem ist hier, das bei der Stable ein bekannter FEhler ist der in der Aktuellen Beta aber auch schon berichtigt wurde, welcher bei nichtempfang fälschlicherweise ein Verbindungsabbruch ausgibt)

    GRuß,
    Spider

  • TCP - Datenübertragung -- Ausführbare Dateien gehen nicht

    • GtaSpider
    • 9. Juni 2015 um 11:56

    Hallo,

    Das Problem ist denke ich mal, dass die Verbindung abbricht, bevor alle Datenpakete empfangen wurden (das geschieht durch TCPCloseSocket)
    Lösen kannst du es, in dem du beim Sender (Client) nach dem Übertragen auf eine Nachricht von dem Empfänger (ServeR) wartest.
    Der Server sendet dann einfach mit TCPSend irgendein befehl (Sowas wie "OK") sobald der Server die Datei komplett empfangen und gespeichert hat.

    Gruß,
    Spider

  • AutoIt Error MessageBox Catch?

    • GtaSpider
    • 18. Mai 2015 um 16:50

    Hey,

    doch tüllich gibts das! Leider nicht intern, aber es gibt und gab schon immer die Möglichkeit sich ein Fehler nicht als MessageBox sondern in den Stdout schreiben zu lassen mit der Commandozeile /StdOutErr (die SciTe auch benutzt). Diesen Fehler kann man nun abfangen:
    https://www.autoitscript.com/forum/topic/12…ritical-errors/

    Natürlich sollte man trotzdem darauf achten schon ein gutes Errorhandling zu haben.

    Lieben Gruß,
    Spider

  • GTA Online PC - Mitspieler gesucht

    • GtaSpider
    • 2. Mai 2015 um 19:47

    Hey,

    Talk -> Ganz normales gerede. Jemand schreibt: "Hey wie findet ihr Wolken" -> "ich find wolken cool" -> "ich find sie nur cool wenn sie pink sind" -> "ich mag Züge"
    Off Topic -> Alles was nirgendswo rein passt. Sowas wie "Hey, wisst ihr wo ich Informatik Studieren kann?" oder "Gibt es ein Atomphysiker der mir helfen kann ein Kaugummi von meiner Schuhsole zu enternen?"

    Wir sind ein Forum, wir sind dafür da um alles und jedes zu Diskutieren, aber ihr habt schon recht, die Grenzen verschwimmen arg zwischen den beiden ;)

    Du suchst jemanden für PC? Oder für PS3? PC wäre ich dabei, aber auch erst später, ich komm gerade nicht dazu. Mein Tag ist gtaspider (surprise :P )

    lg,
    Spider

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™