Remove all hardcode english phrases from the source code and add the phrases to the resource file.

svn path=/trunk/; revision=14355
This commit is contained in:
Klemens Friedl 2005-03-27 20:01:18 +00:00
parent 03a5f16ed9
commit 0607c67b68
12 changed files with 608 additions and 165 deletions

View file

@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Deutsch (Austria)
// resources by Klemens Friedl frik85 at hotmail dot com http://www.reactos.net.tc
// Deutsch
// resource file by Klemens Friedl (frik85@reactos.at; http://frik85.reactos.at)
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
@ -649,5 +649,63 @@ BEGIN
IDS_LICENSE "Dieses Programm ist kostenlos; Sie können es frei verteilen mit od. ohne Änderungen unter der GNU Lesser General Public License wie es von der Free Software Foundation veröffentlicht wurde; entweder Version 2.1 der Lizenz, oder eine spätere Version (ihrer Wahl).\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
END
#endif // Deutsch (Austria) resources by Klemens Friedl
STRINGTABLE DISCARDABLE
BEGIN
IDS_TAB_APPS "Anwendnungen"
IDS_TAB_PROCESSES "Prozesse"
IDS_TAB_PERFORMANCE "Systemleistung"
IDS_TAB_TASK "Anwendung"
IDS_TAB_STATUS "Status"
IDS_TAB_IMAGENAME "Name"
IDS_TAB_PID "PID"
IDS_TAB_USERNAME "Benutzername"
IDS_TAB_SESSIONID "Sitzungserkennung"
IDS_TAB_CPU "CPU-Auslastung"
IDS_TAB_CPUTIME "CPU-Zeit"
IDS_TAB_MEMUSAGE "Speicherauslastung"
IDS_TAB_PEAKMEMUSAGE "Veränd. der Speicherauslastung"
IDS_TAB_MEMDELTA "Maximale Speicherauslastung"
IDS_TAB_PAGEFAULT "Seitenfehler"
IDS_TAB_PFDELTA "Maximale Seitenfehler"
IDS_TAB_VMSIZE "Virtuelle Arbeitsspeichergröße"
IDS_TAB_PAGEDPOOL "Paged Pool"
IDS_TAB_NPPOOL "NP Pool"
IDS_TAB_BASEPRI "Basispri"
IDS_TAB_HANDLES "Handleanzahl"
IDS_TAB_THREADS "Threadanzahl"
IDS_TAB_USERPBJECTS "Benutzer-Objekte"
IDS_TAB_GDIOBJECTS "GDI-Objekte"
IDS_TAB_IOREADS "E/A (Lesen)"
IDS_TAB_IOWRITES "E/A (Schreiben)"
IDS_TAB_IOOTHER "E/A (Andere)"
IDS_TAB_IOREADBYTES "E/A-Bytes (Lesen)"
IDS_TAB_IOWRITESBYTES "E/A-Bytes (Schreiben)"
IDS_TAB_IOOTHERBYTES "E/A-Bytes (Andere)"
IDS_MENU_SELECTCOLUMNS "&Spalten auswählen..."
IDS_MENU_16BITTASK "&16-Bit-Tasks anzeigen"
IDS_MENU_WINDOWS "&Fenster"
IDS_MENU_LARGEICONS "&Große Symbole"
IDS_MENU_SMALLICONS "Kl&eine Symbole"
IDS_MENU_DETAILS "&Details"
IDS_MENU_ONEGRAPHALLCPUS "&Alle CPUs in einem Diagramm"
IDS_MENU_ONEGRAPHPERCPU "&Ein Diagramm pro CPU"
IDS_MENU_CPUHISTORY "&CPU Verlauf"
IDS_MENU_SHOWKERNELTIMES "&Kernel-Zeiten anzeigen"
IDS_CREATENEWTASK "Neuen Task erstellen"
IDS_CREATENEWTASK_DESC "Geben Sie Programme, Ordner, Dokumente oder Internetressourcen an, die geöffnet werden sollen."
IDS_MSG_ACCESSPROCESSAFF "Unable to Access or Set Process Affinity"
IDS_MSG_PROCESSONEPRO "Der Prozess muss eine Zugehörigkeit zu mindestens einem Prozessor aufweisen."
IDS_MSG_INVALIDOPTION "Ungültige Auswahl"
IDS_MSG_UNABLEDEBUGPROCESS "Unable to Debug Process"
IDS_MSG_WARNINGDEBUG "WARNUNG: Das Debuggen dieses Prozesses kann zu Datenverlust führen.\nSind Sie sicher, dass Sie diesen Prozess debuggen möchten?"
IDS_MSG_TASKMGRWARNING "Warnung vom Task-Manager"
IDS_MSG_WARNINGTERMINATING "WARNUNG: Das Abbrechen eines Prozesses kann zu\nunerwünschten Ergebnissen, einschließlich Datenverlust und\nSysteminstabilität, führen. Zustand und Daten des Prozesses\nwerden nicht mher gespeichert. Sind Sie sicher, dass Sie\nden Prozess abbrechen möchten?"
IDS_MSG_UNABLETERMINATEPRO "Unable to Terminate Process"
IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority"
IDS_MSG_WARNINGCHANGEPRIORITY "WARNUNG: Das Ändern der Prioritätsklasse dieses Prozesses\nkann zu unerwünschten Ergebnissen, einschl. Systeminstabilität, führen.\nSind Sie sicher, dass Sie ändern möchten?"
IDS_MSG_TRAYICONCPUUSAGE "CPU-Auslastung: %d%%"
END
#endif
/////////////////////////////////////////////////////////////////////////////

View file

@ -604,6 +604,66 @@ BEGIN
IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TAB_APPS "Applications"
IDS_TAB_PROCESSES "Processes"
IDS_TAB_PERFORMANCE "Performance"
IDS_TAB_TASK "Task"
IDS_TAB_STATUS "Status"
IDS_TAB_IMAGENAME "Image Name"
IDS_TAB_PID "PID"
IDS_TAB_USERNAME "Username"
IDS_TAB_SESSIONID "Session ID"
IDS_TAB_CPU "CPU"
IDS_TAB_CPUTIME "CPU Time"
IDS_TAB_MEMUSAGE "Mem Usage"
IDS_TAB_PEAKMEMUSAGE "Peak Mem Usage"
IDS_TAB_MEMDELTA "Mem Delta"
IDS_TAB_PAGEFAULT "Page Faults"
IDS_TAB_PFDELTA "PF Delta"
IDS_TAB_VMSIZE "VM Size"
IDS_TAB_PAGEDPOOL "Paged Pool"
IDS_TAB_NPPOOL "NP Pool"
IDS_TAB_BASEPRI "Base Pri"
IDS_TAB_HANDLES "Handles"
IDS_TAB_THREADS "Threads"
IDS_TAB_USERPBJECTS "USER Objects"
IDS_TAB_GDIOBJECTS "GDI Objects"
IDS_TAB_IOREADS "I/O Reads"
IDS_TAB_IOWRITES "I/O Writes"
IDS_TAB_IOOTHER "I/O Other"
IDS_TAB_IOREADBYTES "I/O Read Bytes"
IDS_TAB_IOWRITESBYTES "I/O Write Bytes"
IDS_TAB_IOOTHERBYTES "I/O Other Bytes"
IDS_MENU_SELECTCOLUMNS "&Select Columns..."
IDS_MENU_16BITTASK "&Show 16-bit tasks"
IDS_MENU_WINDOWS "&Windows"
IDS_MENU_LARGEICONS "Lar&ge Icons"
IDS_MENU_SMALLICONS "S&mall Icons"
IDS_MENU_DETAILS "&Details"
IDS_MENU_ONEGRAPHALLCPUS "&One Graph, All CPUs"
IDS_MENU_ONEGRAPHPERCPU "One Graph &Per CPU"
IDS_MENU_CPUHISTORY "&CPU History"
IDS_MENU_SHOWKERNELTIMES "&Show Kernel Times"
IDS_CREATENEWTASK "Create New Task"
IDS_CREATENEWTASK_DESC "Type the name of a program, folder, document, or Internet resource, and Task Manager will open it for you."
IDS_MSG_ACCESSPROCESSAFF "Unable to Access or Set Process Affinity"
IDS_MSG_PROCESSONEPRO "The process must have affinity with at least one processor."
IDS_MSG_INVALIDOPTION "Invalid Option"
IDS_MSG_UNABLEDEBUGPROCESS "Unable to Debug Process"
IDS_MSG_WARNINGDEBUG "WARNING: Debugging this process may result in loss of data.\nAre you sure you wish to attach the debugger?"
IDS_MSG_TASKMGRWARNING "Task Manager Warning"
IDS_MSG_WARNINGTERMINATING "WARNING: Terminating a process can cause undesired\nresults including loss of data and system instability. The\nprocess will not be given the chance to save its state or\ndata before it is terminated. Are you sure you want to\nterminate the process?"
IDS_MSG_UNABLETERMINATEPRO "Unable to Terminate Process"
IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority"
IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"
IDS_MSG_TRAYICONCPUUSAGE "CPU Usage: %d%%"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////

View file

@ -4,6 +4,7 @@
* affinity.cpp
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -34,12 +35,14 @@
#include "perfdata.h"
HANDLE hProcessAffinityHandle;
TCHAR szTemp[256];
TCHAR szTempA[256];
INT_PTR CALLBACK AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
void ProcessPage_OnSetAffinity(void)
{
LV_ITEM lvitem;
LV_ITEM lvitem;
ULONG Index;
DWORD dwProcessId;
TCHAR strErrorText[260];
@ -59,7 +62,8 @@ void ProcessPage_OnSetAffinity(void)
hProcessAffinityHandle = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_SET_INFORMATION, FALSE, dwProcessId);
if (!hProcessAffinityHandle) {
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Access or Set Process Affinity"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_ACCESSPROCESSAFF, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
DialogBox(hInst, MAKEINTRESOURCE(IDD_AFFINITY_DIALOG), hMainWnd, AffinityDialogWndProc);
@ -86,7 +90,8 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
if (!GetProcessAffinityMask(hProcessAffinityHandle, &dwProcessAffinityMask, &dwSystemAffinityMask)) {
GetLastErrorText(strErrorText, 260);
EndDialog(hDlg, 0);
MessageBox(hMainWnd, strErrorText, _T("Unable to Access or Set Process Affinity"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_ACCESSPROCESSAFF, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
/*
@ -321,7 +326,9 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
* of it's cpu time.
*/
if (!dwProcessAffinityMask) {
MessageBox(hDlg, _T("The process must have affinity with at least one processor."), _T("Invalid Option"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_PROCESSONEPRO, szTemp, 256);
LoadString(hInst, IDS_MSG_INVALIDOPTION, szTempA, 256);
MessageBox(hDlg, szTemp, szTempA, MB_OK|MB_ICONSTOP);
return TRUE;
}
@ -331,7 +338,8 @@ AffinityDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
if (!SetProcessAffinityMask(hProcessAffinityHandle, dwProcessAffinityMask)) {
GetLastErrorText(strErrorText, 260);
EndDialog(hDlg, LOWORD(wParam));
MessageBox(hMainWnd, strErrorText, _T("Unable to Access or Set Process Affinity"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_ACCESSPROCESSAFF, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
EndDialog(hDlg, LOWORD(wParam));

View file

@ -4,6 +4,7 @@
* applicationpage.cpp
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -95,12 +96,13 @@ ApplicationPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
/* Initialize the application page's controls */
column.mask = LVCF_TEXT|LVCF_WIDTH;
_tcscpy(szTemp, _T("Task"));
LoadString(hInst, IDS_TAB_TASK, szTemp, 256);
column.pszText = szTemp;
column.cx = 250;
ListView_InsertColumn(hApplicationPageListCtrl, 0, &column); /* Add the "Task" column */
column.mask = LVCF_TEXT|LVCF_WIDTH;
_tcscpy(szTemp, _T("Status"));
LoadString(hInst, IDS_TAB_STATUS, szTemp, 256);
column.pszText = szTemp;
column.cx = 95;
ListView_InsertColumn(hApplicationPageListCtrl, 1, &column); /* Add the "Status" column */

View file

@ -4,6 +4,7 @@
* column.cpp
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -32,6 +33,7 @@
#include "procpage.h"
UINT ColumnDataHints[25];
TCHAR szTemp[256];
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem);
INT_PTR CALLBACK ColumnsDialogWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
@ -40,56 +42,126 @@ void AddColumns(void)
{
int size;
if (TaskManagerSettings.Column_ImageName)
InsertColumn(0, _T("Image Name"), LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[0], -1);
if (TaskManagerSettings.Column_PID)
InsertColumn(1, _T("PID"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[1], -1);
if (TaskManagerSettings.Column_UserName)
InsertColumn(2, _T("Username"), LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[2], -1);
if (TaskManagerSettings.Column_SessionID)
InsertColumn(3, _T("Session ID"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[3], -1);
if (TaskManagerSettings.Column_CPUUsage)
InsertColumn(4, _T("CPU"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[4], -1);
if (TaskManagerSettings.Column_CPUTime)
InsertColumn(5, _T("CPU Time"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[5], -1);
if (TaskManagerSettings.Column_MemoryUsage)
InsertColumn(6, _T("Mem Usage"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[6], -1);
if (TaskManagerSettings.Column_PeakMemoryUsage)
InsertColumn(7, _T("Peak Mem Usage"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[7], -1);
if (TaskManagerSettings.Column_MemoryUsageDelta)
InsertColumn(8, _T("Mem Delta"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[8], -1);
if (TaskManagerSettings.Column_PageFaults)
InsertColumn(9, _T("Page Faults"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[9], -1);
if (TaskManagerSettings.Column_PageFaultsDelta)
InsertColumn(10, _T("PF Delta"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[10], -1);
if (TaskManagerSettings.Column_VirtualMemorySize)
InsertColumn(11, _T("VM Size"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[11], -1);
if (TaskManagerSettings.Column_PagedPool)
InsertColumn(12, _T("Paged Pool"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[12], -1);
if (TaskManagerSettings.Column_NonPagedPool)
InsertColumn(13, _T("NP Pool"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[13], -1);
if (TaskManagerSettings.Column_BasePriority)
InsertColumn(14, _T("Base Pri"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[14], -1);
if (TaskManagerSettings.Column_HandleCount)
InsertColumn(15, _T("Handles"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[15], -1);
if (TaskManagerSettings.Column_ThreadCount)
InsertColumn(16, _T("Threads"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[16], -1);
if (TaskManagerSettings.Column_USERObjects)
InsertColumn(17, _T("USER Objects"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[17], -1);
if (TaskManagerSettings.Column_GDIObjects)
InsertColumn(18, _T("GDI Objects"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[18], -1);
if (TaskManagerSettings.Column_IOReads)
InsertColumn(19, _T("I/O Reads"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[19], -1);
if (TaskManagerSettings.Column_IOWrites)
InsertColumn(20, _T("I/O Writes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[20], -1);
if (TaskManagerSettings.Column_IOOther)
InsertColumn(21, _T("I/O Other"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[21], -1);
if (TaskManagerSettings.Column_IOReadBytes)
InsertColumn(22, _T("I/O Read Bytes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[22], -1);
if (TaskManagerSettings.Column_IOWriteBytes)
InsertColumn(23, _T("I/O Write Bytes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[23], -1);
if (TaskManagerSettings.Column_IOOtherBytes)
InsertColumn(24, _T("I/O Other Bytes"), LVCFMT_RIGHT, TaskManagerSettings.ColumnSizeArray[24], -1);
if (TaskManagerSettings.Column_ImageName) {
LoadString(hInst, IDS_TAB_IMAGENAME, szTemp, 256);
InsertColumn(0, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[0], -1);
}
if (TaskManagerSettings.Column_PID) {
LoadString(hInst, IDS_TAB_PID, szTemp, 256);
InsertColumn(1, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[1], -1);
}
if (TaskManagerSettings.Column_UserName) {
LoadString(hInst, IDS_TAB_USERNAME, szTemp, 256);
InsertColumn(2, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[2], -1);
}
if (TaskManagerSettings.Column_SessionID) {
LoadString(hInst, IDS_TAB_SESSIONID, szTemp, 256);
InsertColumn(3, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[3], -1);
}
if (TaskManagerSettings.Column_CPUUsage) {
LoadString(hInst, IDS_TAB_CPU, szTemp, 256);
InsertColumn(4, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[4], -1);
}
if (TaskManagerSettings.Column_CPUTime) {
LoadString(hInst, IDS_TAB_CPUTIME, szTemp, 256);
InsertColumn(5, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[5], -1);
}
if (TaskManagerSettings.Column_MemoryUsage) {
LoadString(hInst, IDS_TAB_MEMUSAGE, szTemp, 256);
InsertColumn(6, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[6], -1);
}
if (TaskManagerSettings.Column_PeakMemoryUsage) {
LoadString(hInst, IDS_TAB_PEAKMEMUSAGE, szTemp, 256);
InsertColumn(7, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[7], -1);
}
if (TaskManagerSettings.Column_MemoryUsageDelta) {
LoadString(hInst, IDS_TAB_MEMDELTA, szTemp, 256);
InsertColumn(8, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[8], -1);
}
if (TaskManagerSettings.Column_PageFaults) {
LoadString(hInst, IDS_TAB_PAGEFAULT, szTemp, 256);
InsertColumn(9, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[9], -1);
}
if (TaskManagerSettings.Column_PageFaultsDelta) {
LoadString(hInst, IDS_TAB_PFDELTA, szTemp, 256);
InsertColumn(10, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[10], -1);
}
if (TaskManagerSettings.Column_VirtualMemorySize) {
LoadString(hInst, IDS_TAB_VMSIZE, szTemp, 256);
InsertColumn(11, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[11], -1);
}
if (TaskManagerSettings.Column_PagedPool) {
LoadString(hInst, IDS_TAB_PAGEDPOOL, szTemp, 256);
InsertColumn(12, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[12], -1);
}
if (TaskManagerSettings.Column_NonPagedPool) {
LoadString(hInst, IDS_TAB_NPPOOL, szTemp, 256);
InsertColumn(13, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[13], -1);
}
if (TaskManagerSettings.Column_BasePriority) {
LoadString(hInst, IDS_TAB_BASEPRI, szTemp, 256);
InsertColumn(14, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[14], -1);
}
if (TaskManagerSettings.Column_HandleCount) {
LoadString(hInst, IDS_TAB_HANDLES, szTemp, 256);
InsertColumn(15, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[15], -1);
}
if (TaskManagerSettings.Column_ThreadCount) {
LoadString(hInst, IDS_TAB_THREADS, szTemp, 256);
InsertColumn(16, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[16], -1);
}
if (TaskManagerSettings.Column_USERObjects) {
LoadString(hInst, IDS_TAB_USERPBJECTS, szTemp, 256);
InsertColumn(17, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[17], -1);
}
if (TaskManagerSettings.Column_GDIObjects) {
LoadString(hInst, IDS_TAB_GDIOBJECTS, szTemp, 256);
InsertColumn(18, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[18], -1);
}
if (TaskManagerSettings.Column_IOReads) {
LoadString(hInst, IDS_TAB_IOREADS, szTemp, 256);
InsertColumn(19, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[19], -1);
}
if (TaskManagerSettings.Column_IOWrites) {
LoadString(hInst, IDS_TAB_IOWRITES, szTemp, 256);
InsertColumn(20, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[20], -1);
}
if (TaskManagerSettings.Column_IOOther) {
LoadString(hInst, IDS_TAB_IOOTHER, szTemp, 256);
InsertColumn(21, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[21], -1);
}
if (TaskManagerSettings.Column_IOReadBytes) {
LoadString(hInst, IDS_TAB_IOREADBYTES, szTemp, 256);
InsertColumn(22, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[22], -1);
}
if (TaskManagerSettings.Column_IOWriteBytes) {
LoadString(hInst, IDS_TAB_IOWRITESBYTES, szTemp, 256);
InsertColumn(23, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[23], -1);
}
if (TaskManagerSettings.Column_IOOtherBytes) {
LoadString(hInst, IDS_TAB_IOOTHERBYTES, szTemp, 256);
InsertColumn(24, szTemp, LVCFMT_LEFT, TaskManagerSettings.ColumnSizeArray[24], -1);
}
size = SendMessage(hProcessPageHeaderCtrl, HDM_GETITEMCOUNT, 0, 0);
SendMessage(hProcessPageHeaderCtrl, HDM_SETORDERARRAY, (WPARAM) size, (LPARAM) &TaskManagerSettings.ColumnOrderArray);
@ -196,127 +268,176 @@ void SaveColumnSettings(void)
SendMessage(hProcessPageHeaderCtrl, HDM_GETITEM, i, (LPARAM) &hditem);
if (_tcsicmp(text, _T("Image Name")) == 0)
LoadString(hInst, IDS_TAB_IMAGENAME, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_ImageName = TRUE;
TaskManagerSettings.ColumnSizeArray[0] = hditem.cxy;
}
if (_tcsicmp(text, _T("PID")) == 0)
LoadString(hInst, IDS_TAB_PID, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_PID = TRUE;
TaskManagerSettings.ColumnSizeArray[1] = hditem.cxy;
}
if (_tcsicmp(text, _T("Username")) == 0)
LoadString(hInst, IDS_TAB_USERNAME, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_UserName = TRUE;
TaskManagerSettings.ColumnSizeArray[2] = hditem.cxy;
}
if (_tcsicmp(text, _T("Session ID")) == 0)
LoadString(hInst, IDS_TAB_SESSIONID, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_SessionID = TRUE;
TaskManagerSettings.ColumnSizeArray[3] = hditem.cxy;
}
if (_tcsicmp(text, _T("CPU")) == 0)
LoadString(hInst, IDS_TAB_CPU, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_CPUUsage = TRUE;
TaskManagerSettings.ColumnSizeArray[4] = hditem.cxy;
}
if (_tcsicmp(text, _T("CPU Time")) == 0)
LoadString(hInst, IDS_TAB_CPUTIME, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_CPUTime = TRUE;
TaskManagerSettings.ColumnSizeArray[5] = hditem.cxy;
}
if (_tcsicmp(text, _T("Mem Usage")) == 0)
LoadString(hInst, IDS_TAB_MEMUSAGE, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_MemoryUsage = TRUE;
TaskManagerSettings.ColumnSizeArray[6] = hditem.cxy;
}
if (_tcsicmp(text, _T("Peak Mem Usage")) == 0)
LoadString(hInst, IDS_TAB_PEAKMEMUSAGE, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_PeakMemoryUsage = TRUE;
TaskManagerSettings.ColumnSizeArray[7] = hditem.cxy;
}
if (_tcsicmp(text, _T("Mem Delta")) == 0)
LoadString(hInst, IDS_TAB_MEMDELTA, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_MemoryUsageDelta = TRUE;
TaskManagerSettings.ColumnSizeArray[8] = hditem.cxy;
}
if (_tcsicmp(text, _T("Page Faults")) == 0)
LoadString(hInst, IDS_TAB_PAGEFAULT, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_PageFaults = TRUE;
TaskManagerSettings.ColumnSizeArray[9] = hditem.cxy;
}
if (_tcsicmp(text, _T("PF Delta")) == 0)
LoadString(hInst, IDS_TAB_PFDELTA, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_PageFaultsDelta = TRUE;
TaskManagerSettings.ColumnSizeArray[10] = hditem.cxy;
}
if (_tcsicmp(text, _T("VM Size")) == 0)
LoadString(hInst, IDS_TAB_VMSIZE, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_VirtualMemorySize = TRUE;
TaskManagerSettings.ColumnSizeArray[11] = hditem.cxy;
}
if (_tcsicmp(text, _T("Paged Pool")) == 0)
LoadString(hInst, IDS_TAB_PAGEDPOOL, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_PagedPool = TRUE;
TaskManagerSettings.ColumnSizeArray[12] = hditem.cxy;
}
if (_tcsicmp(text, _T("NP Pool")) == 0)
LoadString(hInst, IDS_TAB_NPPOOL, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_NonPagedPool = TRUE;
TaskManagerSettings.ColumnSizeArray[13] = hditem.cxy;
}
if (_tcsicmp(text, _T("Base Pri")) == 0)
LoadString(hInst, IDS_TAB_BASEPRI, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_BasePriority = TRUE;
TaskManagerSettings.ColumnSizeArray[14] = hditem.cxy;
}
if (_tcsicmp(text, _T("Handles")) == 0)
LoadString(hInst, IDS_TAB_HANDLES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_HandleCount = TRUE;
TaskManagerSettings.ColumnSizeArray[15] = hditem.cxy;
}
if (_tcsicmp(text, _T("Threads")) == 0)
LoadString(hInst, IDS_TAB_THREADS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_ThreadCount = TRUE;
TaskManagerSettings.ColumnSizeArray[16] = hditem.cxy;
}
if (_tcsicmp(text, _T("USER Objects")) == 0)
LoadString(hInst, IDS_TAB_USERPBJECTS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_USERObjects = TRUE;
TaskManagerSettings.ColumnSizeArray[17] = hditem.cxy;
}
if (_tcsicmp(text, _T("GDI Objects")) == 0)
LoadString(hInst, IDS_TAB_GDIOBJECTS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_GDIObjects = TRUE;
TaskManagerSettings.ColumnSizeArray[18] = hditem.cxy;
}
if (_tcsicmp(text, _T("I/O Reads")) == 0)
LoadString(hInst, IDS_TAB_IOREADS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_IOReads = TRUE;
TaskManagerSettings.ColumnSizeArray[19] = hditem.cxy;
}
if (_tcsicmp(text, _T("I/O Writes")) == 0)
LoadString(hInst, IDS_TAB_IOWRITES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_IOWrites = TRUE;
TaskManagerSettings.ColumnSizeArray[20] = hditem.cxy;
}
if (_tcsicmp(text, _T("I/O Other")) == 0)
LoadString(hInst, IDS_TAB_IOOTHER, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_IOOther = TRUE;
TaskManagerSettings.ColumnSizeArray[21] = hditem.cxy;
}
if (_tcsicmp(text, _T("I/O Read Bytes")) == 0)
LoadString(hInst, IDS_TAB_IOREADBYTES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_IOReadBytes = TRUE;
TaskManagerSettings.ColumnSizeArray[22] = hditem.cxy;
}
if (_tcsicmp(text, _T("I/O Write Bytes")) == 0)
LoadString(hInst, IDS_TAB_IOWRITESBYTES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_IOWriteBytes = TRUE;
TaskManagerSettings.ColumnSizeArray[23] = hditem.cxy;
}
if (_tcsicmp(text, _T("I/O Other Bytes")) == 0)
LoadString(hInst, IDS_TAB_IOOTHERBYTES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
{
TaskManagerSettings.Column_IOOtherBytes = TRUE;
TaskManagerSettings.ColumnSizeArray[24] = hditem.cxy;
@ -491,55 +612,104 @@ void UpdateColumnDataHints(void)
SendMessage(hProcessPageHeaderCtrl, HDM_GETITEM, Index, (LPARAM) &hditem);
if (_tcsicmp(text, _T("Image Name")) == 0)
LoadString(hInst, IDS_TAB_IMAGENAME, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IMAGENAME;
if (_tcsicmp(text, _T("PID")) == 0)
LoadString(hInst, IDS_TAB_PID, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_PID;
if (_tcsicmp(text, _T("Username")) == 0)
LoadString(hInst, IDS_TAB_USERNAME, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_USERNAME;
if (_tcsicmp(text, _T("Session ID")) == 0)
LoadString(hInst, IDS_TAB_SESSIONID, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_SESSIONID;
if (_tcsicmp(text, _T("CPU")) == 0)
LoadString(hInst, IDS_TAB_CPU, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_CPUUSAGE;
if (_tcsicmp(text, _T("CPU Time")) == 0)
LoadString(hInst, IDS_TAB_CPUTIME, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_CPUTIME;
if (_tcsicmp(text, _T("Mem Usage")) == 0)
LoadString(hInst, IDS_TAB_MEMUSAGE, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_MEMORYUSAGE;
if (_tcsicmp(text, _T("Peak Mem Usage")) == 0)
LoadString(hInst, IDS_TAB_PEAKMEMUSAGE, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_PEAKMEMORYUSAGE;
if (_tcsicmp(text, _T("Mem Delta")) == 0)
LoadString(hInst, IDS_TAB_MEMDELTA, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_MEMORYUSAGEDELTA;
if (_tcsicmp(text, _T("Page Faults")) == 0)
LoadString(hInst, IDS_TAB_PAGEFAULT, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_PAGEFAULTS;
if (_tcsicmp(text, _T("PF Delta")) == 0)
LoadString(hInst, IDS_TAB_PFDELTA, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_PAGEFAULTSDELTA;
if (_tcsicmp(text, _T("VM Size")) == 0)
LoadString(hInst, IDS_TAB_VMSIZE, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_VIRTUALMEMORYSIZE;
if (_tcsicmp(text, _T("Paged Pool")) == 0)
LoadString(hInst, IDS_TAB_PAGEDPOOL, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_PAGEDPOOL;
if (_tcsicmp(text, _T("NP Pool")) == 0)
LoadString(hInst, IDS_TAB_NPPOOL, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_NONPAGEDPOOL;
if (_tcsicmp(text, _T("Base Pri")) == 0)
LoadString(hInst, IDS_TAB_BASEPRI, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_BASEPRIORITY;
if (_tcsicmp(text, _T("Handles")) == 0)
LoadString(hInst, IDS_TAB_HANDLES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_HANDLECOUNT;
if (_tcsicmp(text, _T("Threads")) == 0)
LoadString(hInst, IDS_TAB_THREADS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_THREADCOUNT;
if (_tcsicmp(text, _T("USER Objects")) == 0)
LoadString(hInst, IDS_TAB_USERPBJECTS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_USEROBJECTS;
if (_tcsicmp(text, _T("GDI Objects")) == 0)
LoadString(hInst, IDS_TAB_GDIOBJECTS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_GDIOBJECTS;
if (_tcsicmp(text, _T("I/O Reads")) == 0)
LoadString(hInst, IDS_TAB_IOREADS, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IOREADS;
if (_tcsicmp(text, _T("I/O Writes")) == 0)
LoadString(hInst, IDS_TAB_IOWRITES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IOWRITES;
if (_tcsicmp(text, _T("I/O Other")) == 0)
LoadString(hInst, IDS_TAB_IOOTHER, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IOOTHER;
if (_tcsicmp(text, _T("I/O Read Bytes")) == 0)
LoadString(hInst, IDS_TAB_IOREADBYTES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IOREADBYTES;
if (_tcsicmp(text, _T("I/O Write Bytes")) == 0)
LoadString(hInst, IDS_TAB_IOWRITESBYTES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IOWRITEBYTES;
if (_tcsicmp(text, _T("I/O Other Bytes")) == 0)
LoadString(hInst, IDS_TAB_IOOTHERBYTES, szTemp, 256);
if (_tcsicmp(text, szTemp) == 0)
ColumnDataHints[Index] = COLUMN_IOOTHERBYTES;
}
}

View file

@ -4,6 +4,7 @@
* debug.cpp
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -35,17 +36,20 @@
void ProcessPage_OnDebug(void)
{
LVITEM lvitem;
LVITEM lvitem;
ULONG Index;
DWORD dwProcessId;
TCHAR strErrorText[260];
HKEY hKey;
HKEY hKey;
TCHAR strDebugPath[260];
TCHAR strDebugger[260];
DWORD dwDebuggerSize;
PROCESS_INFORMATION pi;
STARTUPINFO si;
HANDLE hDebugEvent;
PROCESS_INFORMATION pi;
STARTUPINFO si;
HANDLE hDebugEvent;
TCHAR szTemp[256];
TCHAR szTempA[256];
for (Index=0; Index<(ULONG)ListView_GetItemCount(hProcessPageListCtrl); Index++)
{
@ -66,17 +70,22 @@ void ProcessPage_OnDebug(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Debugging this process may result in loss of data.\nAre you sure you wish to attach the debugger?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGDEBUG, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("Software\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug"), 0, KEY_READ, &hKey) != ERROR_SUCCESS)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
@ -84,7 +93,8 @@ void ProcessPage_OnDebug(void)
if (RegQueryValueEx(hKey, _T("Debugger"), NULL, NULL, (LPBYTE)strDebugger, &dwDebuggerSize) != ERROR_SUCCESS)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
RegCloseKey(hKey);
return;
}
@ -95,7 +105,8 @@ void ProcessPage_OnDebug(void)
if (!hDebugEvent)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
@ -107,7 +118,8 @@ void ProcessPage_OnDebug(void)
if (!CreateProcess(NULL, strDebugPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Debug Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLEDEBUGPROCESS, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hDebugEvent);

View file

@ -4,6 +4,7 @@
* endproc.cpp
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -33,6 +34,9 @@
#include "procpage.h"
#include "perfdata.h"
TCHAR szTemp[256];
TCHAR szTempA[256];
void ProcessPage_OnEndProcess(void)
{
LVITEM lvitem;
@ -60,7 +64,9 @@ void ProcessPage_OnEndProcess(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Terminating a process can cause undesired\nresults including loss of data and system instability. The\nprocess will not be given the chance to save its state or\ndata before it is terminated. Are you sure you want to\nterminate the process?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGTERMINATING, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId);
@ -68,14 +74,16 @@ void ProcessPage_OnEndProcess(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!TerminateProcess(hProcess, 0))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);
@ -108,7 +116,9 @@ void ProcessPage_OnEndProcessTree(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Terminating a process can cause undesired\nresults including loss of data and system instability. The\nprocess will not be given the chance to save its state or\ndata before it is terminated. Are you sure you want to\nterminate the process?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGTERMINATING, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, dwProcessId);
@ -116,14 +126,16 @@ void ProcessPage_OnEndProcessTree(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!TerminateProcess(hProcess, 0))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Terminate Process"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLETERMINATEPRO, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);

View file

@ -4,6 +4,7 @@
* priority.c
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -33,6 +34,9 @@
#include "procpage.h"
#include "perfdata.h"
TCHAR szTemp[256];
TCHAR szTempA[256];
void ProcessPage_OnSetPriorityRealTime(void)
{
LVITEM lvitem;
@ -60,7 +64,9 @@ void ProcessPage_OnSetPriorityRealTime(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@ -68,14 +74,16 @@ void ProcessPage_OnSetPriorityRealTime(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!SetPriorityClass(hProcess, REALTIME_PRIORITY_CLASS))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);
@ -108,7 +116,9 @@ void ProcessPage_OnSetPriorityHigh(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@ -116,14 +126,16 @@ void ProcessPage_OnSetPriorityHigh(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);
@ -156,7 +168,9 @@ void ProcessPage_OnSetPriorityAboveNormal(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@ -164,14 +178,16 @@ void ProcessPage_OnSetPriorityAboveNormal(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!SetPriorityClass(hProcess, ABOVE_NORMAL_PRIORITY_CLASS))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);
@ -204,7 +220,9 @@ void ProcessPage_OnSetPriorityNormal(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@ -212,14 +230,16 @@ void ProcessPage_OnSetPriorityNormal(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!SetPriorityClass(hProcess, NORMAL_PRIORITY_CLASS))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);
@ -252,7 +272,9 @@ void ProcessPage_OnSetPriorityBelowNormal(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@ -260,14 +282,16 @@ void ProcessPage_OnSetPriorityBelowNormal(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!SetPriorityClass(hProcess, BELOW_NORMAL_PRIORITY_CLASS))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);
@ -300,7 +324,9 @@ void ProcessPage_OnSetPriorityLow(void)
if ((ListView_GetSelectedCount(hProcessPageListCtrl) != 1) || (dwProcessId == 0))
return;
if (MessageBox(hMainWnd, _T("WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?"), _T("Task Manager Warning"), MB_YESNO|MB_ICONWARNING) != IDYES)
LoadString(hInst, IDS_MSG_WARNINGCHANGEPRIORITY, szTemp, 256);
LoadString(hInst, IDS_MSG_TASKMGRWARNING, szTempA, 256);
if (MessageBox(hMainWnd, szTemp, szTempA, MB_YESNO|MB_ICONWARNING) != IDYES)
return;
hProcess = OpenProcess(PROCESS_SET_INFORMATION, FALSE, dwProcessId);
@ -308,14 +334,16 @@ void ProcessPage_OnSetPriorityLow(void)
if (!hProcess)
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
return;
}
if (!SetPriorityClass(hProcess, IDLE_PRIORITY_CLASS))
{
GetLastErrorText(strErrorText, 260);
MessageBox(hMainWnd, strErrorText, _T("Unable to Change Priority"), MB_OK|MB_ICONSTOP);
LoadString(hInst, IDS_MSG_UNABLECHANGEPRIORITY, szTemp, 256);
MessageBox(hMainWnd, strErrorText, szTemp, MB_OK|MB_ICONSTOP);
}
CloseHandle(hProcess);

View file

@ -183,6 +183,61 @@
#define IDS_LICENSE 32816
#define IDC_STATIC -1
#define IDS_TAB_APPS 310
#define IDS_TAB_PROCESSES 311
#define IDS_TAB_PERFORMANCE 312
#define IDS_TAB_TASK 313
#define IDS_TAB_STATUS 314
#define IDS_TAB_IMAGENAME 315
#define IDS_TAB_PID 316
#define IDS_TAB_USERNAME 317
#define IDS_TAB_SESSIONID 318
#define IDS_TAB_CPU 319
#define IDS_TAB_CPUTIME 320
#define IDS_TAB_MEMUSAGE 321
#define IDS_TAB_PEAKMEMUSAGE 322
#define IDS_TAB_MEMDELTA 323
#define IDS_TAB_PAGEFAULT 324
#define IDS_TAB_PFDELTA 325
#define IDS_TAB_VMSIZE 326
#define IDS_TAB_PAGEDPOOL 327
#define IDS_TAB_NPPOOL 328
#define IDS_TAB_BASEPRI 329
#define IDS_TAB_HANDLES 330
#define IDS_TAB_THREADS 331
#define IDS_TAB_USERPBJECTS 332
#define IDS_TAB_GDIOBJECTS 333
#define IDS_TAB_IOREADS 334
#define IDS_TAB_IOWRITES 335
#define IDS_TAB_IOOTHER 336
#define IDS_TAB_IOREADBYTES 337
#define IDS_TAB_IOWRITESBYTES 338
#define IDS_TAB_IOOTHERBYTES 339
#define IDS_MENU_SELECTCOLUMNS 340
#define IDS_MENU_16BITTASK 341
#define IDS_MENU_WINDOWS 342
#define IDS_MENU_LARGEICONS 343
#define IDS_MENU_SMALLICONS 344
#define IDS_MENU_DETAILS 345
#define IDS_MENU_ONEGRAPHALLCPUS 346
#define IDS_MENU_ONEGRAPHPERCPU 347
#define IDS_MENU_CPUHISTORY 348
#define IDS_MENU_SHOWKERNELTIMES 349
#define IDS_CREATENEWTASK 350
#define IDS_CREATENEWTASK_DESC 351
#define IDS_MSG_ACCESSPROCESSAFF 352
#define IDS_MSG_PROCESSONEPRO 353
#define IDS_MSG_INVALIDOPTION 354
#define IDS_MSG_UNABLEDEBUGPROCESS 355
#define IDS_MSG_WARNINGDEBUG 356
#define IDS_MSG_TASKMGRWARNING 357
#define IDS_MSG_WARNINGTERMINATING 358
#define IDS_MSG_UNABLETERMINATEPRO 359
#define IDS_MSG_UNABLECHANGEPRIORITY 360
#define IDS_MSG_WARNINGCHANGEPRIORITY 361
#define IDS_MSG_TRAYICONCPUUSAGE 362
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED

View file

@ -4,6 +4,7 @@
* run.c
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -32,13 +33,22 @@
void TaskManager_OnFileNew(void)
{
HMODULE hShell32;
RUNFILEDLG RunFileDlg;
HMODULE hShell32;
RUNFILEDLG RunFileDlg;
OSVERSIONINFO versionInfo;
WCHAR wTitle[40];
WCHAR wText[256];
char szTitle[40] = "Create New Task";
char szText[256] = "Type the name of a program, folder, document, or Internet resource, and Task Manager will open it for you.";
TCHAR szTemp[256];
char szTitle[40];
char szText[256];
/* Load language string from resource file */
LoadString(hInst, IDS_CREATENEWTASK, szTemp, 40);
strcpy(szTitle,szTemp);
LoadString(hInst, IDS_CREATENEWTASK_DESC, szTemp, 256);
strcpy(szText,szTemp);
hShell32 = LoadLibrary(_T("SHELL32.DLL"));
RunFileDlg = (RUNFILEDLG)(FARPROC)GetProcAddress(hShell32, (char*)((long)0x3D));

View file

@ -4,6 +4,7 @@
* TaskMgr.c : Defines the entry point for the application.
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -481,17 +482,17 @@ BOOL OnCreate(HWND hWnd)
#endif
/* Insert tabs */
_tcscpy(szTemp, _T("Applications"));
LoadString(hInst, IDS_TAB_APPS, szTemp, 256);
memset(&item, 0, sizeof(TCITEM));
item.mask = TCIF_TEXT;
item.pszText = szTemp;
TabCtrl_InsertItem(hTabWnd, 0, &item);
_tcscpy(szTemp, _T("Processes"));
LoadString(hInst, IDS_TAB_PROCESSES, szTemp, 256);
memset(&item, 0, sizeof(TCITEM));
item.mask = TCIF_TEXT;
item.pszText = szTemp;
TabCtrl_InsertItem(hTabWnd, 1, &item);
_tcscpy(szTemp, _T("Performance"));
LoadString(hInst, IDS_TAB_PERFORMANCE, szTemp, 256);
memset(&item, 0, sizeof(TCITEM));
item.mask = TCIF_TEXT;
item.pszText = szTemp;
@ -954,6 +955,7 @@ void TaskManager_OnTabWndSelChange(void)
HMENU hOptionsMenu;
HMENU hViewMenu;
HMENU hSubMenu;
TCHAR szTemp[256];
hMenu = GetMenu(hMainWnd);
hViewMenu = GetSubMenu(hMenu, 2);
@ -972,13 +974,22 @@ void TaskManager_OnTabWndSelChange(void)
ShowWindow(hProcessPage, SW_HIDE);
ShowWindow(hPerformancePage, SW_HIDE);
BringWindowToTop(hApplicationPage);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_LARGE, _T("Lar&ge Icons"));
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SMALL, _T("S&mall Icons"));
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_DETAILS, _T("&Details"));
LoadString(hInst, IDS_MENU_LARGEICONS, szTemp, 256);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_LARGE, szTemp);
LoadString(hInst, IDS_MENU_SMALLICONS, szTemp, 256);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SMALL, szTemp);
LoadString(hInst, IDS_MENU_DETAILS, szTemp, 256);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_DETAILS, szTemp);
if (GetMenuItemCount(hMenu) <= 4) {
hSubMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_WINDOWSMENU));
InsertMenu(hMenu, 3, MF_BYPOSITION|MF_POPUP, (UINT)hSubMenu, _T("&Windows"));
LoadString(hInst, IDS_MENU_WINDOWS, szTemp, 256);
InsertMenu(hMenu, 3, MF_BYPOSITION|MF_POPUP, (UINT)hSubMenu, szTemp);
DrawMenuBar(hMainWnd);
}
if (TaskManagerSettings.View_LargeIcons)
@ -998,8 +1009,13 @@ void TaskManager_OnTabWndSelChange(void)
ShowWindow(hProcessPage, SW_SHOW);
ShowWindow(hPerformancePage, SW_HIDE);
BringWindowToTop(hProcessPage);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SELECTCOLUMNS, _T("&Select Columns..."));
AppendMenu(hOptionsMenu, MF_STRING, ID_OPTIONS_SHOW16BITTASKS, _T("&Show 16-bit tasks"));
LoadString(hInst, IDS_MENU_SELECTCOLUMNS, szTemp, 256);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SELECTCOLUMNS, szTemp);
LoadString(hInst, IDS_MENU_16BITTASK, szTemp, 256);
AppendMenu(hOptionsMenu, MF_STRING, ID_OPTIONS_SHOW16BITTASKS, szTemp);
if (TaskManagerSettings.Show16BitTasks)
CheckMenuItem(hOptionsMenu, ID_OPTIONS_SHOW16BITTASKS, MF_BYCOMMAND|MF_CHECKED);
if (GetMenuItemCount(hMenu) > 4)
@ -1023,10 +1039,19 @@ void TaskManager_OnTabWndSelChange(void)
DrawMenuBar(hMainWnd);
}
hSubMenu = CreatePopupMenu();
AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, _T("&One Graph, All CPUs"));
AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, _T("One Graph &Per CPU"));
AppendMenu(hViewMenu, MF_STRING|MF_POPUP, (UINT)hSubMenu, _T("&CPU History"));
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SHOWKERNELTIMES, _T("&Show Kernel Times"));
LoadString(hInst, IDS_MENU_ONEGRAPHALLCPUS, szTemp, 256);
AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, szTemp);
LoadString(hInst, IDS_MENU_ONEGRAPHPERCPU, szTemp, 256);
AppendMenu(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, szTemp);
LoadString(hInst, IDS_MENU_CPUHISTORY, szTemp, 256);
AppendMenu(hViewMenu, MF_STRING|MF_POPUP, (UINT)hSubMenu, szTemp);
LoadString(hInst, IDS_MENU_SHOWKERNELTIMES, szTemp, 256);
AppendMenu(hViewMenu, MF_STRING, ID_VIEW_SHOWKERNELTIMES, szTemp);
if (TaskManagerSettings.ShowKernelTimes)
CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_CHECKED);
else

View file

@ -4,6 +4,7 @@
* trayicon.c
*
* Copyright (C) 1999 - 2001 Brian Palmer <brianp@reactos.org>
* 2005 Klemens Friedl <frik85@reactos.at>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -186,9 +187,10 @@ BOOL TrayIcon_ShellRemoveTrayIcon(void)
BOOL TrayIcon_ShellUpdateTrayIcon(void)
{
NOTIFYICONDATA nid;
HICON hIcon = NULL;
NOTIFYICONDATA nid;
HICON hIcon = NULL;
BOOL bRetVal;
TCHAR szTemp[256];
memset(&nid, 0, sizeof(NOTIFYICONDATA));
@ -200,7 +202,8 @@ BOOL TrayIcon_ShellUpdateTrayIcon(void)
nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
nid.uCallbackMessage = WM_ONTRAYICON;
nid.hIcon = hIcon;
wsprintf(nid.szTip, _T("CPU Usage: %d%%"), PerfDataGetProcessorUsage());
LoadString(hInst, IDS_MSG_TRAYICONCPUUSAGE, szTemp, 256);
wsprintf(nid.szTip, szTemp, PerfDataGetProcessorUsage());
bRetVal = Shell_NotifyIcon(NIM_MODIFY, &nid);