I need my C code Exe to exit only using Cntrol + C and the cross should be disabled. Can anyone help me with this.


Recommended Answers

All 7 Replies

More details please. What compiler and OS and is this a GUI program or command line?

-The compiler is VC++.
-Operating system is windows server 2003/ windows NT.
-This is a command line program.

#define _WIN32_WINNT 0x0502

#include <stdio.h>
#include <windows.h>

int main ( void )
  HWND console = GetConsoleWindow();
  HMENU menu = GetSystemMenu ( console, FALSE );

  if ( DeleteMenu ( menu, SC_CLOSE, MF_BYCOMMAND ) )
    puts ( "Can't close with the X button" );
    puts ( "Unable to remove X button" );

  return 0;

Dear Narue,

Thanks for your response. Possible this would solve my problem. But i am struck up at the inital levels for incorporating this code into my main code . I tried to run the code provided by you. For compiling it, I needed to added #if (_WIN32_WINNT >= 0x0500)
BOOL WINAPI GetConsoleDisplayMode(LPDWORD);
HWND WINAPI GetConsoleWindow(void);
to wincon.h. The dummy code is compiling and running fine but I when I incorporated the same code inside my main code(on the same machine but inside a different project), i am getting the compilation warning:
'GetConsoleWindow' undefined; assuming extern returning int

Possibly I am missing something while linking. Plz guide me what exactly should i search for in the project settings or else where.


Did you #include <windows.h> in your project?

yes I have included windows.h.

It has worked. I was making a silly mistake of include the #define _WIN32_WINNT 0x0500 after #include <windows.h>.

Thanks a lot for help.


Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.