PDA

View Full Version : سوال: دستور My Computer



saeedzx
پنج شنبه 02 مهر 1388, 11:21 صبح
سلام ببخشید دستوری هست که اگه برنامه اجرا بشه

در ویندوز اگر ما My Computer و یا درایو ها شو بازکنید برنامه رو نشون بده ؟؟؟

shedayat
پنج شنبه 02 مهر 1388, 11:53 صبح
توضیحت نامفهومه اگه می شه بیشتر توضیح بده.

saeedzx
پنج شنبه 02 مهر 1388, 12:59 عصر
یعنی اگر ما My Computer باز کردم به جای My Computer برنامه رو نشون بده

.:KeihanCPU:.
پنج شنبه 02 مهر 1388, 13:44 عصر
یه راه داره
اونم اینه که برنامت همیشه فعال باشه و مخفی و زمانی که My Computer باز شد برنامه شما بالا بیاد

Dr.Bronx
پنج شنبه 02 مهر 1388, 14:21 عصر
با تابع FindWindow از طریق API می تونید Caption پنجره Mycomputer رو به دست بیارید
و هر وقت برابر با اون بود برنامه شما اجرا بشه

ایمان اختیاری
پنج شنبه 02 مهر 1388, 14:43 عصر
یا اینکه برنامه ات جوری تنظیم کنی یه بار که اجرا شد توی فهرست ریشه ی هر درایو یه autorun.inf بذاره که توش دستور اجرای برنامه ی شما باشه ..

.:KeihanCPU:.
پنج شنبه 02 مهر 1388, 14:54 عصر
یا اینکه برنامه ات جوری تنظیم کنی یه بار که اجرا شد توی فهرست ریشه ی هر درایو یه autorun.inf بذاره که توش دستور اجرای برنامه ی شما باشه ..
که البته این روش توسط آنتی ویروسها مشکل دار میشه !

بهترین روش اینه که یا برنامتون مخفی باشه و زمانی که هندل پنجره MyCompyter فعال شد برنامه بیاد بالا
راه دیگه هم اینه که یه برنامه کمکی دیگه همیشه به طور مخفی باشه که هر وقت هندل فعال شد برنامه اصلی رو اجرا کنه !

saeedzx
پنج شنبه 02 مهر 1388, 15:45 عصر
دوستان واقعا تشکر میکنم حالا نمی شه یک کد و یا سورسی برام بذارین

shedayat
پنج شنبه 02 مهر 1388, 17:30 عصر
دوستان واقعا تشکر میکنم حالا نمی شه یک کد و یا سورسی برام بذارین


فکر می کنم با این کد مشکلت حل بشه. اول یه تایمر روی فرمت بده و بعد خاصیت Inerval اون رو 500 بده و بعد این کدها رو کپی کن.



[Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Const WM_GETTEXT = &HD
Dim Address As String
Private Sub Form_Load()
Me.Hide
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
Dim hwnd As Long
Dim i As Integer
Dim Temp As String
hwnd = FindWindow("CabinetWClass", vbNullString)
If hwnd <> 0 Then
hwnd = FindWindowEx(hwnd, 0, "WorkerW", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ReBarWindow32", vbNullString)
hwnd = FindWindowEx(hwnd, 0, "ComboBoxEx32", vbNullString)
Dim r As Long
Dim s As String
s = String(201, Chr(0))
r = SendMessageByString(hwnd, WM_GETTEXT, 200, s)
If Left(s, r) = "My Computer" Then Me.Show
End If
End Sub

saeedzx
پنج شنبه 02 مهر 1388, 19:54 عصر
ببین من میخوام مای کامپیوتر اصلا باز نشه

.:KeihanCPU:.
پنج شنبه 02 مهر 1388, 22:11 عصر
باز که میشه
interval تایمر رو بزار 1

shedayat
جمعه 03 مهر 1388, 01:17 صبح
ببین من میخوام مای کامپیوتر اصلا باز نشه

می تونی قبل از اینکه برنامت را Show کنی با استفاده از تابع SenKeys کلید های Alt+F4 رو فشار دهی تا پنجره مای کامپیوتر بسته شه.

saeedzx
جمعه 03 مهر 1388, 10:33 صبح
دوستان من می خوام اصلاً پنجر مای کامپیوتر نشان داده نشده

shedayat
جمعه 03 مهر 1388, 11:38 صبح
دوستان من می خوام اصلاً پنجر مای کامپیوتر نشان داده نشده

اگه Interval تایمرت 1 باشه فقط برای یه لحظه مای کامپیوتر رو نشون می ده و بعد سریع می بندش. :قهقهه: کاربر دیگه هیچ کاری نمی تونه بکنه.:چشمک: