能够说下如何修改其他程序的CDateTimeCtrl控件的时间?
能够说下如何修改其他程序的CDateTimeCtrl控件的时间?
时间格式为:23:12:12
[解决办法]
SYSTEMTIME st;
GetSystemTime(&st);
st.wHour = 9;
st.wMinute = 52;
st.wSecond = 32;
SendMessage(DateTimePicker1-> Handle, DTM_SETSYSTEMTIME, 0 , (LPARAM)&st);
[解决办法]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
DWORD pid;
void *pAddr;
HANDLE hProcess;
SYSTEMTIME st;
HWND hwndParent = FindWindow( "TForm1 ", "Temp "); //这两行根据实际情况更改
HWND hwnd = FindWindowEx(hwndParent, NULL, "TDateTimePicker ", NULL);
if (hwnd != NULL)
{
GetWindowThreadProcessId(hwndParent, &pid);
hProcess = OpenProcess(PROCESS_VM_READ|PROCESS_VM_WRITE
|PROCESS_VM_OPERATION, FALSE, pid);
if (hProcess != NULL)
{
pAddr = VirtualAllocEx(hProcess, NULL, sizeof(SYSTEMTIME),
MEM_COMMIT, PAGE_READWRITE);
if (pAddr != NULL)
{
GetSystemTime(&st);
st.wHour = 9;
st.wMinute = 52;
st.wSecond = 32;
if (WriteProcessMemory(hProcess, pAddr, &st, sizeof(SYSTEMTIME),
NULL))
{
SendMessage(hwnd, DTM_SETSYSTEMTIME, 0 , (LPARAM)pAddr);
}
VirtualFreeEx(hProcess, pAddr, 0, MEM_RELEASE);
}
CloseHandle(hProcess);
}
}
}