نحن نعلم انه باستخدام التحكم NotifyIcon نستطيع وضع برنامجنا قفي صينثة النظام SystemTray
ولكن نلاحظ أن بعض البرامج تظهر رسائل من خلالها على شكل بالون أصفر يحتوي المعلومات كالصورة التالية
استطعت عمل ذلك باستدعاءات ويندوز API بالطريقة التالية
في بداية الملف نستخدام الاستيراد
Imports System.Runtime.InteropServices
في قسم الاعلانات العامة في الـ From نضع الكود التالي
Public Result As Boolean <StructLayout(LayoutKind.Sequential)> _ Public Structure NOTIFYICONDATA Dim cbSize As Int32 Dim hwnd As IntPtr Dim uID As Int32 Dim uFlags As Int32 Dim uCallbackMessage As IntPtr Dim hIcon As IntPtr <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> Dim szTip As String Dim dwState As Int32 Dim dwStateMask As Int32 <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=256)> Dim szInfo As String Dim uVersion As Int32 <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=64)> Dim szInfoTitle As String Dim dwInfoFlags As Int32 End Structure Public Const NIF_MESSAGE As Int32 = &H1 Public Const NIF_ICON As Int32 = &H2 Public Const NIF_STATE As Int32 = &H8 Public Const NIF_INFO As Int32 = &H10 Public Const NIF_TIP As Int32 = &H4 Public Const NIM_ADD As Int32 = &H0 Public Const NIM_MODIFY As Int32 = &H1 Public Const NIM_DELETE As Int32 = &H2 Public Const NIM_SETVERSION As Int32 = &H4 Public Const NOTIFYICON_VERSION As Int32 = &H5 Public Const NIS_HIDDEN = &H1 Public Const NIS_SHAREDICON = &H2 Public Const NIIF_ERROR = &H3 Public Const NIIF_INFO = &H1 Public Const NIIF_NONE = &H0 Public Const NIIF_WARNING = &H2 Public Const NIM_SETFOCUS = &H4 Public Const NIIF_GUID = &H5 Public Declare Function Shell_NotifyIcon Lib "shell32.dll" _ Alias "Shell_NotifyIconA" (ByVal dwMessage As Int32, _ ByRef lpData As NOTIFYICONDATA) As Boolean Public uNIF As NOTIFYICONDATA
في حدث Load الخاص بالـ From نضع الكود التالي
With uNIF .cbSize = Marshal.SizeOf(uNIF) .hwnd = Me.Handle .uID = 0 .dwInfoFlags = NIF_ICON Or NIF_MESSAGE .uCallbackMessage = New IntPtr(&H500) .uVersion = NOTIFYICON_VERSION .hIcon = Me.Icon.Handle End With Result = Shell_NotifyIcon(NIM_ADD, uNIF) '// Send a balloon message With uNIF .uFlags = NIF_INFO .uVersion = 2000 .szInfoTitle = "Test" .szInfo = "Testing 1,2,3 Testing" .dwInfoFlags = NIIF_INFO End With Result = Shell_NotifyIcon(NIM_MODIFY, uNIF) End Sub
ثم شغل البرنامج وستظهر لك النتيجة كما في الصورة أعلاه

