![]() |
Anti End Task, not WM_Close?
To prevent WM_Close, I use
Code:
Try to click End Task with TaskManager, after several seconds, there will be an end task dialog then the app can be killed. How to prevent this? I just want to prevent End Task.
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin CanClose := false end; |
AW: Anti End Task, not WM_Close?
Call getsystemmetrics with SM_SHUTTINGDOWN and set CanClose to true in such a case.
BTW: Your app is not user friendly. However, in the end the user will always be able to close your application. It just takes a little more effort. |
AW: Anti End Task, not WM_Close?
Zitat:
edited :
Code:
The code is right?
SM_BASE = WM_USER + 1736 ;
SM_SHUTTINGDOWN = SM_BASE +2; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:=false; if (GetSystemMetrics (SM_SHUTTINGDOWN) <> 0) then CanClose:=false; end; |
AW: Anti End Task, not WM_Close?
Zitat:
Delphi-Quellcode:
Bernhard
if (GetSystemMetrics (SM_SHUTTINGDOWN) <> 0) then
CanClose := true; |
AW: Anti End Task, not WM_Close?
Zitat:
|
AW: Anti End Task, not WM_Close?
And what's the use of it? If I want to end your application I just will call ProcessTerminate and that's it. Even a normal user cab do this. He just has to switch to the process panel of the taskmanager. Users ain't silly.
|
AW: Anti End Task, not WM_Close?
Zitat:
|
AW: Anti End Task, not WM_Close?
Why hook ProcessTerminate? - You just need to hook OpenProcess.
But why do you do so? - Just create a process with Admin-Account and don't let the user get Admin-Rights and your process acts like it should, cause a Non-Admin can't terminate Processes from an Admin-Account. Or create a service. Bernhard |
AW: Anti End Task, not WM_Close?
Zitat:
|
AW: Anti End Task, not WM_Close?
Why do you need a not-closable Application?
Bernhard |
AW: Anti End Task, not WM_Close?
If I want to kill your application and you will not allow ist, I just pull the plug after the administrator has removed your application from auto run. Or can you prevent the user from pulling the plug with your application?
|
AW: Anti End Task, not WM_Close?
Man, just write a service if you need something the user cannot close. Even if the user closes the "client" part (e.g. a visible GUI), the service will continue to run. Let's assume for a second that you succeed in achieving your goal of an application that cannot be closed. No application is bug-free. Once the user encounters a bug and your application prevents the user from closing it, you'll have a bunch of angry users. Besides, with a hook such as the one you describe it's likely that you introduce more potential issues into the user's session ... i.e. affecting other processes as well.
I think you should elaborate on the problem you're trying to solve, because so far it indeed sounds iffy. So let's hear ... ;) |
AW: Anti End Task, not WM_Close?
I am making a security application for a policy. This app block unlisted/unwanted program from running (Admin/Guest Account). I hook in ring3, right now I have not implemented my app as a service/ring0, it's just a normal GUI app. I use ESET in my pc, Eset's GUI can be killed easily but eset's service is "self restarting" service. But.. I have not implemented yet my app as service. Making a service will consume more my time, maybe later I will working on it. So I just want to ask, is there any simple way to block End Task for GUI app?
|
AW: Anti End Task, not WM_Close?
It will be easier to implement a service rather than a application that can not be killed. Plus it would be the preferred way by Microsoft because that's why they introduced services. Hooks will strain the system. And if they are not properly implemented the application may influence other applications from running properly.
|
AW: Anti End Task, not WM_Close?
So, why do the users need administrative privileges? - You don't need any administrative privileges if you just use the computer and don't administrate it.
On top of that, Windows comes with a Software Policy Kit which allows you to block unwanted Programs by name and Hash. Your program can't do it in an better way. Those policies even apply to administrative accounts, if wanted. Bernhard |
AW: Anti End Task, not WM_Close?
Zitat:
Zitat:
Zitat:
Zitat:
Zitat:
But otherwise I can recommend ![]() Small note concerning TrustNoExe: the guy used a SSDT hook to see when images get loaded. Whenever something that was not allowed was about to be loaded, he'd exchange the section (aka MMF) handle with one of his own usermode executable. This way his executable could retrieve its "own" location (actually the one of the attempted execution) and display a nice message to the user. Simple but effective. |
AW: Anti End Task, not WM_Close?
Zitat:
Bernhard |
AW: Anti End Task, not WM_Close?
Zitat:
As an admin I considered it my duty to make the machines luser-proof. However, for XP MS offered (until recently, I think it was withdrawn) something like a kiosk mode. I.e. you could lock down an XP quite thoroughly. Would have to ask in the forum whether someone still has a copy around. I don't even recall the name of the tool, but it got "advertised" on heise.de. |
AW: Anti End Task, not WM_Close?
Zitat:
Zitat:
Bernhard |
AW: Anti End Task, not WM_Close?
Zitat:
|
AW: Anti End Task, not WM_Close?
|
AW: Anti End Task, not WM_Close?
Yes, meant this one.
Bernhard |
AW: Anti End Task, not WM_Close?
Zitat:
Zitat:
I guess by writing service, my problem easier to solve. Thanks for the mini-filter. Zitat:
Zitat:
I am still trying to block End Task, if I found the way, I'll post to this board :wink: |
AW: Anti End Task, not WM_Close?
Then search for all ways how to terminate a process and block them. The easiest way to do so is to block OpenProcess for all matters (and to handle OnCloseQuery). To let Windows shutdown, Windows is issuing a broadcast message on WM_ENDSESSION. After this message (and the check, that this message came from Windows and not from anybody else issuing WM_ENDSESSION to your window) your program needs to be terminatable.
Bernhard ADD: Which implies: If someone hooks GetSystemMetrics, and tells your program after issuing the WM_ENDSESSION-Message to your window, your process becomes terminateable even if Windows does not really shut down. |
AW: Anti End Task, not WM_Close?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz