PDA

View Full Version : بستن برنامه های اضافی



Tasnim
چهارشنبه 22 مهر 1388, 17:09 عصر
سلام دوستان
میخاستم بدونم چطور میشه تمام برنامه هایی که کاربر اجرا کرده بندم ، انگار که ویندوز تازه بالا اومده؟
ممنون

merced
چهارشنبه 22 مهر 1388, 18:13 عصر
function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall; export;
var
Title, ClassName: array[0..255] of char;
begin
Result := True;
GetWindowText(wHandle, Title, 255);
GetClassName(wHandle, ClassName, 255);
if IsWindowVisible(wHandle) then
lb.Items.Add(string(Title) ); //string(ClassName)
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc, Integer(Listbox1));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(IntToStr(FindWindow(nil, pchar( ListBox1.Items
[ListBox1.ItemIndex]))));
SendMessage(FindWindow(nil, pchar( ListBox1.Items
[ListBox1.ItemIndex])),WM_CLOSE,0,0)
end;

با زدن دكمه اول ليست پنجره هاي باز رو نشون ميده
با زدن دكمه دوم پنجره انتخاب شده رو مي بنده
مي توني تو يه حلقه اين كار رو انجام بدي


ضمناً دو تا از پنجره ها taskbar و Desktop ‌هستند

hadiaj168
چهارشنبه 22 مهر 1388, 18:20 عصر
سلام
این سورس (http://barnamenevis.org/forum/attachment.php?attachmentid=7972&d=1176916089) مثل task manager عمل میکنه.تمامی پروسس های در حال اجرا رو میگیره و در یک لیست باکس نشون میده ، حالا شما به جای نمایش پروسسها اونا رو با یه حلقه کیل کن کد کیل کردن هم تو خودش هست.

Tasnim
چهارشنبه 22 مهر 1388, 18:32 عصر
ببنید دوستان من میخام این کار بصورت اتوماتیک انجام بشه. و برنامه های غیر از برنامه های ویندوز رو ببنده.
انگار که ویندوز الان بالا اومده

Mahmood_M
چهارشنبه 22 مهر 1388, 19:21 عصر
ببنید دوستان من میخام این کار بصورت اتوماتیک انجام بشه. و برنامه های غیر از برنامه های ویندوز رو ببنده.
انگار که ویندوز الان بالا اومده
اتوماتیک یعنی چطوری ؟ به هر حال باید در برنامه این کار رو انجام بدید ، لطفا در مورد سئوالتون توضیح بدید که دوستان هم بهتر بتونند جواب بدن ...

...

merced
چهارشنبه 22 مهر 1388, 19:29 عصر
ببنید دوستان من میخام این کار بصورت اتوماتیک انجام بشه. و برنامه های غیر از برنامه های ویندوز رو ببنده.
انگار که ویندوز الان بالا اومده
در هر حال ويندوز با يه سري برنامه تو start up اجرا مي شه.
كدي كه به شما دادم پنجره هاي موجود رو ميگه . شما ببندشون
حالا ممكنه يه برنامه رو كاربر فرستاده باشه تو System Tray

برنامه دوستمون هم جالبه. شما مي توني به برنامه ات ليست process‌ هاي معمولي رو بگي و هر وقت خواستي پراسس هايي كه تو اون ليست نيستند رو حذف كني

چيز اتومات ي وجود نداره . شما خودكارش مي كني.

يه راه ديگه هم هست كه فكر نكنم جالب باشه. شايد هم عملي نباشه .
يه سرويس سيستمي بنويسي كه ويندوز رو برات Log off و بعد Log On كنه :متفکر:

vcldeveloper
چهارشنبه 22 مهر 1388, 21:14 عصر
ببنید دوستان من میخام این کار بصورت اتوماتیک انجام بشه. و برنامه های غیر از برنامه های ویندوز رو ببنده.
شما در شرایط عادی فقط می تونید Processهایی را ببندید که با مجوزهای هم سطح یا پایین تر از سطح Process شما در حال اجرا باشند؛ یعنی اگر Process شما با مجوز Standard User اجرا میشه، نمیتونه بیاد Processهایی که با مجوز Admin اجرا میشند رو Kill کنه!


كدي كه به شما دادم پنجره هاي موجود رو ميگه . شما ببندشون
حالا ممكنه يه برنامه رو كاربر فرستاده باشه تو System Tray
هر Process لزوما پنجره نداره. خیلی از Processها بصورت Service اجرا میشند، و اصلا پنجره ایی برای تعامل با کاربر ندارند.

برای دریافت اطلاعات Processهای در حال اجرا، و در صورت لزوم، Kill کردن یک Process، می تونید از کلاس توضیح داده شده در لینک زیر استفاده کنید:
http://vcldeveloper.com/2009/09/11/how-to-use-tprocessinfo/

Tasnim
پنج شنبه 23 مهر 1388, 09:19 صبح
با تشکر از دوستان
ببنيد کاري که من نيخام انجام بدم اينه که تمام برنامه هايي رو که کاربر اجرا کرده ببندم. و به بقيه برنامه هاي ويندوز کاري نداشته باشم.
ممنون