# Making a program uncloseable

I need to make a certain client program uncloseable(the best option). Or have it start itself every time someone closes it.
Any help?

HallsofIvy
Homework Helper
HOW would someone close it? You should be able to change the default frame so that it no longer has the cancel button.

robphy
Homework Helper
Gold Member
Although one might make the GUI inaccessible, one could still terminate the process (kill on linux, or task manager on Windows), if you have sufficient permission to use those tools.

One could try to run the process with higher level permissions... and maybe another program which periodically checks to see if the desired process is still running... restarting it if weren't.

Can you be more specific about what you want to run?
and who you want to prevent from stopping it?

Er... I want people to be unable to exit the program from its GUI or window or whatever...
And I'll also go look how to disable the task manager.

symbolipoint
Homework Helper
Gold Member

NoTime
Homework Helper
If you wrote the program or have the source code you can do it for most user activity.

The syntax varies by programming language.
The generalized solution:
Setup a callback function on the close button.
Issue a cancel message when the function gets control.

NoTime
Homework Helper

I'll agree, but some places do this.

jim mcnamara
Mentor
goto phrack.com and search on invisible - there are ways to not appear in the process list in Windows. The suggestions about callbacks on some types of windows messages are good (called hooks usually). You will also have to make the program start on bootup. You are left with the problem of a user deleting the .exe, and rebooting. I'll leave it here.

A lot of this stuff is the stuff of rootkits. So most of first think very unkindly of this whole deal. I'm one of 'em.

Try phrack.

NoTime
Homework Helper
A lot of this stuff is the stuff of rootkits. So most of first think very unkindly of this whole deal. I'm one of 'em.
I guess my opinion is that anyone capable of writing an operational hook isn't going to need to ask. It is simply a non trivial task to write one that doesn't blue screen you.

The idea has legitimate uses, say like a sales app on dedicated terminal or even the "Did you really want to quit without saving" message. In the former case you probably want to disallow the standard base window decorations like min, max and the close buttons.

Callbacks are offered by the instantiation of a GUI control (the hook is hidden in the class).

Hooks usually imply a direct connection into the O/S message queue (not unique to Windows) and often have callbacks.

I need to make a certain client program uncloseable(the best option). Or have it start itself every time someone closes it.
Any help?

I always ask myself the same problem. If you get something on this, please submit it (the link or some other source)! Thank you!

CRGreathouse
Homework Helper
Writing control systems for nuclear missiles, eh? :uhh:

Borek
Mentor
At least under Windows something like

Code:
switch (msg)
{
case WM_QUIT: return 0;

(...)

will disable close button. It doesn't mean program can't be closed, but it can become PITA :)

At least under Windows something like

Code:
switch (msg)
{
case WM_QUIT: return 0;

(...)

will disable close button. It doesn't mean program can't be closed, but it can become PITA :)
Look can you be a more clear!
I wrote i program in C. Am i gonne introduce that code?
Another question is what does mean "PITA"?

Borek
Mentor
As for PITA - you better Google it. It has nothing to do with programming

[micorosoft windows specific]Each window has a window procedure, where messages/events send by the system are handled. If a window is sent WM_QUIT message it should close itself, it should the same receiving WM_CLOSE message. You don't have to handle these messages by yourself, standard procedure is to pass handling to DefWindowProc() which will do the trick. If you will not pass the message, users have problem closing window/program.[/microsoft windows specific]

Even if your program is a console application, there is a hidden window procedure, you just don't write nor controll it by yourself.

Note: I have not wrote native Windows program for ages, so my memory is a little bit shady on details. But the generall idea should be correct.

No rootkits, I promise :) And NoTime is correct - if I could write a hook I wouldn't be asking here, would I... :)
Just a VPN client, a WebServer and the bunch that some people are not nice enough to leave alone to do their job.
I think I can make the Server Service Automatic, which should mean that you cant stop it from the GUI of the program, right?
And I think I can set the permissions of the other services so, that they can't be closed from the troublesome user.
My question is - are the permissions going to persist on restart?
OS is WinXP Pro SP2

And no, I could not find what PITA means...

Pain in the a...

CRGreathouse
Homework Helper
Pita, n.