首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

能够说下怎么修改其他程序的CDateTimeCtrl控件的时间

2012-02-14 
能够说下如何修改其他程序的CDateTimeCtrl控件的时间?能够说下如何修改其他程序的CDateTimeCtrl控件的时间

能够说下如何修改其他程序的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);
}
}
}

热点排行