From ff89b8ac95896e0dd404c4b4db58fc5d9bd5d396 Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Tue, 29 Dec 2009 17:55:44 +0000 Subject: [PATCH] [taskmgr] - 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 --- .../base/applications/taskmgr/lang/en-US.rc | 2 +- .../base/applications/taskmgr/lang/fr-FR.rc | 2 +- .../base/applications/taskmgr/lang/ja-JP.rc | 2 +- .../base/applications/taskmgr/lang/ko-KR.rc | 4 ++-- .../base/applications/taskmgr/lang/nl-NL.rc | 4 ++-- .../base/applications/taskmgr/lang/ro-RO.rc | 2 +- .../base/applications/taskmgr/lang/sk-SK.rc | 2 +- .../base/applications/taskmgr/lang/uk-UA.rc | 2 +- .../base/applications/taskmgr/lang/zh-CN.rc | 2 +- reactos/base/applications/taskmgr/taskmgr.c | 21 ++++++++++++++++++- 10 files changed, 31 insertions(+), 12 deletions(-) diff --git a/reactos/base/applications/taskmgr/lang/en-US.rc b/reactos/base/applications/taskmgr/lang/en-US.rc index 75e6727f32a..dcaa194527d 100644 --- a/reactos/base/applications/taskmgr/lang/en-US.rc +++ b/reactos/base/applications/taskmgr/lang/en-US.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/fr-FR.rc b/reactos/base/applications/taskmgr/lang/fr-FR.rc index 41a95c6136f..6f060750126 100644 --- a/reactos/base/applications/taskmgr/lang/fr-FR.rc +++ b/reactos/base/applications/taskmgr/lang/fr-FR.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/ja-JP.rc b/reactos/base/applications/taskmgr/lang/ja-JP.rc index 3cb440a12f8..001e8a64a36 100644 --- a/reactos/base/applications/taskmgr/lang/ja-JP.rc +++ b/reactos/base/applications/taskmgr/lang/ja-JP.rc @@ -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 ƒ^ƒXƒN ƒ}ƒl[ƒWƒƒ" +CAPTION "ƒ^ƒXƒN ƒ}ƒl[ƒWƒƒ" MENU IDR_TASKMANAGER FONT 9, "MS UI Gothic" BEGIN diff --git a/reactos/base/applications/taskmgr/lang/ko-KR.rc b/reactos/base/applications/taskmgr/lang/ko-KR.rc index 674aac55557..e446bc6bab4 100644 --- a/reactos/base/applications/taskmgr/lang/ko-KR.rc +++ b/reactos/base/applications/taskmgr/lang/ko-KR.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/nl-NL.rc b/reactos/base/applications/taskmgr/lang/nl-NL.rc index d7b769daf03..3ce8e52acc6 100644 --- a/reactos/base/applications/taskmgr/lang/nl-NL.rc +++ b/reactos/base/applications/taskmgr/lang/nl-NL.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/ro-RO.rc b/reactos/base/applications/taskmgr/lang/ro-RO.rc index 788e987b91f..9509c87400c 100644 --- a/reactos/base/applications/taskmgr/lang/ro-RO.rc +++ b/reactos/base/applications/taskmgr/lang/ro-RO.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/sk-SK.rc b/reactos/base/applications/taskmgr/lang/sk-SK.rc index 3d3b4fc3775..da93d37d45b 100644 --- a/reactos/base/applications/taskmgr/lang/sk-SK.rc +++ b/reactos/base/applications/taskmgr/lang/sk-SK.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/uk-UA.rc b/reactos/base/applications/taskmgr/lang/uk-UA.rc index 41737ad8ab8..f983976ef14 100644 --- a/reactos/base/applications/taskmgr/lang/uk-UA.rc +++ b/reactos/base/applications/taskmgr/lang/uk-UA.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/lang/zh-CN.rc b/reactos/base/applications/taskmgr/lang/zh-CN.rc index bb62579df77..7423300d5c9 100644 --- a/reactos/base/applications/taskmgr/lang/zh-CN.rc +++ b/reactos/base/applications/taskmgr/lang/zh-CN.rc @@ -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 diff --git a/reactos/base/applications/taskmgr/taskmgr.c b/reactos/base/applications/taskmgr/taskmgr.c index e0ff5c23628..3f8bcbd9a4a 100644 --- a/reactos/base/applications/taskmgr/taskmgr.c +++ b/reactos/base/applications/taskmgr/taskmgr.c @@ -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; -- 2.17.1