DLL Tests (UDF)

  • Hallo Leute

    Hab da am Wochenende wieder mal gespielt..
    Wollte unbedingt mal die DLLCall Funktion anschauen.
    Dabei ist diese UDF herausgekommen:

    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: Gianni

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

    Script Function:
    DLL Utilities UDF

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

    #ce ----------------------------------------------------------------------------

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

    ;===============================================================================
    ;
    ; Function Name: disableClock
    ; Description:: Hide Clock on the Task List
    ; Parameter(s): $switch -> Clock Hide/Show Switch
    ; 1 = Hide
    ; 0 = Show
    ; Requirement(s): v3.2.12.0 or higher
    ; Author(s): Gianni
    ;
    ;===============================================================================
    Func _disableClock($switch)
    Switch $switch
    Case 1
    DllCall("WinLockDll.dll", "int", "Clock_Show_Hide", "int", 0)
    Case 0
    DllCall("WinLockDll.dll", "int", "Clock_Show_Hide", "int", 1)
    Case Else
    MsgBox(0, "Fehler", "Die Uhr konnten nicht ausgeblendet werden")
    EndSwitch
    Return True
    EndFunc

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

    ;===============================================================================
    ;
    ; Function Name: disable Task Manager
    ; Description:: Disable the Task Manager
    ; Parameter(s): $switch -> Disable / Enable Switch
    ; 1 = Disable
    ; 0 = Enable
    ; Requirement(s): v3.2.12.0 or higher
    ; Author(s): Gianni
    ;
    ;===============================================================================
    Func _disableTaskManager($switch)
    Switch $switch
    Case 1
    DllCall("WinLockDll.dll", "int", "TaskManager_Enable_Disable", "int", 0)
    Case 0
    DllCall("WinLockDll.dll", "int", "TaskManager_Enable_Disable", "int", 1)
    Case Else
    MsgBox(0, "Fehler", "Task Manager konnten nicht deaktiviert werden")
    EndSwitch
    Return True
    EndFunc

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

    ;===============================================================================
    ;
    ; Function Name: hideDesktopIcons
    ; Description:: Hide Desktop Icons (Clean Desktop)
    ; Parameter(s): $switch -> Icons Hide/Show Switch
    ; 1 = Hide
    ; 0 = Show
    ; Requirement(s): v3.2.12.0 or higher
    ; Author(s): Gianni
    ;
    ;===============================================================================
    Func _hideDesktopIcons($sw)
    Const $SW_SHOW = 0
    Const $SW_HIDE = 1

    $hwnd = WinGetHandle("Program Manager")

    Switch $sw
    Case 1
    $dll = DllCall("user32.dll", "int", "ShowWindow", "hwnd", $hwnd, "int", $SW_SHOW)
    Case 0
    $dll = DllCall("user32.dll", "int", "ShowWindow", "hwnd", $hwnd, "int", $SW_HIDE)
    Case Else
    MsgBox(0, "Fehler", "Icons konnten nicht ausgeblendet werden")
    EndSwitch
    Return True
    EndFunc

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

    ;===============================================================================
    ;
    ; Function Name: hideTaskbar
    ; Description:: Hide Taskbar
    ; Parameter(s): $switch -> Taskbar Hide/Show Switch
    ; 1 = Hide
    ; 0 = Show
    ; Requirement(s): v3.2.12.0 or higher
    ; Author(s): Gianni
    ;
    ;===============================================================================
    Func _hideTaskbar($switch)
    Switch $switch
    Case 1
    DllCall("WinLockDll.dll", "int", "Taskbar_Show_Hide", "int", 0)
    Case 0
    DllCall("WinLockDll.dll", "int", "Taskbar_Show_Hide", "int", 1)
    Case Else
    MsgBox(0, "Fehler", "Taskbar konnten nicht ausgeblendet werden")
    EndSwitch
    EndFunc

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

    ;===============================================================================
    ;
    ; Function Name: setDesktopWallpaper
    ; Description:: Hide Taskbar
    ; Parameter(s): $switch -> Taskbar Hide/Show Switch
    ; 1 = Hide
    ; 0 = Show
    ; Requirement(s): v3.2.12.0 or higher
    ; Author(s): Gianni
    ;
    ;===============================================================================
    Func _setDesktopWallpaper($file)
    DllCall("user32.dll", "str", "SetDeskWallpaper", "str", $file)
    ;~ MsgBox(0, "Fehler", "Taskbar konnten nicht ausgeblendet werden")
    EndFunc

    [/autoit]

    Example:

    [autoit]


    #include <dllUtilitiesUDF.au3>
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    ; Disable
    ;~ _disableClock(1)
    ;~ _disableTaskManager(1)
    ;~ _hideDesktopIcons(1)
    ;~ _hideTaskbar(1)

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

    ;Enable
    ;~ _disableClock(0)
    ;~ _disableTaskManager(0)
    ;~ _hideDesktopIcons(0)
    ;~ _hideTaskbar(0)
    ;~_setDesktopWallpaper("wall.jpg")

    [/autoit]


    grüsse

    gianni

    Click Ctrl-C to copy. (hides when lost focus)

  • Hi ho..
    weiß nicht, ich fände eine Liste mit allen DllCalls mit ner kurzen Beschreibung wesentlich besser, als für jede eine Funktion zu haben..
    Man muss ja so oder so bei den meißten immer nur 1 Variable ändern und ich glaub das schafft man auch so.. Und Error-Management ist auch nicht wirklich drin..
    Aaaber ansonsten ist das schonmal ein guter Schritt in die richtige Richtung! ^^

  • hallo und danke für das feedback.

    ja hab eine funktion daraus gemacht, damit ich sie in meiner datenbank finden kann..

    könntest du bei einer funktion, ein "Error-Management" -beispiel zeigen??

    grüsse

  • Anregung für dein Switch: Wenn man die UDF einbindet, möchte man ja selbst bestimmen, ob den User eine MsgBox stören soll. Außerdem ist der Fehler ja nicht, das z.B. die Taskbar nicht ausgeblendet werden kann, somdern dass der Coder einen falschen Parameter angegeben hat...
    Also besser:

    [autoit]

    Case Else
    SetError(1)
    Return -1

    [/autoit]

    oder so

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.