PDA

View Full Version : چگونه برنامه ای رو از لیست پروسسTask Manager حذف کنیم



Morpheus
جمعه 10 آبان 1387, 11:35 صبح
سلام دوستان من دنبال تاپیکی در مورد سوال وجواب در مورد وی بی میگشتم که این سوال رو توش مطرح کنم اما متاسفانه چنین تاپیکی به چشمم نخورد
من کدی رو پیدا کرده بودم که بانوشتن اون در یک ماژول باعث میشد وقتی برنامه رو تو محیط وی بی اجرا می کنیم برنامه تو لیست پروسسTask Manager نیاد اما هنگامی که برنامه به فایل اجرایی تبدیل میشد باز بعد از اجرا در لیست پروسسTask Manager قرار می گرفت. حالا می خواستم ببینم شما دوستان کد یا راه حلی برای این موضوع سراغ دارین
اینم کدی که عرض کرده بودم:

Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0

Public Sub Hide_Program_In_CTRL_ALT_Delete ()
Dim pid As Long
Dim reserv As Long
pid = GetCurrentProcessId ()
regserv = RegisterServiceProcess (pid, RSP_SIMPLE_SERVICE)
End Sub

ممنون میشم اگر پاسخ بدین:لبخندساده:

hamed aj
جمعه 10 آبان 1387, 12:17 عصر
با سلام

فکر کنم در همین سایت در این باره مطلب زیاد باشه

این رو امتحان کنید






Private Type bkh
flag As Long
psz As Long
lParam As Long
pt As Long
vkDirection As Long
End Type

Private Declare Function VirtualAllocEx Lib "kernel32.dll" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpAddress As Any, ByRef dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32.dll" () As Long
Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Sub Hide_Process(Name As String)

Dim pName As Long
Dim pType As Long
Dim l As Long
Dim Tid As Long
Dim hTid As Long
Dim pid As Long
Dim h As Long
Dim i As Long
Dim hProcess As Long
Dim f As bkh
Dim s As String
Dim bkh() As Byte

h = FindWindow(vbNullString, "Windows Task Manager")
KillTimer h, 0
h = FindWindowEx(h, 0, "#32770", vbNullString)
h = FindWindowEx(h, 0, "SysListView32", vbNullString)

If h = 0 Then
Exit Sub
End If

f.flag = 8 Or &H20
Call GetWindowThreadProcessId(h, pid)
hProcess = OpenProcess(1082, 0, pid)
bkh = StrConv(Name, vbFromUnicode)
pName = VirtualAllocEx(hProcess, 0, Len(Name) + 1, &H1000, 4)
WriteProcessMemory hProcess, pName, VarPtr(bkh(0)), Len(Name), l
f.psz = pName
pType = VirtualAllocEx(hProcess, 0, Len(f), &H1000, 4)
WriteProcessMemory hProcess, pType, VarPtr(f.flag), Len(f), l
i = SendMessage(h, &H1000 + 13, 0, pType)
If i <> -1 Then
SendMessage h, &H1000 + 8, i, 0
End If
VirtualFreeEx hProcess, pType, Len(f), &H8000
VirtualFreeEx hProcess, pName, LenB(Name) + 1, &H8000

End Sub

Private Sub Timer1_Timer()
Hide_Process CStr(App.EXEName & ".exe")
End Sub

Morpheus
جمعه 10 آبان 1387, 13:31 عصر
اینو امتحان کردم
به نکته ی جالب توجهی برخوردم داخل سیستم خودم وقتی فایل اجرای رو Run کردم توی لیست پروسسTaskmgr نمیاد اما همین فایل اجرایی رو به دوستم دادم .اما در سیستم اون توی لیست پروسسTaskmgr می آمد.
راه حل به نظرتون چیه؟؟؟

Morpheus
جمعه 10 آبان 1387, 18:57 عصر
ممنون دوست عزیز مشکل رو بر طرف کردم.
یک سوال دیگه حالا چطوری می توان این فایل اجرایی رو از لیست Aplication درTaskmgr پنهان کرد؟

ƒxmahdi
جمعه 10 آبان 1387, 21:18 عصر
Private Sub Form_Load()
App.TaskVisible = False
End Sub

محمد زارع
سه شنبه 10 دی 1387, 23:53 عصر
ممنون دوست عزیز مشکل رو بر طرف کردم.


دوست عزیز، البته از اینکه موفق به حل مشکل شدی خوشحالم، ممنون میشم اگه راه حلتون رو در اختیار سایرین هم قرار بدید.:تشویق:

با تشکر

3dboy1
چهارشنبه 11 دی 1387, 06:46 صبح
با سلام
دوست عزيز بهتر بود كه اول جستجو مي كرديد