[taskmgr]
authorGregor Schneider <grschneider@gmail.com>
Tue, 29 Dec 2009 17:55:44 +0000 (17:55 +0000)
committerGregor Schneider <grschneider@gmail.com>
Tue, 29 Dec 2009 17:55:44 +0000 (17:55 +0000)
- Allow task manager to activate and restore a previous instance when the mutex already exists
- Make application title identical to the window title for languages where it wasn't

svn path=/trunk/; revision=44801

reactos/base/applications/taskmgr/lang/en-US.rc
reactos/base/applications/taskmgr/lang/fr-FR.rc
reactos/base/applications/taskmgr/lang/ja-JP.rc
reactos/base/applications/taskmgr/lang/ko-KR.rc
reactos/base/applications/taskmgr/lang/nl-NL.rc
reactos/base/applications/taskmgr/lang/ro-RO.rc
reactos/base/applications/taskmgr/lang/sk-SK.rc
reactos/base/applications/taskmgr/lang/uk-UA.rc
reactos/base/applications/taskmgr/lang/zh-CN.rc
reactos/base/applications/taskmgr/taskmgr.c

index 75e6727..dcaa194 100644 (file)
@@ -165,7 +165,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "ReactOS Task Manager"
+CAPTION "Task Manager"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
index 41a95c6..6f06075 100644 (file)
@@ -165,7 +165,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "Gestionnaire des tâches ReactOS"
+CAPTION "Gestionnaire des tâches"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
index 3cb440a..001e8a6 100644 (file)
@@ -165,7 +165,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "ReactOS \83^\83X\83\83}\83l\81[\83W\83\83"
+CAPTION "\83^\83X\83\83}\83l\81[\83W\83\83"
 MENU IDR_TASKMANAGER
 FONT 9, "MS UI Gothic"
 BEGIN
index 674aac5..e446bc6 100644 (file)
@@ -168,7 +168,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "ReactOS ÀÛ¾÷ °ü¸®ÀÚ"
+CAPTION "ÀÛ¾÷ °ü¸®ÀÚ"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -523,7 +523,7 @@ END
 
 STRINGTABLE DISCARDABLE
 BEGIN
-    IDS_APP_TITLE           "ÀÛ¾÷ °ü¸®ÀÚ"
+    IDS_APP_TITLE           "ÀÛ¾÷ °ü¸®ÀÚ" 
     IDC_TASKMGR             "ÀÛ¾÷ °ü¸®ÀÚ"
     IDS_IDLE_PROCESS        "System Idle Process"
 END
index d7b769d..3ce8e52 100644 (file)
@@ -165,7 +165,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "Reactos Taakbeheer"
+CAPTION "Taakbeheer"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
@@ -523,7 +523,7 @@ END
 
 STRINGTABLE DISCARDABLE
 BEGIN
-    IDS_APP_TITLE           "Reactos Taakbeheer"
+    IDS_APP_TITLE           "Taakbeheer"
     IDC_TASKMGR             "Taakbeheer"
     IDS_IDLE_PROCESS        "Niet-actieve systeemprocessen"
 END
index 788e987..9509c87 100644 (file)
@@ -165,7 +165,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "Gestionarul de activități ReactOS"
+CAPTION "Gestionarul de activități"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
index 3d3b4fc..da93d37 100644 (file)
@@ -164,7 +164,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "Správca úloh systému ReactOS"
+CAPTION "Správca úloh systému"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
index 41737ad..f983976 100644 (file)
@@ -165,7 +165,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "Äèñïåò÷åð çàâäàíü ReactOS"
+CAPTION "Äèñïåò÷åð çàâäàíü"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
index bb62579..7423300 100644 (file)
@@ -173,7 +173,7 @@ IDD_TASKMGR_DIALOG DIALOGEX DISCARDABLE  0, 0, 264, 246
 STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |
     WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
     WS_THICKFRAME
-CAPTION "ReactOS ÈÎÎñ¹ÜÀíÆ÷"
+CAPTION "ÈÎÎñ¹ÜÀíÆ÷"
 MENU IDR_TASKMANAGER
 FONT 8, "MS Shell Dlg"
 BEGIN
index e0ff5c2..3f8bcbd 100644 (file)
@@ -55,8 +55,27 @@ int APIENTRY wWinMain(HINSTANCE hInstance,
 
     /* check wether we're already running or not */
     hMutex = CreateMutexW(NULL, TRUE, L"taskmgrros");
-    if ((!hMutex) || (GetLastError() == ERROR_ALREADY_EXISTS))
+    if (hMutex && GetLastError() == ERROR_ALREADY_EXISTS)
+    {
+        /* Restore existing taskmanager and bring window to front */
+        /* Relies on the fact that the application title string and window title are the same */
+        HWND hTaskMgr;
+        TCHAR szTaskmgr[128];
+
+        LoadString(hInst, IDS_APP_TITLE, szTaskmgr, sizeof(szTaskmgr)/sizeof(TCHAR));
+        hTaskMgr = FindWindow(NULL, szTaskmgr);
+
+        if (hTaskMgr != NULL)
+        {
+            SendMessage(hTaskMgr, WM_SYSCOMMAND, SC_RESTORE, 0);
+            SetForegroundWindow(hTaskMgr);
+        }
+        return 0;
+    }
+    else if (!hMutex)
+    {
         return 1;
+    }
 
     /* Initialize global variables */
     hInst = hInstance;