如果你的不是这个程序出错,可以找到出错的地方,卸载该程序就可以了
安装个消息钩子即可首先创建个钩子dll 核心代码
//-------------------------------------dllmain上面添加
HHOOK g_hHookGetMessage = NULL
#pragma data_seg("seg")
HWND g_hMainWnd = NULL
#pragma data_seg()
#pragma comment(linker, "/section:seg,RWS")
dll函数实现
LRESULT CALLBACK GetMsgProc(int code, WPARAM wParam, LPARAM lParam)
{
if(code == HC_ACTION)
{
CWPSTRUCT * pcw=reinterpret_cast<CWPSTRUCT *>(lParam)
if(pcw->message == WM_SYSCOMMAND)
{
if (pcw->wParam==SC_MINIMIZE)
{
//TODO:在此添加你的处理代码
MessageBox(NULL,"最小化了","11",MB_OK)
}else if (pcw->wParam==SC_MAXIMIZE)
{
//TODO:在此添加你的处理代码
MessageBox(NULL,"最大化了","22",MB_OK)
}
}
}
return CallNextHookEx(g_hHookGetMessage, code, wParam, lParam)
}
void InstallHook_GetMessage()
{
g_hHookGetMessage = SetWindowsHookEx(WH_CALLWNDPROC, GetMsgProc, ::GetModuleHandle("APIHook_Dll"), 0)
}
void InstallHooks(HWND hWnd)
{
g_hMainWnd = hWnd
InstallWordHook_GetMessage()
}
void UnInstallHooks()
{
UnhookWindowsHookEx(g_hHookGetMessage)
}
//-------测试钩子,测试的是任务管理器
void Testtaskmgr()
{
HANDLE Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)
PROCESSENTRY32 processListStr
if(Snapshot==(HANDLE)-1)
{
return
}
BOOL iFind = Process32First(Snapshot, &processListStr)
processListStr.dwSize = sizeof(PROCESSENTRY32)
while(iFind)
{
CString name = "taskmgr.exe"
if (!name.Compare(processListStr.szExeFile))
{
HANDLE processhandle= OpenProcess(PROCESS_ALL_ACCESS, TRUE, processListStr.th32ProcessID)
DWORD processID = processListStr.th32ProcessID //进程ID
HWND tempHWND = GetHwndByProcessId(processID)
InstallHooks(tempHWND)
break
}
iFind = Process32Next(Snapshot, &processListStr)
}
CloseHandle(Snapshot)
}
如果想找一款能监督按时学习的软件,建议可以在手机或者电脑上使用一些便签软件制定学习计划。
敬业签是一款既支持在手机上使用,又支持在电脑上使用的便签软件,手机电脑可同步记录的学习计划;
针对记录的学习计划,敬业签可设定时间提醒,支持设置单次定时提醒、周期循环提醒、重要事项间隔时间提醒;
当每一项学习计划完成后,在便签上可以标注该项内容已完成,日后可以查看已完成列表上的相关记录查看过去的学习计划完成内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)