PDA

View Full Version : سوال: اکسس در Notification ویندوز



Saeid_ji
یک شنبه 28 شهریور 1395, 23:37 عصر
با سلام
از دوستان کسی می تونه راهنمایی کنه که چگونه اکسس را هنگام مینیمایز کردن به داخل Notification (گوشه پایین سمت راست)ویندوز بفرستیم.؟

Saeid_ji
جمعه 09 مهر 1395, 17:58 عصر
دوستان و اساتيد لطفآ...

amin1softco
جمعه 09 مهر 1395, 20:47 عصر
شما باید از vb استفاده کنید یا برنامه های جانبی برای مینیمایز کردن اکسس در systry ویندوز :


**BEGIN MOD_TrayIcon**
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBL = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_ACTIVATEAPP = &H1C
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const MAX_TOOLTIP As Integer = 64
Public Const GWL_WNDPROC = (-4)

Type NOTIFYICONDATA
cbSize As Long
hwnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * MAX_TOOLTIP
End Type

Public nfIconData As NOTIFYICONDATA

Private FHandle As Long
Private WndProc As Long
Private Hooking As Boolean

Public Sub Hook(Lwnd As Long)
If Hooking = False Then
FHandle = Lwnd
WndProc = SetWindowLong(Lwnd, GWL_WNDPROC, AddressOf WindowProc)
Hooking = True
End If
End Sub

Public Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

If Hooking = True Then
If uMsg = WM_RBUTTONUP And lParam = WM_RBUTTONDOWN Then
fMainForm.SysTrayMouseEventHandler
WindowProc = True
Exit Function
ElseIf lParam = WM_LBUTTONDBL Then
fMainForm.open_Click
WindowProc = True
Exit Function
End If
WindowProc = CallWindowProc(WndProc, hw, uMsg, wParam, lParam)
End If
End Function

Public Sub RemoveIconFromTray()
Shell_NotifyIcon NIM_DELETE, nfIconData
End Sub

Public Sub Unhook()
If Hooking = True Then
SetWindowLong FHandle, GWL_WNDPROC, WndProc
Hooking = False
End If
End Sub

Public Sub AddIconToTray(MeHwnd As Long, MeIcon As Long, MeIconHandle As Long, Tip As String)
With nfIconData
.hwnd = MeHwnd
.uID = MeIcon
.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
.uCallbackMessage = WM_RBUTTONUP
.hIcon = MeIconHandle
.szTip = Tip & Chr$(0)
.cbSize = Len(nfIconData)
End With
Shell_NotifyIcon NIM_ADD, nfIconData
End Sub
**END MOD_TRAYICON**

http://www.codekabinett.com/download/systray.zip

Saeid_ji
چهارشنبه 12 آبان 1395, 21:55 عصر
دوست عزیز(amin) ضمن تشکر فراوان از شما ، فایل پیوست را روی سیستم دانلود و اجرا کردم و جواب هم داد ولی هنگامی که برنامه را خارج می کنید و مجدد اجرا می کنید در" سیستم ترای" مینیمایز می شود ولی با دوبار کلیلک، فرم اکسس نمایش داده نمی شود. اگه ممکنه راهنمایی فرمایید. همچنین کدهایی را که در بالا نوشته اید روش دیگری است یا خیر و چگونه و با چه ترتیبی میبایستی استفاده کنیم. با تشکر مجدد