czyt 6 Report post Posted August 15, 2016 is there any deskband Example for reference?thx in advance. 董小姐,你微笑的时候很美,就像安河桥下,清澈的水... Share this post Link to post Share on other sites
TheDcoder 532 Report post Posted August 15, 2016 Something similar to this? AutoIt.4.Life Clubrooms - Life is like a Donut (secret key) Spoiler My contributions to the AutoIt Community Some messages & Apologizes: If I hurt you, Please accept my apologies, I never (regardless of the situation) mean to hurt anybody!!! Also, I am very busy with my project so I will appear in the last row of the online list, if you want to contact me: Email@TheDcoder.xyz Or you can have a nice chat with me in freenode, I use the same nick on freenode too! PLEASE JOIN ##AutoIt AND HELP THE IRC AUTOIT COMMUNITY! Share this post Link to post Share on other sites
AutoBert 160 Report post Posted August 15, 2016 (edited) did you mean something like this? expandcollapse popup#NoTrayIcon #include <GDIplus.au3> #include <WindowsConstants.au3> #include <GUIConstants.au3> #include <Constants.au3> #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 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 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 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 Global Const $NIS_VISIBLE = 0x00000000 Global Const $NIS_HIDDEN = 0x00000001 Global Const $NIS_SHAREDICON = 0x00000002 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 Global Const $WM_TRAYICONPROC = $WM_USER + 100 Global Const $HWND_For_TrayNotifications = GUICreate(@ScriptName & "TrayMsgWin", 1, 1, 0, 0, 0, 0, -3) #endregion NotifyIcon Constants ; 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 ; function to create an Icon from a GDIplus-Bitmap Func _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap) ; Prog@ndy Local $result = DllCall($__g_hGDIPDll, "int", "GdipCreateHICONFromBitmap", "ptr", $hBitmap, "ptr*", 0) If @error Then Return SetError(1, @error, 0) Return SetError($result[0], 0, $result[2]) EndFunc ;==>_GDIPlus_BitmapCreateHICONFromBitmap ; Ereignisse für die TrayIcons GUIRegisterMsg($WM_TRAYICONPROC, "TRAYICONPROC") ; GDIPlus starten _GDIPlus_Startup() Global $hGraphics = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow()) Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics(16, 16, $hGraphics) _GDIPlus_GraphicsDispose($hGraphics) $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap) Global $hBrushText = _GDIPlus_BrushCreateSolid(0xFF000000) Global $BrushBackground = _GDIPlus_BrushCreateSolid(0xFF00FF00) _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 16, 16, $BrushBackground) Global $hFormat = _GDIPlus_StringFormatCreate() Global $hFontFamily = _GDIPlus_FontFamilyCreate("Arial") Global $hFont = _GDIPlus_FontCreate($hFontFamily, 10, 0) Global $tLayout = _GDIPlus_RectFCreate() Global $sLauftext = StringFormat("%s:%s:%s", @HOUR, @MIN, @SEC) Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sLauftext, $hFont, $tLayout, $hFormat) _GDIPlus_GraphicsDrawStringEx($hGraphics, $sLauftext, $hFont, $aInfo[0], $hFormat, $hBrushText) OnAutoItExitRegister("OnAutoItExit") $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap) ; Icon aus Bitmap erstellen $ICON_ID = 333 $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", $sLauftext) ; Tooltip setzen DllStructSetData($NOTIFYICONDATAW, "uCallbackMessage", $WM_TRAYICONPROC) ; die WindowMessage zum Empfangen von Ereignissen festelgen _Shell_NotifyIcon($NIM_ADD, $NOTIFYICONDATAW) ; Das Icon erzeugen _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. AdlibRegister("_Marquee", 50) While 1 Sleep(23000) WEnd Func OnAutoItExit() AdlibUnRegister() ; Aufräumen _Shell_NotifyIcon($NIM_DELETE, $NOTIFYICONDATAW) ; das TrayIcon löschen ; GDIPlus freigeben _GDIPlus_BrushDispose($BrushBackground) _GDIPlus_BrushDispose($hBrushText) _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFontFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_GraphicsDispose($hGraphics) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_Shutdown() EndFunc ;==>OnAutoItExit Func _Marquee() Local Static $x = 0, $Text = $sLauftext $x -= 1 _GDIPlus_GraphicsFillRect($hGraphics, 0, 0, 16, 16, $BrushBackground) Local $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $Text, $hFont, $tLayout, $hFormat) If $x <= -DllStructGetData($aInfo[0], 3) + 4 Then $x = 16 $Text = $sLauftext DllStructSetData($NOTIFYICONDATAW, "szTip", $Text) EndIf DllStructSetData($aInfo[0], 1, $x) _GDIPlus_GraphicsDrawStringEx($hGraphics, $Text, $hFont, $aInfo[0], $hFormat, $hBrushText) ; Das Icon erzeugen $hIcon = _GDIPlus_BitmapCreateHICONFromBitmap($hBitmap) ; Das Icon setzen DllStructSetData($NOTIFYICONDATAW, "hIcon", $hIcon) ; Das TrayIcon erhält eine Kopie. _Shell_NotifyIcon($NIM_MODIFY, $NOTIFYICONDATAW) ; Das Icon löschen _WinAPI_DestroyIcon($hIcon) EndFunc ;==>_Marquee 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, set new value" & @CRLF) $sLauftext = StringFormat("%s:%s:%s", @HOUR, @MIN, @SEC) Case $WM_RBUTTONDOWN ConsoleWrite("right mousebutton Down" & @CRLF) Case $WM_CONTEXTMENU ConsoleWrite("Context Menu" & @CRLF) Case $WM_LBUTTONDBLCLK ConsoleWrite("left mousebutton doubleclick" & @CRLF) Exit EndSwitch Return _WinAPI_DefWindowProc($hwnd, $uMsg, $wParam, $lParam) EndFunc ;==>TRAYICONPROC origin: @funkey https://autoit.de/index.php/Thread/33025-Anzeige-in-Symbolleiste/?pageNo=2 just updated to new AutoIt stable. ($__g_hGDIPDll in line 76 was $ghGDIPDLL) or did you mean something like this: Edited August 15, 2016 by AutoBert Share this post Link to post Share on other sites
haijie1223 5 Report post Posted July 14, 2017 On 2016/8/15 at 4:39 PM, TheDcoder said: Something similar to this? how to do that? Share this post Link to post Share on other sites
TheDcoder 532 Report post Posted July 14, 2017 I do not know how that is done, I was just asking for clarification in my previous post. If you are looking for the specific program in the screenshot, it's called NetWorx, but it is no longer free AutoIt.4.Life Clubrooms - Life is like a Donut (secret key) Spoiler My contributions to the AutoIt Community Some messages & Apologizes: If I hurt you, Please accept my apologies, I never (regardless of the situation) mean to hurt anybody!!! Also, I am very busy with my project so I will appear in the last row of the online list, if you want to contact me: Email@TheDcoder.xyz Or you can have a nice chat with me in freenode, I use the same nick on freenode too! PLEASE JOIN ##AutoIt AND HELP THE IRC AUTOIT COMMUNITY! Share this post Link to post Share on other sites