📄 systeminfo.cpp
字号:
break;
case 3: //name
break;
case 4: //active
hWndFore = m_pList->GetIndexData(m_pList->m_dwDataCount-m_dwIndex-1)->hProcessWnd;
ShowWindow(hWndFore,SW_SHOW);
SetForegroundWindow((HWND)((ULONG) hWndFore | 0x00000001));
break;
case 5: //sep
break;
case 6: //stop
dwProcessId = m_pList->GetIndexData(m_pList->m_dwDataCount-m_dwIndex-1)->dwProcessId;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE,dwProcessId);
if (hProcess == NULL)
{
MessageBox(hWnd,L"Open Process Failed!",L"Error",MB_OK | MB_ICONERROR);
break;
}
if (!TerminateProcess(hProcess, 1))
{
CloseHandle(hProcess);
MessageBox(hWnd,L"Terminate Process Failed!",L"Error",MB_OK | MB_ICONERROR);
break;
}
CloseHandle(hProcess);
m_dwIndex = -1;
GetClientRect(hWnd,&rc);
rc.bottom=72;
//GetRunningPrograms();
InvalidateRect(hWnd,&rc,FALSE);
UpdateWindow(hWnd);
break;
case 7: //stop all
for(int i=0;i<m_pList->m_dwDataCount;i++)
{
dwProcessId = m_pList->GetIndexData(i)->dwProcessId;
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE,dwProcessId);
if (hProcess == NULL)
{
dwError = GetLastError();
if(dwError != ERROR_INVALID_PARAMETER)
{
MessageBox(hWnd,L"Open Process Failed!",L"Error",MB_OK | MB_ICONERROR);
break;
}
}
else
{
if (!TerminateProcess(hProcess, 1))
{
CloseHandle(hProcess);
MessageBox(hWnd,L"Terminate Process Failed!",L"Error",MB_OK | MB_ICONERROR);
break;
}
CloseHandle(hProcess);
}
}
m_dwIndex = -1;
GetClientRect(hWnd,&rc);
rc.bottom=72;
//GetRunningPrograms();
InvalidateRect(hWnd,&rc,FALSE);
UpdateWindow(hWnd);
break;
case 16:// 0x8910-8900 ID_TASK_UP
m_dwPage--;
if(m_dwPage<=0)
{
m_dwPage = 0;
EnableWindow(GetDlgItem(hWnd,ID_TASK_UP),FALSE);
}
m_dwTaskIndex =-1;
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
break;
case 17: //ID_TASK_DOWN
m_dwPage++;
if(m_dwPage>=(m_pPoom->m_dwDataCount>>2))
{
m_dwPage = (m_pPoom->m_dwDataCount>>2);
EnableWindow(GetDlgItem(hWnd,ID_TASK_DOWN),FALSE);
}
m_dwTaskIndex =-1;
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
break;
case 18: //+
OnTaskAdd(hWnd);
break;
case 19: //-
OnTaskDelete(hWnd,m_dwTaskIndex);
m_dwTaskIndex =-1;
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
break;
case 20: //edit
OnTaskEdit(hWnd,m_dwTaskIndex);
InvalidateRect(hWnd,NULL,TRUE);
UpdateWindow(hWnd);
break;
case 21: //ID_APP_LEFT
m_dwAppPage--;
if(m_dwAppPage<=0)
{
m_dwAppPage = 0;
EnableWindow(GetDlgItem(hWnd,ID_APP_LEFT),FALSE);
}
m_dwAppIndex =-1;
GetClientRect(hWnd,&rc);
rc.left=0;rc.top=73;
InvalidateRect(hWnd,&rc,TRUE);
UpdateWindow(hWnd);
break;
case 22: //ID_APP_RIGHT
m_dwAppPage++;
if(m_dwAppPage>=((m_pApplicationMarked->m_dwDataCount)>>3))
{
m_dwAppPage = (m_pApplicationMarked->m_dwDataCount)>>3;
EnableWindow(GetDlgItem(hWnd,ID_APP_RIGHT),FALSE);
}
m_dwAppIndex =-1;
GetClientRect(hWnd,&rc);
rc.left=0;rc.top=73;
InvalidateRect(hWnd,&rc,TRUE);
UpdateWindow(hWnd);
break;
case 23: //name
break;
case 24: //run
if(m_pApplicationMarked)
{
TCHAR szPath[MAX_PATH];
wsprintf(szPath,L"\\windows\\%s.exe",m_pApplicationMarked->GetIndexData(m_dwAppIndex+(m_dwAppPage<<3))->szProcessName);
if(lstrcmp(szPath,L"\\windows\\poutlook.exe")==0)
CreateProcess(szPath, L"contacts", NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);
else
CreateProcess(szPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, NULL, NULL);
}
break;
case 25: //remove it
if(m_pApplicationMarked)
{
m_pApplicationMarked->RemoveDataFromList(m_dwAppIndex+(m_dwAppPage<<3),FALSE);
m_dwAppIndex =-1;
GetClientRect(hWnd,&rc);
rc.left=0;rc.top=73;
InvalidateRect(hWnd,&rc,TRUE);
UpdateWindow(hWnd);
}
break;
case 32: //remove all
if(m_pApplicationMarked)
{
delete m_pApplicationMarked;
m_pApplicationMarked = NULL;
m_dwAppIndex =-1;
GetClientRect(hWnd,&rc);
rc.left=0;rc.top=73;
InvalidateRect(hWnd,&rc,TRUE);
UpdateWindow(hWnd);
}
break;
case 33: //sep
break;
case 34: //dlg
//SetCursor(LoadCursor(NULL, IDC_WAIT));
DialogBox(g_hInstance, (LPCTSTR)IDD_APPLICATION, hWnd,ApplicationProc);
//SetCursor(NULL);
break;
default:
break;
}
}
void PaintPage1(HWND hWnd,HDC hdc)
{
TCHAR szOwnerInfo[64];
TCHAR szProcessorInfo[64];
DWORD dwSize = sizeof(PROCESSOR_INFO);
PROCESSOR_INFO processorInfo;
RECT rc;
HFONT hOldFont;
LPCTSTR m_strName=L"";
LPCTSTR m_strCompany=L"";
LPCTSTR m_strAddress = L"";
LPCTSTR m_strTelephone=L"";
LPCTSTR m_strEmail=L"";
HKEY hKey;
DWORD dwDisposition;
RegCreateKeyEx(
HKEY_CURRENT_USER,
TEXT("\\ControlPanel\\Owner"),
0,
NULL,
0,
0,
NULL,
&hKey,
&dwDisposition);
DWORD dwType = REG_BINARY;
DWORD dwOwnerSize = 0x300 ;
WCHAR *Owner = new WCHAR[dwOwnerSize>>1];
memset(Owner, 0x00, dwOwnerSize);
if (RegQueryValueEx(
hKey,
TEXT("Owner"),
0,
&dwType,
(PBYTE)Owner,
&dwOwnerSize
) == ERROR_SUCCESS)
{
m_strName = (LPCTSTR) Owner;
m_strCompany = (LPCTSTR) (Owner + 0x24);
m_strAddress = (LPCTSTR) ( Owner + 0x48);
m_strTelephone = (LPCTSTR) ( Owner + 0x102);
m_strEmail = (LPCTSTR) (Owner + 0x11B);
RegCloseKey(hKey);
}
GetClientRect(hWnd,&rc);
rc.bottom = 48;
if(lstrcmp(m_strName,L"")==0)
m_strName=L"not set";
if(lstrcmp(m_strCompany,L"")==0)
m_strCompany=L"Not set";
wsprintf(szOwnerInfo,L"Owner: %s, %s",m_strCompany,m_strName);
if(KernelIoControl(IOCTL_PROCESSOR_INFORMATION,NULL,0,&processorInfo,sizeof(PROCESSOR_INFO),&dwSize))
wsprintf(szProcessorInfo,L"Processor: %s, %s, %dMHz",processorInfo.szProcessCore,processorInfo.szProcessorName,processorInfo.dwClockSpeed);
else
wsprintf(szProcessorInfo,L"Processor: %s",L"Unknown");
hOldFont = (HFONT)SelectObject(hdc,m_hBoldTodayFont);
SetTextColor(hdc,RGB(255,255,255));
SetBkMode(hdc,TRANSPARENT);
DrawText(hdc,szOwnerInfo,-1,&rc,DT_LEFT|DT_TOP);
rc.top=16;
DrawText(hdc,szProcessorInfo,-1,&rc,DT_LEFT|DT_TOP);
SelectObject(hdc,hOldFont);
}
void PaintPage2(HWND hWnd,HDC hdc)
{
TCHAR szMonth[16],szWeek[32];
SYSTEMTIME sysDateTime;
HFONT hOldFont;
TCHAR szIndicate[32];
float fValue;
RECT rcFill;
float fPer;
DWORD dwPer;
DWORD dwTotal,dwAvail;
HICON hIcon;
hOldFont=(HFONT)SelectObject(hdc,m_hSmallTodayFont);
SetTextColor(hdc,RGB(255,255,255));
SetBkMode(hdc,TRANSPARENT);
//draw icon
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_MEMORY));
DrawIcon(hdc,3,3,hIcon);
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_STORAGE));
DrawIcon(hdc,3,27,hIcon);
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_SDCARD));
DrawIcon(hdc,3,51,hIcon);
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_BATTERY));
DrawIcon(hdc,3,75,hIcon);
/*
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_BACKLIGHT));
DrawIcon(hdc,70,3,hIcon);
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_LED));
DrawIcon(hdc,70,27,hIcon);
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_VIBRATE));
DrawIcon(hdc,70,51,hIcon);
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_TEMPATURE));
DrawIcon(hdc,70,75,hIcon);*/
//draw bar this is 30 pixels long
hIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_BAR));
//program memory
DrawIcon(hdc,25,5,hIcon);
GetProgramMemory(&dwTotal,&dwAvail);
fPer = (float)(dwTotal-dwAvail)/(float)dwTotal;
rcFill.left = 26;rcFill.top = 6;rcFill.bottom = 15;rcFill.right = rcFill.left+(30*fPer);
FillRect(hdc,&rcFill,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
rcFill.left = 26;rcFill.top = 6;rcFill.bottom = 15;rcFill.right = rcFill.left+30;
fValue = (float)(dwTotal-dwAvail)/(float)1048576;
wsprintf(szIndicate,L"%.1fM",fValue);
DrawText(hdc,szIndicate,-1,&rcFill,DT_CENTER|DT_VCENTER);
//storage memory
DrawIcon(hdc,25,29,hIcon);
if(GetStorageMemory(&dwTotal,&dwAvail))
{
fPer = (float)(dwTotal-dwAvail)/(float)dwTotal;
rcFill.left = 26;rcFill.top = 30;rcFill.bottom = 39;rcFill.right = rcFill.left+(30*fPer);
FillRect(hdc,&rcFill,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
rcFill.left = 26;rcFill.top = 30;rcFill.bottom = 39;rcFill.right = rcFill.left+30;
fValue = (float)(dwTotal-dwAvail)/(float)1048576;
wsprintf(szIndicate,L"%.1fM",fValue);
DrawText(hdc,szIndicate,-1,&rcFill,DT_CENTER|DT_VCENTER);
}
//sd card memory
DrawIcon(hdc,25,53,hIcon);
if(GetSDCardMemory(&dwTotal,&dwAvail))
{
fPer = (float)(dwTotal-dwAvail)/(float)dwTotal;
rcFill.left = 26;rcFill.top = 54;rcFill.bottom = 63;rcFill.right = rcFill.left+(30*fPer);
FillRect(hdc,&rcFill,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
rcFill.left = 26;rcFill.top = 54;rcFill.bottom = 63;rcFill.right = rcFill.left+30;
fValue = (float)(dwTotal-dwAvail)/(float)1048576;
wsprintf(szIndicate,L"%.1fM",fValue);
DrawText(hdc,szIndicate,-1,&rcFill,DT_CENTER|DT_VCENTER);
}
else
{
rcFill.left = 26;rcFill.top = 54;rcFill.bottom = 63;rcFill.right = rcFill.left+30;
wsprintf(szIndicate,L"%s",L"?");
DrawText(hdc,szIndicate,-1,&rcFill,DT_CENTER|DT_VCENTER);
}
//power percent
DrawIcon(hdc,25,77,hIcon);
if(GetBattery(&dwPer))
{
fPer = (float)(dwPer)/(float)100;
rcFill.left = 26;rcFill.top = 78;rcFill.bottom = 87;rcFill.right = rcFill.left+(30*fPer);
FillRect(hdc,&rcFill,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
rcFill.left = 26;rcFill.top = 78;rcFill.bottom = 87;rcFill.right = rcFill.left+30;
wsprintf(szIndicate,L"%d%s",dwPer,L"%");
DrawText(hdc,szIndicate,-1,&rcFill,DT_CENTER|DT_VCENTER);
}
/*
//backlight brightness
DrawIcon(hdc,91,5,hIcon);
if(GetBacklight(&dwPer))
{
fPer = (float)(dwPer)/(float)100;
rcFill.left = 92;rcFill.top = 6;rcFill.bottom = 15;rcFill.right = rcFill.left+(30*fPer);
FillRect(hdc,&rcFill,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
rcFill.left = 92;rcFill.top = 6;rcFill.bottom = 15;rcFill.right = rcFill.left+30;
}
//text size
DrawIcon(hdc,91,29,hIcon);
//system sound
DrawIcon(hdc,91,53,hIcon);
//tempature
DrawIcon(hdc,91,77,hIcon);*/
if(hIcon)
DestroyIcon(hIcon);
SelectObject(hdc,hOldFont);
hOldFont=(HFONT)SelectObject(hdc,m_hBoldTodayFont);
//set the date time
GetDateTime(&sysDateTime);
LoadString(g_hInstance,IDS_MONTH_JAN+sysDateTime.wMonth-1,szMonth,16);
LoadString(g_hInstance,IDS_WEEK_SUN+sysDateTime.wDayOfWeek,szWeek,32);
if(sysDateTime.wDay>9)
wsprintf(szIndicate,L"%s %d, %d",szMonth,sysDateTime.wDay,sysDateTime.wYear);
else
wsprintf(szIndicate,L"%s %d%d, %d",szMonth,0,sysDateTime.wDay,sysDateTime.wYear);
//draw the date text
GetClientRect(hWnd,&rcFill);
rcFill.left = 130;rcFill.top = 0;
rcFill.bottom = 13;
SetBkMode(hdc,TRANSPARENT);
DrawText(hdc,szIndicate,-1,&rcFill,DT_CENTER|DT_VCENTER);
rcFill.left = 130;rcFill.top = 13;
rcFill.bottom = 26;
DrawText(hdc,szWeek,-1,&rcFill,DT_CENTER|DT_VCENTER);
SelectObject(hdc,hOldFont);
}
void PaintPage3(HWND hWnd,HDC hdc)
{
HFONT hFontOld;
GetRunningPrograms();
RECT rc;
if(m_pList)
{
//if(m_dwIndex<m_pList->m_dwDataCount)
{
if(m_dwIndex!=-1)
{
rc.left = m_dwRow*22;
rc.top = m_dwCol*22;
rc.right = rc.left+22;
rc.bottom = rc.top+22;
FillRect(hdc,&rc,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
}
GetClientRect(hWnd,&rc);
int i=0,j=0;
if(m_pList->m_dwDataCount>0)
{
PROGRAMDATA *pTemp = m_pList->m_pDataLast;
while(pTemp)
{
if((3+i*22)>(rc.right-20))
{
i=0;
j++;
}
DrawIcon(hdc,3+i*22,3+j*22,pTemp->hProcessIcon);
pTemp=pTemp->pPrev;
i++;
}
}
else
{
rc.left=0;rc.top=0;
rc.bottom = 21;rc.right=200;
SetBkMode(hdc,TRANSPARENT);
hFontOld = (HFONT)SelectObject(hdc,m_hBoldTodayFont);
SetTextColor(hdc,RGB(255,255,255));
DrawText(hdc,L"No running programs",-1,&rc,DT_LEFT|DT_VCENTER);
SelectObject(hdc,hFontOld);
}
}
}
HPEN hPen,hPenOld;
hPen = CreatePen(PS_SOLID,0,GetSysColor(COLOR_HIGHLIGHT));
hPenOld = (HPEN)SelectObject(hdc,hPen);
RECT rect;
GetClientRect(hWnd,&rect);
MoveToEx(hdc,0,72,NULL);
LineTo(hdc,rect.right-5,72);
SelectObject(hdc,hPenOld);
if(hPen)
DeleteObject(hPen);
if(m_pApplicationMarked)
{
if(m_pApplicationMarked->m_dwDataCount<=APP_MAX)
{
ShowWindow(GetDlgItem(hWnd,ID_APP_LEFT),SW_HIDE);
ShowWindow(GetDlgItem(hWnd,ID_APP_RIGHT),SW_HIDE);
m_dwAppPage=0;
}
else
{
ShowWindow(GetDlgItem(hWnd,ID_APP_LEFT),SW_SHOW);
ShowWindow(GetDlgItem(hWnd,ID_APP_RIGHT),SW_SHOW);
if(m_dwAppPage>0)
EnableWindow(GetDlgItem(hWnd,ID_APP_LEFT),TRUE);
if(m_dwAppPage<((m_pApplicationMarked->m_dwDataCount)>>3)) //<m_pPoom->m_dwDataCount/4
EnableWindow(GetDlgItem(hWnd,ID_APP_RIGHT),TRUE);
}
if(m_pApplicationMarked->m_dwDataCount>0)
{
if(m_dwAppIndex!=-1)
{
rc.left = m_dwAppRow*22;
rc.top = m_dwAppCol*22+74;
rc.right = rc.left+22;
rc.bottom = rc.top+20;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -