Show exit prompt in Windows when run from console
authorJoseph C. Lehner <joseph.c.lehner@gmail.com>
Fri, 13 Jan 2017 10:22:57 +0000 (11:22 +0100)
committerJoseph C. Lehner <joseph.c.lehner@gmail.com>
Fri, 13 Jan 2017 10:29:58 +0000 (11:29 +0100)
main.c

diff --git a/main.c b/main.c
index 2830cf7f68c4443d2dd1cc5925e9a31c700e6c6e..66d7d806680424ac926fd3d1cc1344eb4373f9c9 100644 (file)
--- a/main.c
+++ b/main.c
@@ -104,6 +104,20 @@ void require_admin()
 
        fprintf(stderr, "Warning: failed to check administrator privileges\n");
 }
+
+void show_exit_prompt()
+{
+       DWORD pid;
+       HWND win = GetConsoleWindow();
+       if (!win || !GetWindowThreadProcessId(win, &pid)) {
+               return;
+       }
+
+       if (GetCurrentProcessId() == pid) {
+               printf("Press any key to exit\n");
+               getch();
+       }
+}
 #else
 void require_admin()
 {
@@ -139,6 +153,8 @@ int main(int argc, char **argv)
        char *windir = NULL;
        WSADATA wsa;
 
+       atexit(&show_exit_prompt);
+
        val = WSAStartup(MAKEWORD(2, 2), &wsa);
        if (val != 0) {
                win_perror2("WSAStartup", val);