با سلام ؛
1) نگو جستجو کن .
2) چطوری میتونم برنامه ای داشته باشم که به هیچ وجه من الوجوح نشه بستش ؟
متشکرم .
با سلام ؛
1) نگو جستجو کن .
2) چطوری میتونم برنامه ای داشته باشم که به هیچ وجه من الوجوح نشه بستش ؟
متشکرم .
چنین کاری ممکن نیست، چون بهرحال از طریق Task Manager -> Processes قابل بستن است. یک کار ساده اینه که امکان باز کردن Task Manager رو از کاربر بگیری:چطوری میتونم برنامه ای داشته باشم که به هیچ وجه من الوجوح نشه بستش ؟
procedure DisableCtrAltDel(Val: Boolean);
var
MyReg: TRegistry;
begin
MyReg := TRegistry.Create;
with MyReg do
begin
RootKey := HKEY_CURRENT_USER;
OpenKey('\Software\Microsoft\Windows\CurrentVe rsion\Policies\System', True);
if Val then
reg.WriteString('DisableTaskMgr', '1')
else
reg.DeleteValue('DisableTaskMgr');
reg.CloseKey;
end;
end;
// To enable Ctr+Alt+Del:
procedure TForm1.Button1Click(Sender: TObject);
begin
DisableCtrAltDel(True);
end;
// To disable Ctr+Alt+Del:
procedure TForm1.Button1Click(Sender: TObject);
begin
DisableCtrAltDel(False);
end;
سلام
بازم میشه بستش ! Kill میکنی با یک برنامه دیگه !
برنامه ای هم که هیچجور نشه بستش رو فقط کافیه حافظش رو خالی کنی بسته میشه
امکانش نیست ! ولی میتونی بگی تا خواست بسته شه یکی دیگه ازش باز شه ( برای اینکه به برنامت رو دست نزند 2 تایی برنامه رو ران کن یکیش تایمر داشته باشه تا اون هست کار نکنه تا رفت بیاد قبل از Create هم اینو بذار که Ram رو نگیره ( اگه خیلی لازم بود ))
یک کار دیگه !Hook کن و Message مربوط به Close نذار به برنامت برسه
بای
اقا اینم یک چیز زیرمیزی : اسم فایلت رو بزار winlogon بعدش ببین End Process میشه یا نه :موفق:
من که خودم خیلی وقته این کار رو میکنم × فکر کنم به این دلیل این اتفاق میفته که سرویس winlogon توی پروسس ها هستش و این رو هم فکر میکنه همونه ....
ننویسیم:
بنویسیم:به هیچ وجه من الوجوح
به هیچ وجه من الوجوه :موفق:
چشم ٬ شما این یک بار رو ببخشید . من Task Manager رو از روی سرورم قفل کردم و امکان اجرای برنامه های جانبی رو هم از کاربر گرفتم . دیگه مشکلی نیست ٬ فقط کافیه یک سرویس جدید به ویندوز اضافه کنم تا موقع شروع کار ویندوز برنامه من هم اجرا بشه .به هیچ وجه من الوجوه
متشکرم از همه رفقا . :flower:
jirjirak درست میگه!
اسم برنامه ات رو به winlogon.exe یا lssas.exe تغییر بده دیگه از تو task manager هم بسته نمیشه!
کی گفته بسته نمیشه؟
اون برنامه WinLogon.exe که مال خود ویندوز است با Access Right سیستم اجرا میشه، در حالیکه برنامه فرضی شما تحت حقوق دسترسی کاربر جاری اجرا میشود.
ولی ظاهرا ویندوز همشونو یه جور میبینه :sunglass:
سلام
اسمشو بذار NUL , PRN یا AU ببین چی میشه ! :strange:
بای
جناب کرامتی تست کنید میبینید که پروسسش بیرون انداخته نمیشه (EndProcceess نمیشه) و واسه اینکه بسته هم نشه توی OnQueryClose ....
میرهادی جان تشکرات تست میکنم
How to kill a process that wouldn't die through the TaskList dialog
1. Locate the process ID (make the "PID" column visible in the task list
2. open a command prompt
3. type "ntsd -p [PID]" without the quotes
4. You've just entered a low level debugger and you'll notice that you are now inside a breakpoint on that process that wouldn't die.
5. type "q" and ENTER to quit the debugger and the process will die along with it.
6. this works for services too.
فکر میکنم بقیه اش هم جالب باشه.
http://weblogs.asp.net/rosherove/arc...21/218212.aspx
با این تفاصیل هنوز هم فکر میکنید میشه برنامه صد در صد غیر قابل بستن داشت؟
البته راه آقای میرهادی هم به ذهنم رسید اگه بشه هر دو تا برنامه رو Synchrone نگه داشت به نظر مناسبه.
دلیل این امر بنابر دلیل عدم داشتن دسترسی لازم برای بستن پروسس مربوطه که در صفحه قبل توضیح دادم آن است که در لیست پروسس های شما ابتدا WinLogon.exe اصلی قرار دارد و سپس برنامه شما (ترتیب قرار گرفتن پروسس ها در لیست پروسسهای ویندوز بصورت "جدیدترین در انتها" است).جناب کرامتی تست کنید میبینید که پروسسش بیرون انداخته نمیشه (EndProcceess نمیشه)
برای تست این موضوع میتوانید در یک حلقه تمام پروسس های دارای نام WinLogon را ببندید. اولی (همانی که دارای نام کاربری System است) بسته نمیشود، اما برنامه شما بسته میشود.
این نکته را نیز در نظر داشته باشید که عدم توانایی بستن پروسس دارای نام WinLogon.exe محدودیتی است که توسط برنامه نویسان مایکروسافت در برنامه Rask Manager ویندوز در نظر گرفته شده است.
برای اثبات این موضوع در ضمیمه این پست یک برنامه که شبیه Task Manager ویندوز است را بهمراه سورس برایتان ضمیمه میکنم. پس از اجرای آن و مرتب کردن لیست پروسس ها بر حسب حروف الفبا سعی کنید برنامه خودتان که دارای نام WinLogon.exe است را توسط آن ببندید. خواهید دید که این کار به راحتی انجام میشود. :)
موفق باشید.
ntsd رو روش امتحان کردید؟
البته این برای Win2K است. برای WinXp,Win2003 راههای بسیار ساده تری هم هست.