PDA

View Full Version : حرفه ای: uninstall



alirezai211
جمعه 08 آبان 1394, 14:38 عصر
با سلام
من یک برنامه uninstall رو توسط برنامه ام که تو VB.NET نوشتم اجرا می کنم بعد از اجرا uninstall پیغامی می پرسه که:
می خواهید حذف صورت بگیره یا نه ؟
دو کلید yes و no هم داره

چطور می تونم بدون اجازه دادن به کاربر گزینه yes را فعال کنم ؟ ( تا برنامه uninstall اجرا بشه و کاربر نتونه جلوش رو بگیره )

Ehsan_Shia
جمعه 08 آبان 1394, 14:51 عصر
بسم الله الرحمن الرحیم

سلام علیکم
بنده که در مقابل اساتید چیزی بلد نیستم، ولی اگه واضح تر توضیح بدید یا برنامه را بزارید، بهتر می توان متوجه شد؛ البته اختیار با خودتان هست.

samiasoft
جمعه 08 آبان 1394, 15:19 عصر
با سلام
من یک برنامه uninstall رو توسط برنامه ام که تو VB.NET نوشتم اجرا می کنم بعد از اجرا uninstall پیغامی می پرسه که:
می خواهید حذف صورت بگیره یا نه ؟
دو کلید yes و no هم داره

چطور می تونم بدون اجازه دادن به کاربر گزینه yes را فعال کنم ؟ ( تا برنامه uninstall اجرا بشه و کاربر نتونه جلوش رو بگیره )

شما باید هندل کنترل مورد نظر در برنامه رو بدست بیارید و بعد با توابع send meesage دستور مورد نظر رو براش بفرستید...

alirezai211
جمعه 08 آبان 1394, 21:54 عصر
این از تصویر دیکه yes که خواسته بودید . 136362

samiasoft
جمعه 08 آبان 1394, 22:34 عصر
این کل توابع سندمسیج که به پروژه اضافه کنید :

Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd As Long, ByVal hWnd As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const WM_LBUTTONDOWN As Long = &H201
Private Const WM_LBUTTONUP As Long = &H202
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long


Const WM_GETTEXTLENGTH As Long = &HE
Const WM_GETTEXT = &HD
Private Const WM_CUT = &H300
Private Const WM_COPY = &H301
Private Const WM_CLEAR = &H303
Private Const WM_SETTEXT = &HC
Private Const WM_PASTE = &H302
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)


برای اینتر کردن در دکمه باتونی که قرار دادید :

Dim wHwnd As Long

Do
wHwnd = FindWindowEx(0, wHwnd, "#32770", vbNullString)


If wHwnd = 0 Then Exit Sub
Loop Until FindWindowEx(wHwnd, 0, "#32770", vbNullString)








wHwnd = FindWindowEx(wHwnd, 0, "Button", vbNullString)
If wHwnd = 0 Then
MsgBox("baz nist panjere ")
Else


SendMessage(wHwnd, &HF5, 0, 0)


End If