View Full Version : مخفي کردن پروسس از ليست پروسس هاي Task Manager !
GhAeM
2 October 2005, 12:27 PM
1- اين دستورات رو به برنامه اضافه كنيد :
فرم creat
setwindowlong(application.Handle,gwl_exstyle,ws_ex _toolwindow);
فرم close
action:=caNone;
form1.Hide;
وقتي برنامه رو اجرا ميكني متوجه ميشي كه توي تسك بار نيست و ولي تو تسك منيجر هستش ولي وقتي برنامه رو ميبندي ميبيني كه برنامه در حال اجراست اما نه در تسك بار نه در تسك منيجر ديديه نميشه!
Dokht Esmati
2 October 2005, 03:59 PM
آقای غفوری ، فکر می کنم کدهایی که شما نوشتید ، دقیقن به دردِ ایشون نمیخوره.
برای اینکه یک برنامه در لیستِ Task Manager نمایش داده نشه ، باید به یک Service تبدیل بشه.
یعنی دیگه تهتِ عنوانِ Application اجرا نشه.
من خودم تاحالا در این زمینه کار نکردم.
برای این کار در موردِ "creating a windows service" سرچ کنید. و کلی مقاله در این زمینه پیدا می کنید.
بهتره از مقاله های msdn هم استفاده کنید.
GhAeM
2 October 2005, 05:40 PM
بالاخره شما صاحب اينجا هستيد و صاحب اختاير:
ولي از كجا ميدونيد كه چيزهايي كه من نوشتم بدرد ايشون نميخوره!
من خواستم كه يه اطلاعات كلي داشته باشن كه 100% بدردشون ميخوره ولي ميتونن با همون سه چهار خط اول جواب بگيرن
با تشكر
Dokht Esmati
3 October 2005, 02:36 AM
از كجا ميدونيد كه چيزهايي كه من نوشتم بدرد ايشون نميخوره!
جوابی که برای سوالِ یک دادید کاری رو که دوستمون می خواد انجام نمیده. (برنامه از لیستِ Task Manager هزف نمیشه.)
Programmer
3 October 2005, 11:09 AM
با سلام خدمت دوستان گرامی
آقای دخت عصمتی ممنون که این فروم رو به من پیشنهاد دادید و به سوالات من جواب دادید.
آقای علی غفوری از اینکه به این سرعت جواب منو دادید ممنونم.
امیدوارم همینطور شاداب و با نشاط کارتون رو در این فروم ادامه بدید.
از هر دوی شما ممنونم . با توجه به راهنمایی های شما دوباره برنامه ها رو تست میکنم ببینم جواب میده یا نه.
___________________________________
کسی نیک بیند به هر دو سرای
که نیکی رساند به خلق خدای
eblis1981
5 October 2005, 08:51 PM
برای مخفی کردن یک پراسس از لیست task manager میتونید از کدهای زیر استفاده کنید:
البته تو ویندوزهای NT Base کار نمیکنه...
unit Unit1;
Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class (TForm)
Button1 : TButton;
procedure FormDestroy (Sender: TObject);
procedure FormCreate (Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1 : TForm1;
implementation
{$R *.DFM}
const
RSPSIMPLESERVICE = 1;
RSPUNREGISTERSERVICE = 0;
function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord;
stdcall; external 'KERNEL32.DLL';
procedure TForm1.FormDestroy (Sender: TObject);
begin
RegisterServiceProcess (GetCurrentProcessID, RSPUNREGISTERSERVICE)
end;
procedure TForm1.FormCreate (Sender: TObject);
begin
RegisterServiceProcess (GetCurrentProcessID, RSPSIMPLESERVICE)
end;
end.
Programmer
6 October 2005, 10:06 AM
با سلام خدمت دوستان گرامی
قبلا میخواستم از این کد استفاده کنم ولی خطای زمان اجرا میده. خطا
__________________________________________________ _________________________________
The procedure entry point RegistrServiceProcess could not be located in the dynamic link library KERNEL32.DLL
__________________________________________________ _________________________________
آخه چرا نقطه شروع پروسجر در این dll یافت نمیشه !!!
eblis1981
6 October 2005, 01:33 PM
احتمالا تو ویندوز ایکس پی اجراش کردی kernel32.dll ویندوز xp این تابع رو نداره...
GhAeM
6 October 2005, 01:45 PM
احتمالا تو ویندوز ایکس پی اجراش کردی kernel32.dll ویندوز xp این تابع رو نداره...
همونطور كه ميدونيد الان اكثرا از پلت فرم NT استفاده ميكنن . لطفا اگه راهي براي اين مورد داريد راهنمايي كنيد.
eblis1981
6 October 2005, 05:53 PM
این هم برای ویندوزهای NT Base :
Application.Initialize;
Application.Title := '';
Application.CreateForm(TForm1, Form1);
Application.Run;
به project->view source رفته و خط application.title رو همانند فوق به Source برنامه اضافه کنید.
روش فوق اسم برنامه رو در Task Manager حذف میکنه
البته تو لیست Process ها کماکان اسم فایل exe هستش که اونرو دیگه نمیشه کاریش کرد.
:icon_cool
Dokht Esmati
7 October 2005, 03:00 PM
اونرو دیگه نمیشه کاریش کرد.
چرا میشه.
شما باید برنامه رو به سورتِ سرویس بنویسید.
تو اینترنت سرچ کنید.
vBulletin v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.