Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Making a program uncloseable

  1. May 7, 2008 #1
    I need to make a certain client program uncloseable(the best option). Or have it start itself every time someone closes it.
    Any help?
     
  2. jcsd
  3. May 9, 2008 #2

    HallsofIvy

    User Avatar
    Staff Emeritus
    Science Advisor

    HOW would someone close it? You should be able to change the default frame so that it no longer has the cancel button.
     
  4. May 9, 2008 #3

    robphy

    User Avatar
    Science Advisor
    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?
     
  5. May 9, 2008 #4
    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.
     
  6. May 9, 2008 #5

    symbolipoint

    User Avatar
    Homework Helper
    Education Advisor
    Gold Member

    Your objective is a very bad idea.
     
  7. May 9, 2008 #6

    NoTime

    User Avatar
    Science Advisor
    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.
     
  8. May 9, 2008 #7

    NoTime

    User Avatar
    Science Advisor
    Homework Helper

    I'll agree, but some places do this.
     
  9. May 9, 2008 #8

    jim mcnamara

    User Avatar
    Science Advisor
    Gold Member

    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.
     
  10. May 9, 2008 #9

    NoTime

    User Avatar
    Science Advisor
    Homework Helper

    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.
     
  11. May 10, 2008 #10
    I always ask myself the same problem. If you get something on this, please submit it (the link or some other source)! Thank you!
     
  12. May 10, 2008 #11

    CRGreathouse

    User Avatar
    Science Advisor
    Homework Helper

    Writing control systems for nuclear missiles, eh? :uhh:
     
  13. May 10, 2008 #12

    Borek

    User Avatar

    Staff: Mentor

    At least under Windows something like

    Code (Text):

    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 :)
     
  14. May 10, 2008 #13
    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"?
     
  15. May 10, 2008 #14

    Borek

    User Avatar

    Staff: Mentor

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

    [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.
     
  16. May 11, 2008 #15
    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...
     
  17. May 12, 2008 #16
    Pain in the a... :biggrin:
     
  18. May 12, 2008 #17

    CRGreathouse

    User Avatar
    Science Advisor
    Homework Helper

    Pita, n.
    1. "An often round, brown, wheat flatbread made with yeast."
    2. People Ingesting Tasty Animals?
    3. See zeitghost, above. :rolleyes:
     
  19. May 12, 2008 #18
    Changing a active directory setting in a windows domain will do this. The user profile is tied to one program which is ran when the user logs in. When the program is closed, the user is logged out. This is very common in some businesses.

    For example a denist that uses a vertical app for his whole business.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Making a program uncloseable
  1. Making a packet (Replies: 7)

Loading...