16,472
社区成员
发帖
与我相关
我的任务
分享
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include "resource.h"
#include "autozen.h"
#pragma comment(lib, "c:\\1\\autozen\\debug\\mess.lib")
LRESULT CALLBACK DlgProc1(HWND hwnd, UINT message, WPARAM wParam,LPARAM lParam);
//===================================================================================================
HINSTANCE hIn;
STARTUPINFO si, si_yc;
PROCESS_INFORMATION pi_zen, pi_yc;
TCHAR buf[MAX_PATH];
//***************************************************************************************************
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
hIn = hInstance;
DialogBoxParam(hIn, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DlgProc1, NULL);
return 0;
}
//==============================================================================================
LRESULT CALLBACK DlgProc1(HWND hDlg, UINT message, WPARAM wParam,LPARAM lParam)
{
static int type, otheruno;
switch(message)
{
case WM_INITDIALOG:
{
si.cb = sizeof(STARTUPINFO);
//-----------------------------------------------------------------------------------zen 6
_tcscpy(buf, L"C:\\Windows\\system32\\notepad.exe");
if(CreateProcess(buf, L"", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi_zen) == 0)
return 0;
if(WaitForInputIdle(pi_zen.hProcess, INFINITE) != 0)//此函数等待新进程初始化完成才返回
return 0;
InstallHook(hDlg, pi_zen.dwThreadId, WM_HOOK);
return TRUE;
}
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:{
return TRUE;
}
case IDCANCEL:{
EndDialog(hDlg, FALSE);
return TRUE;
}
}
case WM_CLOSE:
EndDialog(hDlg, FALSE);
return TRUE;
default:
;
}
return FALSE;
}
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <tchar.h>
#include "..\\autozen\\autozen.h"
//----------------------------------------------
#pragma data_seg ("shared")
HHOOK hHook = 0;
HWND hWnd = 0;
UINT dwMessage = 0;
#pragma data_seg ()
//---------------------------------------------------------------------------------------------
HINSTANCE hIn;
//==============================================================================================
int WINAPI DllMain(HINSTANCE _hInstance, DWORD fdwReason, PVOID pvReserved)
{
hIn = _hInstance;
return TRUE;
}
//===============================================================================================
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HC_ACTION){
MSG msg = *(MSG *)lParam;
if(msg.message == WM_COMMAND){
SendMessage(hWnd, WM_HOOK, wParam, lParam);
}
}
return 0;
}
//==============================================================================================
BOOL CALLBACK InstallHook(HWND _hWnd, DWORD tid, int _dwMessage)
{
hWnd = _hWnd;
dwMessage = _dwMessage;
hHook = SetWindowsHookEx(WH_GETMESSAGE, HookProc, hIn, tid);
if(hHook == 0)
MessageBox(NULL, _T("钩子安装失败!"), NULL, MB_ICONERROR);
return TRUE;
}
//==============================================================================================
BOOL CALLBACK UninstallHook()
{
UnhookWindowsHookEx(hHook);
return TRUE;
}
#define WM_HOOK WM_USER + 1
#define WM_WAIT WM_USER + 2
BOOL CALLBACK InstallHook(HWND _hWnd, DWORD tid, int _dwMessage);
BOOL CALLBACK UninstallHook();
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam);