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

Beiträge von Nathax

  • @sw_maximize

    • Nathax
    • 28. Mai 2012 um 17:25

    Meinst du so?

    [autoit]

    For $i = 1 To 2
    ShellExecute("http:\http://www.google.de")
    WinWaitActive("Mozilla Firefox")
    $Handle = WinGetHandle("Mozilla Firefox")
    WinSetState($Handle,"",@SW_MAXIMIZE)
    Sleep(1000)
    Next

    [/autoit]
  • Pixel eines Icons einfärben

    • Nathax
    • 26. Mai 2012 um 12:40

    Hab ich auch schon dran gedacht.
    Aber es wäre bei RGB einfach schöner, jede einzelne Farbe zu haben.
    Ich werds mir überlegen.

    Edit: Hier meine Lösung (sry für das Durcheinander, aber es ist eben halt nur ein Testskript):

    Spoiler anzeigen
    [autoit]

    #include<GDIplus.au3>
    #include<WindowsConstants.au3>
    #include<GUIConstants.au3>
    #include<Constants.au3>

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

    ; Windows Konstanten

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

    #Region NotifyIcon Constants
    Select
    Case @OSBuild < 2195
    $tagNOTIFYICONDATAW_TEMP = "DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; ptr hIcon; WCHAR szTip[64];"
    Case Else
    $tagNOTIFYICONDATAW_TEMP = "DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; ptr hIcon; WCHAR szTip[128];" & _
    "DWORD dwState; DWORD dwStateMask; WCHAR szInfo[256]; UINT uTimeout; WCHAR szInfoTitle[64]; DWORD dwInfoFlags;"
    EndSelect
    Global Const $tagNOTIFYICONDATAW = $tagNOTIFYICONDATAW_TEMP
    Global Const $tagNOTIFYICONDATA = $tagNOTIFYICONDATAW

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

    Global Const $NIN_BALLOONSHOW = $WM_USER + 2
    Global Const $NIN_BALLOONHIDE = $WM_USER + 3
    Global Const $NIN_BALLOONTIMEOUT = $WM_USER + 4
    Global Const $NIN_BALLOONUSERCLICK = $WM_USER + 5

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

    Global Const $NIM_ADD = 0x00000000
    Global Const $NIM_MODIFY = 0x00000001
    Global Const $NIM_DELETE = 0x00000002
    Global Const $NIM_SETFOCUS = 0x00000003
    Global Const $NIM_SETVERSION = 0x00000004

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

    Global Const $NIF_MESSAGE = 0x00000001
    Global Const $NIF_ICON = 0x00000002
    Global Const $NIF_TIP = 0x00000004
    Global Const $NIF_STATE = 0x00000008
    Global Const $NIF_INFO = 0x00000010
    Global Const $NIF_GUID = 0x00000020
    Global Const $NIF_REALTIME = 0x00000040
    Global Const $NIF_SHOWTIP = 0x00000080

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

    Global Const $NIS_VISIBLE = 0x00000000
    Global Const $NIS_HIDDEN = 0x00000001
    Global Const $NIS_SHAREDICON = 0x00000002

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

    Global Const $NIIF_NONE = 0x00000000
    Global Const $NIIF_INFO = 0x00000001
    Global Const $NIIF_WARNING = 0x00000002
    Global Const $NIIF_ERROR = 0x00000003
    Global Const $NIIF_USER = 0x00000004
    Global Const $NIIF_NOSOUND = 0x00000010
    Global Const $NIIF_LARGE_ICON = 0x00000010
    Global Const $NIIF_RESPECT_QUIET_TIME = 0x00000080
    Global Const $NIIF_ICON_MASK = 0x0000000F

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

    Global Const $WM_TRAYICONPROC = $WM_USER+100

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

    Global Const $HWND_For_TrayNotifications = GUICreate(@ScriptName&"TrayMsgWin",1,1,0,0,0,0,-3)
    #EndRegion

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

    Global $OldSlider1, $OldSlider2, $OldSlider3

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

    ; function to add / modify / delete NotfyIcon
    Func _Shell_NotifyIcon($dwMessage, ByRef $lpdata)
    ; Prog@ndy
    Local $ptr
    If IsDllStruct($lpdata) Then
    $ptr = DllStructGetPtr($lpdata)
    Else
    $ptr = Ptr($lpdata)
    EndIf
    Local $result = DllCall("shell32.dll", "int", "Shell_NotifyIconW", "dword", $dwMessage, "ptr", $ptr)
    If @error Then Return SetError(1, @error, 0)
    Return SetError($result[0] = 0, 0, $result[0])
    EndFunc ;==>_Shell_NotifyIcon

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

    ; function to create an Icon from a GDIplus-Bitmap
    Func _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap)
    ; Prog@ndy
    Local $result = DllCall($ghGDIPDLL, "int", "GdipCreateHICONFromBitmap", "ptr", $hBitmap, "ptr*", 0)
    If @error Then Return SetError(1, @error, 0)
    Return SetError($result[0], 0, $result[2])
    EndFunc ;==>_GDIPlus_BitmapCreateHICONFromBitmap

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

    ; Ereignisse für die TrayIcons
    GUIRegisterMsg($WM_TRAYICONPROC, "TRAYICONPROC")

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

    ; GDIPlus starten
    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(16, 16, $hGraphics)
    _GDIPlus_GraphicsDispose($hGraphics)

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

    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    $Brush1 = _GDIPlus_BrushCreateSolid(0xFF000000)
    $Brush2 = _GDIPlus_BrushCreateSolid(0xFF000000)
    $Pen = _GDIPlus_PenCreate(0xFF000000, 1)

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

    _GDIPlus_GraphicsFillEllipse($hGraphics, 2, 2, 12, 12, $Brush1)
    $prop = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\black2.ico")

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

    Opt("TrayAutoPause",0)
    #Region ### START Koda GUI section ### Form=
    $hwnd = GUICreate("TrayIcon", 200, 140, 193, 125)
    $Slider1 = GUICtrlCreateSlider(2, 2, 150, 45)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetData(-1, 0)
    $Slider2 = GUICtrlCreateSlider(2, 50, 150, 45)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetData(-1, 0)
    $Slider3 = GUICtrlCreateSlider(2, 100, 150, 45)
    GUICtrlSetLimit(-1, 255, 0)
    GUICtrlSetData(-1, 0)
    $chkzufall = GUICtrlCreateCheckbox("zufall",155,10,45,20)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap) ; Icon aus Bitmap erstellen

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

    $ICON_ID = 333

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

    $NOTIFYICONDATAW = DllStructCreate($tagNOTIFYICONDATAW) ; Daten für das Icon
    DllStructSetData($NOTIFYICONDATAW, 1, DllStructGetSize($NOTIFYICONDATAW))
    DllStructSetData($NOTIFYICONDATAW, "hWnd", $HWND_For_TrayNotifications)
    DllStructSetData($NOTIFYICONDATAW, "uID", $ICON_ID) ; ID für das Icon
    DllStructSetData($NOTIFYICONDATAW, "uFlags", BitOR($NIF_ICON, $NIF_TIP,$NIF_MESSAGE)) ; welche Eigenschaften sollen gesetzt werden
    DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon) ; Icon-Handle setzen
    DllStructSetData($NOTIFYICONDATAW, "szTip", "Wert: 0") ; Tooltip setzen
    DllStructSetData($NOTIFYICONDATAW, "uCallbackMessage", $WM_TRAYICONPROC) ; die WindowMessage zum Empfangen von Ereignissen festelgen

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

    _Shell_NotifyIcon($NIM_ADD, $NOTIFYICONDATAW) ; Das Icon erzeugen

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

    _WinAPI_DestroyIcon($hIcon) ; Das Icon wieder löschen. Das TrayIcon hat eine Kopie davon erhalten.
    DllStructSetData($NOTIFYICONDATAW, "uFlags", BitOR($NIF_ICON, $NIF_TIP)) ; Die gleiche Struktur wird später auch verwendet, aber nur, um
    ; das Icon und den tooltip zu ändern.

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

    $OldSlider = 0
    While 1
    Switch GUIGetMsg()
    Case - 3
    Exit
    Case $chkzufall
    If BitAND(GUICtrlRead($chkzufall),1)=1 Then
    AdlibRegister("ZufallsWert",400)
    Else
    AdlibUnRegister()
    EndIf
    EndSwitch
    If GUICtrlRead($Slider1) <> $OldSlider1 Or GUICtrlRead($Slider2) <> $OldSlider2 Or GUICtrlRead($Slider3) <> $OldSlider3 Then
    $Brush1 = _GDIPlus_BrushCreateSolid("0xFF"&StringRight(Hex(GUICtrlRead($Slider1)),2) & StringRight(Hex(GUICtrlRead($Slider2)),2) & StringRight(Hex(GUICtrlRead($Slider3)),2))
    ; Das Icon neu malen
    _GDIPlus_GraphicsFillEllipse($hGraphics, 1, 1, 13, 13, $Brush1)
    _GDIPlus_GraphicsDrawImageRect($hGraphics, $prop, 0, 0, 16, 16)
    ; Das Icon erzeugen
    $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap)
    ; Das Icon setzen
    DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon)
    DllStructSetData($NOTIFYICONDATAW, "szTip", "Wert: " & GUICtrlRead($Slider1))
    ; Das TrayIcon erhält eine Kopie.
    _Shell_NotifyIcon($NIM_MODIFY, $NOTIFYICONDATAW)
    ; Das Icon löschen
    _WinAPI_DestroyIcon($hIcon)
    $OldSlider1 = GUICtrlRead($Slider1)
    $OldSlider2 = GUICtrlRead($Slider2)
    $OldSlider3 = GUICtrlRead($Slider3)
    EndIf

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

    WEnd
    Func ZufallsWert()
    GUICtrlSetData($Slider1,Random(0,255,1))
    GUICtrlSetData($Slider2,Random(0,255,1))
    GUICtrlSetData($Slider3,Random(0,255,1))
    EndFunc
    Func OnAutoItExit()
    AdlibUnRegister()
    ; Aufräumen
    _Shell_NotifyIcon($NIM_DELETE, $NOTIFYICONDATAW) ; das TrayIcon löschen
    ; GDIPlus freigeben
    _GDIPlus_BrushDispose($Brush1)
    _GDIPlus_BrushDispose($Brush2)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    EndFunc ;==>OnAutoItExit

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

    Func TRAYICONPROC($hwnd, $uMsg, $wParam, $lParam)
    ; Ereignisse für das TrayIcon
    Local $uTrayMsg = _WinAPI_LoWord($lParam)
    Local $nID = _WinAPI_HiWord($lParam)
    Switch $uTrayMsg
    Case $NIN_BALLOONSHOW
    ConsoleWrite("Balloon show" & @CRLF)
    Case $NIN_BALLOONHIDE
    ConsoleWrite("Balloon hide" & @CRLF)
    Case $NIN_BALLOONTIMEOUT
    ConsoleWrite("Balloon timeout" & @CRLF)
    Case $NIN_BALLOONUSERCLICK
    ConsoleWrite("Balloon userclick" & @CRLF)
    Case $WM_LBUTTONUP
    ConsoleWrite("left mousebutton Up" & @CRLF)
    Case $WM_RBUTTONUP
    ConsoleWrite("right mousebutton Up" & @CRLF)
    Case $WM_LBUTTONDOWN
    ConsoleWrite("left mousebutton Down" & @CRLF)
    Case $WM_RBUTTONDOWN
    ConsoleWrite("right mousebutton Down" & @CRLF)
    Case $WM_CONTEXTMENU
    ConsoleWrite("Context Menu" & @CRLF)
    EndSwitch
    Return _WinAPI_DefWindowProc($hwnd, $uMsg, $wParam, $lParam)
    EndFunc ;==>TRAYICONPROC

    [/autoit]


    Bild im Anhang

    Dateien

    black2.zip 48,46 kB – 348 Downloads
  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 23:06

    Hört sich gut an, aber ich bekomm folgendes nicht zum Laufen:

    Spoiler anzeigen
    [autoit]

    #include<GDIplus.au3>
    #include<WindowsConstants.au3>
    #include<GUIConstants.au3>
    #include<Constants.au3>

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

    ; Windows Konstanten
    Global Const $WM_RBUTTONDBLCLK = 0x206
    Global Const $WM_RBUTTONDOWN = 0x204
    Global Const $WM_RBUTTONUP = 0x205
    Global Const $WM_LBUTTONDBLCLK = 0x203
    Global Const $WM_LBUTTONDOWN = 0x201
    ;~ Global Const $WM_LBUTTONUP = 0x202
    Global Const $WM_MBUTTONDBLCLK = 0x209
    Global Const $WM_MBUTTONDOWN = 0x207
    Global Const $WM_MBUTTONUP = 0x208

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

    #Region NotifyIcon Constants
    Select
    Case @OSBuild < 2195
    $tagNOTIFYICONDATAW_TEMP = "DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; ptr hIcon; WCHAR szTip[64];"
    Case Else
    $tagNOTIFYICONDATAW_TEMP = "DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; ptr hIcon; WCHAR szTip[128];" & _
    "DWORD dwState; DWORD dwStateMask; WCHAR szInfo[256]; UINT uTimeout; WCHAR szInfoTitle[64]; DWORD dwInfoFlags;"
    EndSelect
    Global Const $tagNOTIFYICONDATAW = $tagNOTIFYICONDATAW_TEMP
    Global Const $tagNOTIFYICONDATA = $tagNOTIFYICONDATAW

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

    Global Const $NIN_BALLOONSHOW = $WM_USER + 2
    Global Const $NIN_BALLOONHIDE = $WM_USER + 3
    Global Const $NIN_BALLOONTIMEOUT = $WM_USER + 4
    Global Const $NIN_BALLOONUSERCLICK = $WM_USER + 5

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

    Global Const $NIM_ADD = 0x00000000
    Global Const $NIM_MODIFY = 0x00000001
    Global Const $NIM_DELETE = 0x00000002
    Global Const $NIM_SETFOCUS = 0x00000003
    Global Const $NIM_SETVERSION = 0x00000004

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

    Global Const $NIF_MESSAGE = 0x00000001
    Global Const $NIF_ICON = 0x00000002
    Global Const $NIF_TIP = 0x00000004
    Global Const $NIF_STATE = 0x00000008
    Global Const $NIF_INFO = 0x00000010
    Global Const $NIF_GUID = 0x00000020
    Global Const $NIF_REALTIME = 0x00000040
    Global Const $NIF_SHOWTIP = 0x00000080

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

    Global Const $NIS_VISIBLE = 0x00000000
    Global Const $NIS_HIDDEN = 0x00000001
    Global Const $NIS_SHAREDICON = 0x00000002

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

    Global Const $NIIF_NONE = 0x00000000
    Global Const $NIIF_INFO = 0x00000001
    Global Const $NIIF_WARNING = 0x00000002
    Global Const $NIIF_ERROR = 0x00000003
    Global Const $NIIF_USER = 0x00000004
    Global Const $NIIF_NOSOUND = 0x00000010
    Global Const $NIIF_LARGE_ICON = 0x00000010
    Global Const $NIIF_RESPECT_QUIET_TIME = 0x00000080
    Global Const $NIIF_ICON_MASK = 0x0000000F

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

    Global Const $WM_TRAYICONPROC = $WM_USER+100

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

    Global Const $HWND_For_TrayNotifications = GUICreate(@ScriptName&"TrayMsgWin",1,1,0,0,0,0,-3)
    #EndRegion

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

    ; function to add / modify / delete NotfyIcon
    Func _Shell_NotifyIcon($dwMessage, ByRef $lpdata)
    ; Prog@ndy
    Local $ptr
    If IsDllStruct($lpdata) Then
    $ptr = DllStructGetPtr($lpdata)
    Else
    $ptr = Ptr($lpdata)
    EndIf
    Local $result = DllCall("shell32.dll", "int", "Shell_NotifyIconW", "dword", $dwMessage, "ptr", $ptr)
    If @error Then Return SetError(1, @error, 0)
    Return SetError($result[0] = 0, 0, $result[0])
    EndFunc ;==>_Shell_NotifyIcon

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

    ; function to create an Icon from a GDIplus-Bitmap
    Func _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap)
    ; Prog@ndy
    Local $result = DllCall($ghGDIPDLL, "int", "GdipCreateHICONFromBitmap", "ptr", $hBitmap, "ptr*", 0)
    If @error Then Return SetError(1, @error, 0)
    Return SetError($result[0], 0, $result[2])
    EndFunc ;==>_GDIPlus_BitmapCreateHICONFromBitmap

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

    ; Ereignisse für die TrayIcons
    GUIRegisterMsg($WM_TRAYICONPROC, "TRAYICONPROC")

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

    ; GDIPlus starten
    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(16, 16, $hGraphics)
    _GDIPlus_GraphicsDispose($hGraphics)

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

    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    $Brush1 = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    $Brush2 = _GDIPlus_BrushCreateSolid(0xFFFF0000)
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 16, 16, $Brush1)

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

    Opt("TrayAutoPause",0)
    #Region ### START Koda GUI section ### Form=
    $hwnd = GUICreate("TrayIcon", 200, 52, 193, 125)
    $Slider1 = GUICtrlCreateSlider(2, 2, 150, 45)
    GUICtrlSetLimit(-1, 16, 0)
    GUICtrlSetData(-1, 0)
    $chkzufall = GUICtrlCreateCheckbox("zufall",155,10,45,20)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap) ; Icon aus Bitmap erstellen

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

    $ICON_ID = 333

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

    $NOTIFYICONDATAW = DllStructCreate($tagNOTIFYICONDATAW) ; Daten für das Icon
    DllStructSetData($NOTIFYICONDATAW, 1, DllStructGetSize($NOTIFYICONDATAW))
    DllStructSetData($NOTIFYICONDATAW, "hWnd", $HWND_For_TrayNotifications)
    DllStructSetData($NOTIFYICONDATAW, "uID", $ICON_ID) ; ID für das Icon
    DllStructSetData($NOTIFYICONDATAW, "uFlags", BitOR($NIF_ICON, $NIF_TIP,$NIF_MESSAGE)) ; welche Eigenschaften sollen gesetzt werden
    DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon) ; Icon-Handle setzen
    DllStructSetData($NOTIFYICONDATAW, "szTip", "Wert: 0") ; Tooltip setzen
    DllStructSetData($NOTIFYICONDATAW, "uCallbackMessage", $WM_TRAYICONPROC) ; die WindowMessage zum Empfangen von Ereignissen festelgen

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

    _Shell_NotifyIcon($NIM_ADD, $NOTIFYICONDATAW) ; Das Icon erzeugen

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

    _WinAPI_DestroyIcon($hIcon) ; Das Icon wieder löschen. Das TrayIcon hat eine Kopie davon erhalten.
    DllStructSetData($NOTIFYICONDATAW, "uFlags", BitOR($NIF_ICON, $NIF_TIP)) ; Die gleiche Struktur wird später auch verwendet, aber nur, um
    ; das Icon und den tooltip zu ändern.

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

    $OldSlider = 0
    While 1
    Switch GUIGetMsg()
    Case - 3
    Exit
    Case $chkzufall
    If BitAND(GUICtrlRead($chkzufall),1)=1 Then
    AdlibEnable("ZufallsWert",400)
    Else
    AdlibDisable()
    EndIf
    EndSwitch
    $NewSlider = GUICtrlRead($Slider1)
    If $NewSlider <> $OldSlider Then
    ; Das Icon neu malen
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 16, 16, $Brush1)
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 16-$NewSlider, 16, 16, $Brush2)
    ; Das Icon erzeugen
    $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap)
    ; Das Icon setzen
    DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon)
    DllStructSetData($NOTIFYICONDATAW, "szTip", "Wert: " & GUICtrlRead($Slider1))
    ; Das TrayIcon erhält eine Kopie.
    _Shell_NotifyIcon($NIM_MODIFY, $NOTIFYICONDATAW)
    ; Das Icon löschen
    _WinAPI_DestroyIcon($hIcon)
    $OldSlider = $NewSlider
    EndIf

    WEnd
    Func ZufallsWert()
    GUICtrlSetData($Slider1,Random(0,16,1))
    EndFunc
    Func OnAutoItExit()
    AdlibDisable()
    ; Aufräumen
    _Shell_NotifyIcon($NIM_DELETE, $NOTIFYICONDATAW) ; das TrayIcon löschen
    ; GDIPlus freigeben
    _GDIPlus_BrushDispose($Brush1)
    _GDIPlus_BrushDispose($Brush2)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    EndFunc ;==>OnAutoItExit

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

    Func TRAYICONPROC($hwnd, $uMsg, $wParam, $lParam)
    ; Ereignisse für das TrayIcon
    Local $uTrayMsg = _WinAPI_LoWord($lParam)
    Local $nID = _WinAPI_HiWord($lParam)
    Switch $uTrayMsg
    Case $NIN_BALLOONSHOW
    ConsoleWrite("Balloon show" & @CRLF)
    Case $NIN_BALLOONHIDE
    ConsoleWrite("Balloon hide" & @CRLF)
    Case $NIN_BALLOONTIMEOUT
    ConsoleWrite("Balloon timeout" & @CRLF)
    Case $NIN_BALLOONUSERCLICK
    ConsoleWrite("Balloon userclick" & @CRLF)
    Case $WM_LBUTTONUP
    ConsoleWrite("left mousebutton Up" & @CRLF)
    Case $WM_RBUTTONUP
    ConsoleWrite("right mousebutton Up" & @CRLF)
    Case $WM_LBUTTONDOWN
    ConsoleWrite("left mousebutton Down" & @CRLF)
    Case $WM_RBUTTONDOWN
    ConsoleWrite("right mousebutton Down" & @CRLF)
    Case $WM_CONTEXTMENU
    ConsoleWrite("Context Menu" & @CRLF)
    EndSwitch
    Return _WinAPI_DefWindowProc($hwnd, $uMsg, $wParam, $lParam)
    EndFunc ;==>TRAYICONPROC

    [/autoit]

    Edit: Ok, also es scheint ein wenig veraltet zu sein.
    Ich habe mal die Adlib-Funktionen angepasst.

    Spoiler anzeigen
    [autoit]

    #include<GDIplus.au3>
    #include<WindowsConstants.au3>
    #include<GUIConstants.au3>
    #include<Constants.au3>

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

    ; Windows Konstanten
    Global Const $WM_RBUTTONDBLCLK = 0x206
    Global Const $WM_RBUTTONDOWN = 0x204
    Global Const $WM_RBUTTONUP = 0x205
    Global Const $WM_LBUTTONDBLCLK = 0x203
    Global Const $WM_LBUTTONDOWN = 0x201
    ;~ Global Const $WM_LBUTTONUP = 0x202
    Global Const $WM_MBUTTONDBLCLK = 0x209
    Global Const $WM_MBUTTONDOWN = 0x207
    Global Const $WM_MBUTTONUP = 0x208

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

    #Region NotifyIcon Constants
    Select
    Case @OSBuild < 2195
    $tagNOTIFYICONDATAW_TEMP = "DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; ptr hIcon; WCHAR szTip[64];"
    Case Else
    $tagNOTIFYICONDATAW_TEMP = "DWORD cbSize; HWND hWnd; UINT uID; UINT uFlags; UINT uCallbackMessage; ptr hIcon; WCHAR szTip[128];" & _
    "DWORD dwState; DWORD dwStateMask; WCHAR szInfo[256]; UINT uTimeout; WCHAR szInfoTitle[64]; DWORD dwInfoFlags;"
    EndSelect
    Global Const $tagNOTIFYICONDATAW = $tagNOTIFYICONDATAW_TEMP
    Global Const $tagNOTIFYICONDATA = $tagNOTIFYICONDATAW

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

    Global Const $NIN_BALLOONSHOW = $WM_USER + 2
    Global Const $NIN_BALLOONHIDE = $WM_USER + 3
    Global Const $NIN_BALLOONTIMEOUT = $WM_USER + 4
    Global Const $NIN_BALLOONUSERCLICK = $WM_USER + 5

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

    Global Const $NIM_ADD = 0x00000000
    Global Const $NIM_MODIFY = 0x00000001
    Global Const $NIM_DELETE = 0x00000002
    Global Const $NIM_SETFOCUS = 0x00000003
    Global Const $NIM_SETVERSION = 0x00000004

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

    Global Const $NIF_MESSAGE = 0x00000001
    Global Const $NIF_ICON = 0x00000002
    Global Const $NIF_TIP = 0x00000004
    Global Const $NIF_STATE = 0x00000008
    Global Const $NIF_INFO = 0x00000010
    Global Const $NIF_GUID = 0x00000020
    Global Const $NIF_REALTIME = 0x00000040
    Global Const $NIF_SHOWTIP = 0x00000080

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

    Global Const $NIS_VISIBLE = 0x00000000
    Global Const $NIS_HIDDEN = 0x00000001
    Global Const $NIS_SHAREDICON = 0x00000002

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

    Global Const $NIIF_NONE = 0x00000000
    Global Const $NIIF_INFO = 0x00000001
    Global Const $NIIF_WARNING = 0x00000002
    Global Const $NIIF_ERROR = 0x00000003
    Global Const $NIIF_USER = 0x00000004
    Global Const $NIIF_NOSOUND = 0x00000010
    Global Const $NIIF_LARGE_ICON = 0x00000010
    Global Const $NIIF_RESPECT_QUIET_TIME = 0x00000080
    Global Const $NIIF_ICON_MASK = 0x0000000F

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

    Global Const $WM_TRAYICONPROC = $WM_USER+100

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

    Global Const $HWND_For_TrayNotifications = GUICreate(@ScriptName&"TrayMsgWin",1,1,0,0,0,0,-3)
    #EndRegion

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

    ; function to add / modify / delete NotfyIcon
    Func _Shell_NotifyIcon($dwMessage, ByRef $lpdata)
    ; Prog@ndy
    Local $ptr
    If IsDllStruct($lpdata) Then
    $ptr = DllStructGetPtr($lpdata)
    Else
    $ptr = Ptr($lpdata)
    EndIf
    Local $result = DllCall("shell32.dll", "int", "Shell_NotifyIconW", "dword", $dwMessage, "ptr", $ptr)
    If @error Then Return SetError(1, @error, 0)
    Return SetError($result[0] = 0, 0, $result[0])
    EndFunc ;==>_Shell_NotifyIcon

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

    ; function to create an Icon from a GDIplus-Bitmap
    Func _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap)
    ; Prog@ndy
    Local $result = DllCall($ghGDIPDLL, "int", "GdipCreateHICONFromBitmap", "ptr", $hBitmap, "ptr*", 0)
    If @error Then Return SetError(1, @error, 0)
    Return SetError($result[0], 0, $result[2])
    EndFunc ;==>_GDIPlus_BitmapCreateHICONFromBitmap

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

    ; Ereignisse für die TrayIcons
    GUIRegisterMsg($WM_TRAYICONPROC, "TRAYICONPROC")

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

    ; GDIPlus starten
    _GDIPlus_Startup()

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

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics(16, 16, $hGraphics)
    _GDIPlus_GraphicsDispose($hGraphics)

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

    $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    $Brush1 = _GDIPlus_BrushCreateSolid(0xFF0000FF)
    $Brush2 = _GDIPlus_BrushCreateSolid(0xFFFF0000)
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 16, 16, $Brush1)

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

    Opt("TrayAutoPause",0)
    #Region ### START Koda GUI section ### Form=
    $hwnd = GUICreate("TrayIcon", 200, 52, 193, 125)
    $Slider1 = GUICtrlCreateSlider(2, 2, 150, 45)
    GUICtrlSetLimit(-1, 16, 0)
    GUICtrlSetData(-1, 0)
    $chkzufall = GUICtrlCreateCheckbox("zufall",155,10,45,20)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap) ; Icon aus Bitmap erstellen

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

    $ICON_ID = 333

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

    $NOTIFYICONDATAW = DllStructCreate($tagNOTIFYICONDATAW) ; Daten für das Icon
    DllStructSetData($NOTIFYICONDATAW, 1, DllStructGetSize($NOTIFYICONDATAW))
    DllStructSetData($NOTIFYICONDATAW, "hWnd", $HWND_For_TrayNotifications)
    DllStructSetData($NOTIFYICONDATAW, "uID", $ICON_ID) ; ID für das Icon
    DllStructSetData($NOTIFYICONDATAW, "uFlags", BitOR($NIF_ICON, $NIF_TIP,$NIF_MESSAGE)) ; welche Eigenschaften sollen gesetzt werden
    DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon) ; Icon-Handle setzen
    DllStructSetData($NOTIFYICONDATAW, "szTip", "Wert: 0") ; Tooltip setzen
    DllStructSetData($NOTIFYICONDATAW, "uCallbackMessage", $WM_TRAYICONPROC) ; die WindowMessage zum Empfangen von Ereignissen festelgen

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

    _Shell_NotifyIcon($NIM_ADD, $NOTIFYICONDATAW) ; Das Icon erzeugen

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

    _WinAPI_DestroyIcon($hIcon) ; Das Icon wieder löschen. Das TrayIcon hat eine Kopie davon erhalten.
    DllStructSetData($NOTIFYICONDATAW, "uFlags", BitOR($NIF_ICON, $NIF_TIP)) ; Die gleiche Struktur wird später auch verwendet, aber nur, um
    ; das Icon und den tooltip zu ändern.

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

    $OldSlider = 0
    While 1
    Switch GUIGetMsg()
    Case - 3
    Exit
    Case $chkzufall
    If BitAND(GUICtrlRead($chkzufall),1)=1 Then
    AdlibRegister("ZufallsWert",400)
    Else
    AdlibUnRegister()
    EndIf
    EndSwitch
    $NewSlider = GUICtrlRead($Slider1)
    If $NewSlider <> $OldSlider Then
    ; Das Icon neu malen
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 16, 16, $Brush1)
    _GDIPlus_GraphicsFillRect($hGraphics, 0, 16-$NewSlider, 16, 16, $Brush2)
    ; Das Icon erzeugen
    $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap)
    ; Das Icon setzen
    DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon)
    DllStructSetData($NOTIFYICONDATAW, "szTip", "Wert: " & GUICtrlRead($Slider1))
    ; Das TrayIcon erhält eine Kopie.
    _Shell_NotifyIcon($NIM_MODIFY, $NOTIFYICONDATAW)
    ; Das Icon löschen
    _WinAPI_DestroyIcon($hIcon)
    $OldSlider = $NewSlider
    EndIf

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

    WEnd
    Func ZufallsWert()
    GUICtrlSetData($Slider1,Random(0,16,1))
    EndFunc
    Func OnAutoItExit()
    AdlibUnRegister()
    ; Aufräumen
    _Shell_NotifyIcon($NIM_DELETE, $NOTIFYICONDATAW) ; das TrayIcon löschen
    ; GDIPlus freigeben
    _GDIPlus_BrushDispose($Brush1)
    _GDIPlus_BrushDispose($Brush2)
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    EndFunc ;==>OnAutoItExit

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

    Func TRAYICONPROC($hwnd, $uMsg, $wParam, $lParam)
    ; Ereignisse für das TrayIcon
    Local $uTrayMsg = _WinAPI_LoWord($lParam)
    Local $nID = _WinAPI_HiWord($lParam)
    Switch $uTrayMsg
    Case $NIN_BALLOONSHOW
    ConsoleWrite("Balloon show" & @CRLF)
    Case $NIN_BALLOONHIDE
    ConsoleWrite("Balloon hide" & @CRLF)
    Case $NIN_BALLOONTIMEOUT
    ConsoleWrite("Balloon timeout" & @CRLF)
    Case $NIN_BALLOONUSERCLICK
    ConsoleWrite("Balloon userclick" & @CRLF)
    Case $WM_LBUTTONUP
    ConsoleWrite("left mousebutton Up" & @CRLF)
    Case $WM_RBUTTONUP
    ConsoleWrite("right mousebutton Up" & @CRLF)
    Case $WM_LBUTTONDOWN
    ConsoleWrite("left mousebutton Down" & @CRLF)
    Case $WM_RBUTTONDOWN
    ConsoleWrite("right mousebutton Down" & @CRLF)
    Case $WM_CONTEXTMENU
    ConsoleWrite("Context Menu" & @CRLF)
    EndSwitch
    Return _WinAPI_DefWindowProc($hwnd, $uMsg, $wParam, $lParam)
    EndFunc ;==>TRAYICONPROC

    [/autoit]


    Es funktioniert allerdings immer noch nicht. :(

    Edit:
    Einfach mal die störenden Zeilen rausgenommen.
    Jetzt funktionierts. Ich hoffe, dass es nun trotzdem nicht "unsauber" läuft.
    Naja, ich werds mal auf mein Beispiel übertragen, wenn möglich, und berichte dann.

  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 22:39

    Ok, erstmal vielen Dank. Und zu dem Code:
    Wie gesagt, ich hab mir einfach aus den Beispielen alles zusammenkopiert, bis es näherungsweise gut lief.
    Oder meinst du ich würde ein Programm so, ohne Einrückung, hier im Forum posten? ;)
    Wie man sieht ist das ganz durcheinander gewürfelt und dient nur zu Testzwecken meines richtigen Programms.
    Ich werde sobald wie möglich versuchen deine Aliegen umzusetzen.

  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 20:10

    Also ich habe mal ein GDI+-Beispiel-Skript benutzt, um nen Lüfter mit der Farbe "rot" darzustellen.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <GdiPlus.au3>;das include
    #include <Misc.au3>

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

    OnAutoItExitRegister("_end") ; die Funktion _end am Ende des Scriptes ausführen

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

    $x = 0+10;x und y deklarieren
    $y = 0+10

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

    $Gui = GUICreate("Beispiel", 100, 100, Default, Default)
    GUISetState(@SW_SHOW)

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

    _GDIPlus_Startup() ;Gdi starten

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

    $figur = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\black.ico")
    $height = _GDIPlus_ImageGetHeight($figur)
    $width = _GDIPlus_ImageGetWidth($figur)
    $verhaelnis = $height / $width
    $graphic = _GDIPlus_GraphicsCreateFromHWND($Gui)
    $Brush1 = _GDIPlus_BrushCreateSolid(0xFFff0000)
    $bk = _GDIPlus_GraphicsFillEllipse($graphic, 5, 5, 90, 90, $Brush1)
    $pen = _GDIPlus_PenCreate(0xFF000000,5)
    $ring = _GDIPlus_GraphicsDrawEllipse($graphic, 5, 5, 90, 90, $Pen)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics(100, 100, $graphic);----------------- geändert ----------------------
    $buffer = _GDIPlus_ImageGetGraphicsContext($bitmap);----------------- geändert ----------------------

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

    _GDIPlus_GraphicsDrawImageRect($buffer, $bk, 5, 5, 90, 90);----------------- geändert ----------------------
    _GDIPlus_GraphicsDrawImageRect($buffer, $ring, 5, 5, 90, 90);----------------- geändert ----------------------
    _GDIPlus_GraphicsDrawImageRect($buffer, $figur, $x, $y, 80, 80 * $verhaelnis);----------------- geändert ----------------------
    _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0);----------------- geändert ----------------------

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

    _GDIPlus_ImageSaveToFile($bitmap, @ScriptDir & "\GDIPlus_Image.png")

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

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    Select
    Case _IsPressed(25)
    $x -= 3
    Case _IsPressed(26)
    $y -= 3
    Case _IsPressed(27)
    $x += 3
    Case _IsPressed(28)
    $y += 3
    EndSelect

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

    _GDIPlus_GraphicsDrawImageRect($buffer, $bk, 5, 5, 90, 90);----------------- geändert ----------------------
    _GDIPlus_GraphicsDrawImageRect($buffer, $ring, 5, 5, 90, 90);----------------- geändert ----------------------
    _GDIPlus_GraphicsDrawImageRect($buffer, $figur, $x, $y, 80, 80 * $verhaelnis);----------------- geändert ----------------------
    _GDIPlus_GraphicsDrawImage($graphic, $bitmap, 0, 0);----------------- geändert ----------------------

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

    Sleep(30)

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

    WEnd

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

    Func _end();die Exit funktion
    _GDIPlus_GraphicsDispose($graphic);Grafik Objekt freigeben
    _GDIPlus_GraphicsDispose($buffer);----------------- geändert ----------------------
    _GDIPlus_BitmapDispose($bitmap);----------------- geändert ----------------------
    _GDIPlus_ImageDispose($figur);Bild Objekt 1 freigeben
    _GDIPlus_ImageDispose($bk);Bild Objekt 2 freigeben
    _GDIPlus_ImageDispose($ring)
    _GDIPlus_PenDispose($pen)
    _GDIPlus_Shutdown();Ressourcen freigeben
    EndFunc ;==>_end

    [/autoit]

    Das Problem ist, dass nach dem Minimieren und Wiederherstellen des Fensters nur noch der Lüfter zu sehen ist. Zum anderen wird auch nur dieser in das PNG gespeichert.
    Außerdem soll es ja das Format ICO sein, da es als TrayIcon verwendet werden soll. Könnt ihr mir helfen?

  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 19:04

    Ich guck mal, versprechen kann ich aber nix.

  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 17:15

    @BB genau das will ich ja machen, nur ich weiß ja nicht wie.

    @Bulli-IT gute Idee, Danke! Ich werds mal später versuchen. Und wozu willste das Skript? Hast du denn nen Arduino oder Ähnliches?

  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 15:04

    Der Schwerpunkt meiner Frage liegt nicht darin, das Icon zu setzen, sondern erstmal das Icon einzufärben.

  • Pixel eines Icons einfärben

    • Nathax
    • 25. Mai 2012 um 14:37

    Hallo,
    ich habe mir eine RGB-Steuerung geschrieben, mit der ich die LED-Farbe meines Lüfters steuern kann.
    Nun möchte ich, dass das Trayicon in den Farbton gefärbt wird,
    welchen ich gerade für den Lüfter festgelegt habe.
    Dabei gibt es Pixel, welche den Rahmen und den Propellerrand darstellen.
    Diese sind immer schwarz, d.h. es müssen nur bestimmte Pixel des Icons
    gefärbt werden und zwar alle außer den schwarzen.
    Wie realisiere ich mein Vorhaben?

    Unsauberer Lösungsvorschlag:
    Ich lese z.B. per ImageSearch die Position des Trayicons auf der Taskleiste aus
    und male dieses dann per GDI+ über. Dies ist natürlich nicht gerade elegant,
    wäre aber im Notfall eine Überlegung wert.

  • Sainsmart Arduino - Alternative zum Original?

    • Nathax
    • 17. Mai 2012 um 21:38

    Ok, vielen Dank! Ich werds mir anschauen.

  • Sainsmart Arduino - Alternative zum Original?

    • Nathax
    • 17. Mai 2012 um 17:56

    Ich möchte um Geld zu sparen einen nachgebauten Arduino Mega kaufen.
    Würde es dieser hier tun?
    http://www.ebay.de/itm/SainSmart-MEGA-2560-ATMEGA-2560-AVR-Module-Board-Free-Cable-DE-shipping-/320858965905?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4ab4af4791
    Von der Hardware ist es ja eigentlich das gleiche, aber lässt er sich mit der normalen Arduino-Software programmieren?

  • FileGetSize()+Windows 7 - Aktualisierung erzwingen

    • Nathax
    • 16. Mai 2012 um 21:52

    Danke für den Tipp, aber es klappt mit 100ms recht gut.

  • FileGetSize()+Windows 7 - Aktualisierung erzwingen

    • Nathax
    • 16. Mai 2012 um 18:02

    Danke, die Funktion klappt, Xorianator.

  • FileGetSize()+Windows 7 - Aktualisierung erzwingen

    • Nathax
    • 16. Mai 2012 um 15:32

    Ich kopiere eine Datei und frage in einer Schleife die Größe mit FileGetSize() ab.
    Windows 7 arbeitet ja übers Cache, da aktualisiert sich die Größe die ersten 2s und danach erst wieder, wenn die Datei komplett kopiert wurde.
    Komischerweise erfolgt auch eine Aktualisierung, wenn man per Rechtsklick->Eigenschaften die Größe nachgucken will. Wie macht Windows das?
    Kann man diese Aktualisierung irgendwie erzwingen?
    Oder gibt es Alternativen zu FileGetSize?

  • Script schlieft ein...?

    • Nathax
    • 16. Mai 2012 um 14:00

    Hier die (glaube ich) richtige Formatierung:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    Global $Form1 = GUICreate("TEST", 393, 415, -1, -1)
    GUISetOnEvent(-3, "_Exit")
    TCPStartup()
    $Main_IP = @IPAddress1
    $Master_IP = "192.168.0.100"
    $Master_Port = 54545
    Global $iSocket = 0
    Global $Master = ""

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

    _Master_Verbinden()

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

    Func _Master_Verbinden()
    GUISetState(@SW_SHOW, $Form1)
    $Master = "" ; Offline = "", Online = "ONLINE"
    Do
    ConsoleWrite("Warte auf Server IP: " & $Master_IP & @CRLF)
    $iSocket = TCPConnect($Master_IP, $Master_Port)
    Sleep(1000)
    Until $iSocket > 0
    GUISetState(@SW_HIDE, $Form1)
    _ComputerName_Senden()
    Sleep(1000)
    $Master = "ONLINE"
    ConsoleWrite("Server online." & @CRLF)
    EndFunc ;==>_Master_Verbinden

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

    While 1
    If $Master = "ONLINE" Then
    Dim $recv = ""
    $recv &= TCPRecv($iSocket, 1024)
    If StringInStr($recv, "TASKMANAGER") Then
    MsgBox(0, "Info", "Taskmanager killen.", 10) ;... ;...
    ElseIf StringInStr($recv, "CMD") Then
    MsgBox(0, "Info", "CMD killen", 5) ;... ;...
    Else
    ConsoleWrite("Warte auf Action..." & @CRLF)
    EndIf
    TCPSend($iSocket, "")
    If @error Then
    $Master = "OFFLINE"
    _Master_Verbinden()
    EndIf
    EndIf
    Sleep(100)
    WEnd

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

    Func _ComputerName_Senden()
    Local $ComputerName
    $ComputerName = @ComputerName & "|" & @ComputerName & "|" & @ComputerName
    TCPSend($iSocket, $ComputerName)
    If @error Then
    TCPCloseSocket($iSocket)
    $iSocket = 0
    GUISetState(@SW_SHOW, $Form1)
    _Master_Verbinden()
    EndIf
    EndFunc ;==>_ComputerName_Senden

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

    Func _Exit()
    TCPCloseSocket($iSocket)
    TCPShutdown()
    Exit
    EndFunc ;==>_Exit

    [/autoit]
  • Burning Keyboard - Wie schnell kannst du tippen?

    • Nathax
    • 11. Mai 2012 um 18:50

    Gute Idee. Lässt sich bestimmt noch ausbauen.

    Mein Ergebnis

    Spoiler anzeigen

    Time: 60 seconds
    _______________________

    Correct chars: 190
    Chars/second: 3.17

    Correct words: 25
    Errors...........: 0

  • Explorer-Kontextmenüeintrag soll mehrere Datein in eine Edit reinpacken

    • Nathax
    • 11. Mai 2012 um 14:55

    Hallo,
    wenn ich eine Datei auswähle und mit Rechtsklick das Parameter an meine Exe sende klappt alles ganz gut.
    Aber wenn ich mehrere auswähle, wird die Exe so oft gestartet, wie die Anzahl der selektierten Dateien.
    Kann man das irgendwie umgehen, d.h. alle Dateien in einem Parameter(evtl. Array) zu übergeben und die Exe nur
    einmal zu starten?

  • Kiowa - ein kleiner HTTP-Server mit teilweiser PHP Unterstützung

    • Nathax
    • 5. Mai 2012 um 21:20

    Nette Idee !

  • Multitasking ist gefragt

    • Nathax
    • 1. Mai 2012 um 18:05

    Ich würde AdlibRegister nehmen.

  • [UDF] _CreateDummyFile - Dummy-Dateien einfach erzeugen

    • Nathax
    • 22. April 2012 um 12:12

    Ich hab nichts geändert.

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™