⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 systeminfo.cpp

📁 用来显示PDA的系统信息,控制PDA的动作 today pugin程序.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				FillRect(hdc,&rc,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
			}
			int	i=0,j=0,iSelect=0;
			PROGRAMDATA	*pTemp = m_pApplicationMarked->GetIndexData(m_dwAppPage<<3);//m_pApplication->m_pDataFirst;
			while(pTemp)
			{
				if(i>7)
					break;
				//if(pTemp->bSelected)
				{
					DrawIcon(hdc,3+i*22,75+j*22,pTemp->hProcessIcon);
					iSelect++;
					i++;
				}
				pTemp=pTemp->pNext;
			}
			if(iSelect==0)
			{
				rc.left=0;rc.top=73;
				rc.bottom = 95;rc.right=200;
				SetBkMode(hdc,TRANSPARENT);
				hFontOld = (HFONT)SelectObject(hdc,m_hBoldTodayFont);
				SetTextColor(hdc,RGB(255,255,255));
				DrawText(hdc,L"Tap here to set applications link",-1,&rc,DT_LEFT|DT_VCENTER);
				SelectObject(hdc,hFontOld);
			}
		}
		else
		{
			rc.left=0;rc.top=73;
			rc.bottom = 95;rc.right=200;
			SetBkMode(hdc,TRANSPARENT);
			hFontOld = (HFONT)SelectObject(hdc,m_hBoldTodayFont);
			SetTextColor(hdc,RGB(255,255,255));
			DrawText(hdc,L"Tap here to set applications link",-1,&rc,DT_LEFT|DT_VCENTER);
			SelectObject(hdc,hFontOld);
		}
	}
	else
	{
		rc.left=0;rc.top=73;
		rc.bottom = 95;rc.right=200;
		SetBkMode(hdc,TRANSPARENT);
		hFontOld = (HFONT)SelectObject(hdc,m_hBoldTodayFont);
		SetTextColor(hdc,RGB(255,255,255));
		DrawText(hdc,L"Tap here to set applications link",-1,&rc,DT_LEFT|DT_VCENTER);
		SelectObject(hdc,hFontOld);
		ShowWindow(GetDlgItem(hWnd,ID_APP_LEFT),SW_HIDE);
		ShowWindow(GetDlgItem(hWnd,ID_APP_RIGHT),SW_HIDE);
	}
}
void	PaintPage4(HWND hWnd,HDC hdc)
{
	//here can add some tasks and appointment
	HFONT	hFontOld;
	SetBkMode(hdc,TRANSPARENT);
	hFontOld = (HFONT)SelectObject(hdc,m_hBoldTodayFont);
	SetTextColor(hdc,RGB(255,255,255));
	RECT	rc;
	TCHAR	szTitle[256];
	GetTaskAndAppointment();
	if(m_pPoom)
	{
		if(m_pPoom->m_dwDataCount<=TASK_MAX)
		{
			ShowWindow(GetDlgItem(hWnd,ID_TASK_UP),SW_HIDE);
			ShowWindow(GetDlgItem(hWnd,ID_TASK_DOWN),SW_HIDE);
			m_dwPage=0;
		}
		else
		{
			ShowWindow(GetDlgItem(hWnd,ID_TASK_UP),SW_SHOW);
			ShowWindow(GetDlgItem(hWnd,ID_TASK_DOWN),SW_SHOW);

			if(m_dwPage>0)
				EnableWindow(GetDlgItem(hWnd,ID_TASK_UP),TRUE);

			if(m_dwPage<(m_pPoom->m_dwDataCount>>2)) //<m_pPoom->m_dwDataCount/4
				EnableWindow(GetDlgItem(hWnd,ID_TASK_DOWN),TRUE);
		}

		if(m_pPoom->m_dwDataCount>0)
		{
			if(m_dwTaskIndex!=-1)
			{
				GetClientRect(hWnd,&rc);
				rc.right-=18;
				rc.top=m_dwTaskRow*24;
				rc.bottom=rc.top+24;
				FillRect(hdc,&rc,CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT)));
			}

			POOMDATA	*pTemp = m_pPoom->GetIndexData(m_dwPage<<2);//m_pPoom->m_pDataFirst;
			GetClientRect(hWnd,&rc);
			int i = 0;
			while(pTemp)
			{
				if(i*24>=96)
				{
					break;
				}
				rc.top=i*24;rc.bottom=rc.top+24;
				if(pTemp->pTask)
				{
					wsprintf(szTitle,L"Task %d: %s",pTemp->dwPoomId,pTemp->pTask->szSubject);
					SelectObject(hdc,m_hBoldTodayFont);
					//rc.left=0;
					DrawText(hdc,szTitle,-1,&rc,DT_LEFT|DT_TOP);
					wsprintf(szTitle,L"Due: %d/%d/%d",
								pTemp->pTask->sysDueDate.wYear,
								pTemp->pTask->sysDueDate.wMonth,
								pTemp->pTask->sysDueDate.wDay);
					SelectObject(hdc,m_hNormalTodayFont);
					//rc.left=5;
					DrawText(hdc,szTitle,-1,&rc,DT_LEFT|DT_BOTTOM);
				}

				if(pTemp->pAppointment)
				{
					wsprintf(szTitle,L"Appointment %d: %s",pTemp->dwPoomId,pTemp->pAppointment->szSubject);
					SelectObject(hdc,m_hBoldTodayFont);
					//rc.left=0;
					DrawText(hdc,szTitle,-1,&rc,DT_LEFT|DT_TOP);
					wsprintf(szTitle,L"Date: %d/%d/%d(%d:%d)~%d/%d/%d(%d:%d)",
								pTemp->pAppointment->sysStartDate.wYear,
								pTemp->pAppointment->sysStartDate.wMonth,
								pTemp->pAppointment->sysStartDate.wDay,
								pTemp->pAppointment->sysStartDate.wHour,
								pTemp->pAppointment->sysStartDate.wMinute,
								pTemp->pAppointment->sysEndDate.wYear,
								pTemp->pAppointment->sysEndDate.wMonth,
								pTemp->pAppointment->sysEndDate.wDay,
								pTemp->pAppointment->sysEndDate.wHour,
								pTemp->pAppointment->sysStartDate.wMinute);
					SelectObject(hdc,m_hNormalTodayFont);
					//rc.left=5;
					DrawText(hdc,szTitle,-1,&rc,DT_LEFT|DT_BOTTOM);
				}
				pTemp = pTemp->pNext;
				i++;
			}
		}
		else
		{
			rc.left=0;rc.top=0;
			rc.bottom = 21;rc.right=200;
			SelectObject(hdc,m_hBoldTodayFont);
			DrawText(hdc,L"No tasks and appoinments",-1,&rc,DT_LEFT|DT_VCENTER);
			m_dwTaskIndex = -1;
		}
	}
	SelectObject(hdc,hFontOld);
}
void	GetProgramMemory(LPDWORD dwTotal,LPDWORD dwAvaiable)
{
	MEMORYSTATUS	memStatus;
	memset(&memStatus,0x00,sizeof(MEMORYSTATUS));
	memStatus.dwLength = sizeof(MEMORYSTATUS);

	GlobalMemoryStatus(&memStatus);
	*dwTotal = memStatus.dwTotalPhys;
	*dwAvaiable = memStatus.dwAvailPhys;
}
BOOL	GetStorageMemory(LPDWORD dwTotal,LPDWORD dwAvaiable)
{
	ULARGE_INTEGER	AvailMem,TotalMem;

	if(GetDiskFreeSpaceEx(NULL,&AvailMem,&TotalMem,NULL))
	{
		*dwTotal = TotalMem.LowPart;
		*dwAvaiable = AvailMem.LowPart;
		return TRUE;
	}
	return FALSE;
}
BOOL	GetSDCardMemory(LPDWORD dwTotal,LPDWORD dwAvaiable)
{
	ULARGE_INTEGER	AvailMem,TotalMem;
	WIN32_FIND_DATA	SDCardData;
	TCHAR	szSDCard[MAX_PATH];

	HANDLE	hSDCard = FindFirstFlashCard(&SDCardData);
	if(hSDCard != INVALID_HANDLE_VALUE)
	{
		wsprintf(szSDCard,L"\\%s",SDCardData.cFileName);
		FindClose(hSDCard);
		if(!lstrcmp(SDCardData.cFileName,L""))
			return FALSE;

		if(GetDiskFreeSpaceEx(szSDCard,&AvailMem,&TotalMem,NULL))
		{
			*dwTotal = TotalMem.LowPart;
			*dwAvaiable = AvailMem.LowPart;
			return TRUE;
		}
	}
	return FALSE;
}
BOOL	GetBacklight(LPDWORD dwLevel)
{
	return FALSE;
}
BOOL	GetBattery(LPDWORD dwPercent)
{
	SYSTEM_POWER_STATUS_EX	powerEx;
	if(GetSystemPowerStatusEx(&powerEx,TRUE))
	{
		*dwPercent = powerEx.BatteryLifePercent;
		return TRUE;
	}
	return FALSE;
}
void	OnChildrenTimer(HWND hWnd,WPARAM wParam)
{
	if((DWORD)wParam == ID_PAGE2_TIMER)
	{/*
		RECT	rc;
		GetClientRect(hWnd,&rc);
		rc.left = 130;rc.top = 75;
		rc.bottom = 88;
		InvalidateRect(hWnd,&rc,TRUE);
		UpdateWindow(hWnd);*/
	}
	else if((DWORD)wParam == ID_PAGE3_TIMER)
	{
		//GetRunningPrograms();
	}
	else if((DWORD)wParam == ID_CLOCK_TIMER)
	{
		//GetRunningPrograms();
		InvalidateRect(hWnd,NULL,TRUE);
		UpdateWindow(hWnd);
	}
}
BOOL	GetLed(LPDWORD dwLed)
{
	return FALSE;
}
BOOL	GetVibrate(LPDWORD dwVibrate)
{
	return FALSE;
}
void	GetRunningPrograms()
{
	if(m_pList)
	{
		delete m_pList;
		m_pList = NULL;
	}
	m_pList = new CProgramList();
	EnumWindows((WNDENUMPROC) EnumWindowsProc, NULL );
}

BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)
{
	if(IsWindowVisible(hWnd))
	{
		TCHAR	szCaption[MAX_LOADSTRING];
		int iCount = GetWindowText(hWnd,szCaption,MAX_LOADSTRING);
		
		if(iCount)
		{
			DWORD	dwProcessId;
			GetWindowThreadProcessId(hWnd,&dwProcessId);
			HMODULE	hModule = (HMODULE)OpenProcess( PROCESS_ALL_ACCESS,FALSE,dwProcessId);
			if(hModule)
			{
				TCHAR	szPath[MAX_PATH];
				GetModuleFileName(hModule,szPath,MAX_PATH);
				CloseHandle(hModule);
				//ingore shell32.exe/phone ap/serch ap
				if( lstrcmp(szPath,L"\\Windows\\shell32.exe") && lstrcmp(szPath,L"\\Windows\\cprog.exe")
					&& lstrcmp(szPath,L"\\Windows\\shfind.exe") )
				{
					SHFILEINFO	shFileInfo;
					SHGetFileInfo(szPath,NULL,&shFileInfo,sizeof(SHFILEINFO),
							SHGFI_DISPLAYNAME | SHGFI_ICON | SHGFI_SMALLICON | SHGFI_TYPENAME |
							SHGFI_ATTRIBUTES | SHGFI_SYSICONINDEX);

				//	if(!m_pList->DataExistIn(szCaption))
					{
						PROGRAMDATA	*pData = (PROGRAMDATA*)malloc(sizeof(PROGRAMDATA));
						lstrcpy(pData->szProcessName,szCaption);
						pData->dwProcessId = dwProcessId;
						pData->hProcessWnd = hWnd;
						if(lstrcmp(szCaption,L"Contacts")==0)
						{
							pData->hProcessIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_CONTACTS));
						}
						else if(lstrcmp(szCaption,L"Tasks")==0)
						{
							pData->hProcessIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_TASKS));
						}
						else if(lstrcmp(szCaption,L"Calendar")==0)
						{
							pData->hProcessIcon = LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_CALENDAR));
						}
						else
						{
							pData->hProcessIcon = shFileInfo.hIcon;
						}
						
						if(!m_pList->AddDataToList(pData))
							MessageBox(NULL,L"List programs error",L"Error",MB_OK);
					}
				}
			}
		}
	}
	return TRUE;
}

void	GetDateTime(LPSYSTEMTIME	localTime)
{
	GetLocalTime(localTime);
}

void	OnHandlePage4Down(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
	HMENU	hMenuPopup;
	RECT	rc;
	RECT	rcWork;
	GetClientRect(hWnd,&rc);
	SystemParametersInfo(SPI_GETWORKAREA, NULL, &rcWork, FALSE);
	POINT	ptPos;
	ptPos.x = LOWORD(lParam);
	ptPos.y = HIWORD(lParam);

	m_dwTaskIndex = GetTaskIndex(ptPos,&m_dwTaskRow);
	if(m_dwTaskIndex+m_dwPage*4>= m_pPoom->m_dwDataCount)
		m_dwTaskIndex = -1;

	if(m_dwTaskIndex!=-1)
	{
		rc.top = m_dwTaskRow*24;
		rc.bottom = rc.top+24;

		m_hTaskRgn = CreateRectRgnIndirect(&rc);
		CombineRgn(m_hOldTaskRgn,m_hOldTaskRgn,m_hTaskRgn,RGN_OR);

		InvalidateRgn(hWnd,m_hOldTaskRgn,TRUE);
		UpdateWindow(hWnd);

		DeleteObject(m_hOldTaskRgn);
		DeleteObject(m_hTaskRgn);
		m_hOldTaskRgn = CreateRectRgnIndirect(&rc);

		hMenuPopup = CreatePopupMenu();
		AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_TASKAPP_DETAIL,NULL);
		ptPos.y = (m_dwTaskRow+1)*24;
		ClientToScreen(hWnd,&ptPos);
		TrackPopupMenu(hMenuPopup,TPM_RIGHTALIGN|TPM_BOTTOMALIGN,rcWork.right,ptPos.y,0,hWnd,NULL);
		DestroyMenu(hMenuPopup);
	}
}
void	OnHandlePage1Down(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
	PROCESS_INFORMATION pi;
	memset(&pi, 0, sizeof(pi));

	RECT	rc;
	GetClientRect(hWnd,&rc);
	rc.bottom = 15;rc.right >>=1;
	POINT	ptPos;
	ptPos.x = LOWORD(lParam);
	ptPos.y = HIWORD(lParam);

	if(PtInRect(&rc,ptPos))
	{
		if (!CreateProcess(L"\\windows\\ctlpnl.exe", L"cplmain.cpl,2,0", NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi))
		{
			MessageBox(hWnd, L"Owner info can not be opened.", L"Error", MB_OK|MB_ICONERROR);
		}
	}
}
void	OnHandleChildrenDown(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
	HMENU	hMenuPopup;
	RECT	rc;
	POINT	ptPos;
	ptPos.x = LOWORD(lParam);
	ptPos.y = HIWORD(lParam);

	//ScreenToClient(hWnd,&ptPos);
	m_dwIndex = GetProgramIndex(ptPos,&m_dwRow,&m_dwCol);
	if(m_dwIndex!=-1)
	{
		rc.left = m_dwRow*22;
		rc.top = m_dwCol*22;
		rc.right = rc.left+22;
		rc.bottom = rc.top+22;

		m_hNewRgn = CreateRectRgnIndirect(&rc);

		CombineRgn(m_hOldRgn,m_hOldRgn,m_hNewRgn,RGN_OR);

		InvalidateRgn(hWnd,m_hOldRgn,TRUE);
		UpdateWindow(hWnd);

		DeleteObject(m_hOldRgn);
		DeleteObject(m_hNewRgn);
		m_hOldRgn = CreateRectRgnIndirect(&rc);

		//create popup menu
		hMenuPopup = CreatePopupMenu();

		AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPMENU_NAME,NULL);
		AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPMENU_ACTIVE,NULL);
		AppendMenu(hMenuPopup, MF_SEPARATOR,ID_POPUPMENU_SEP,NULL);
		AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPMENU_STOP,NULL);
		AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPMENU_STOPALL,NULL);

		ClientToScreen(hWnd,&ptPos);
		TrackPopupMenu(hMenuPopup,TPM_LEFTALIGN|TPM_TOPALIGN,ptPos.x,ptPos.y,0,hWnd,NULL);
		DestroyMenu(hMenuPopup);
	}
	else
	{
		GetClientRect(hWnd,&rc);
		rc.top = 73;
		if(PtInRect(&rc,ptPos))
		{
			if(m_pApplicationMarked)
			{
				if(m_pApplicationMarked->m_dwDataCount>0)
				{
					m_dwAppIndex = GetApplicationIndex(ptPos,&m_dwAppRow,&m_dwAppCol);
					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;

						m_hNewAppRgn = CreateRectRgnIndirect(&rc);

						CombineRgn(m_hOldAppRgn,m_hOldAppRgn,m_hNewAppRgn,RGN_OR);

						InvalidateRgn(hWnd,m_hOldAppRgn,TRUE);
						UpdateWindow(hWnd);

						DeleteObject(m_hOldAppRgn);
						DeleteObject(m_hNewAppRgn);
						m_hOldAppRgn = CreateRectRgnIndirect(&rc);

						//create popup menu
						hMenuPopup = CreatePopupMenu();

						AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPAPP_NAME,NULL);
						AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPAPP_RUN,NULL);
						AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPAPP_REMOVE,NULL);
						AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPAPP_REMOVEALL,NULL);
						AppendMenu(hMenuPopup, MF_SEPARATOR,ID_POPUPAPP_SEP,NULL);
						AppendMenu(hMenuPopup, MF_OWNERDRAW,ID_POPUPAPP_ADD,NULL);

						ClientToScreen(hWnd,&ptPos);
						TrackPopupMenu(hMenuPopup,TPM_LEFTALIGN|TPM_TOPALIGN,ptPos.x,ptPos.y,0,hWnd,NULL);
						DestroyMenu(hMenuPopup);
					}
				}
				else
				{
					//SetCursor(LoadCursor(NULL, IDC_WAIT));
					DialogBox(g_hInstance, (LPCTSTR)IDD_APPLICATION, hWnd,ApplicationProc);
					//SetCursor(NULL);
				}
			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -