
可以用有名管道或者mutex之类的东西发个消息。
程序启动后打开这个有名的东西, 如果发现它已经存在了, 就触发它, 然后用个线程wait在这个东西上(当然wait之前要先让它无效), 醒了就exit
MFC指的是Microsoft Foundation Classes ,是一种ApplicationFramework,随微软Visual C++开发工具发布。MFC以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从CObject 直接或间接派生,只有少部分类例外。 其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎。VC++是Windows下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。
MFC是WinAPI与C++的结合。API,即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但不是一种程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行
MFC不只是一个功能单纯的界面开发系统,它提供的类绝大部分用来进行界面开发,关联一个窗口的动作,但它提供的类中有好多类不与一个窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建、销毁),而是一些在Windows(用MFC编写的程序绝大部分都在Windows中运行)中实现内部处理的类,如数据库的管理类等
安装鼠标钩子
用到的函数有:
SetWindowsHookExA() //设置钩子
GetModuleHandle() //获取模块句柄
UnhookWindowsHookEx() //关闭钩子
SetDlgItemText() //设置控件文本
用到的结构体有:
KBDLLHOOKSTRUCT
步骤一:在XXXXXDlgcpp顶端定义
#define WH_KEYBOARD_LL 13
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT;
HHOOK 键盘;
HWND hwnd;
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
//这些就是HOOK代码
LRESULT lResult = CallNextHookEx(键盘, nCode, wParam, lParam);
//PMSG pmsg = (PMSG)lParam;
//这时候pmsg->message就是消息了
CString I;
IFormat(_T("键盘状态:%d"),wParam);
SetDlgItemText(hwnd,IDC_EDIT3,I);
KBDLLHOOKSTRUCT 指针=(KBDLLHOOKSTRUCT)lParam;
IFormat(_T("键代码:%d"),指针->vkCode);
SetDlgItemText(hwnd,IDC_EDIT4,I);
return FALSE;
}
步骤二:代码写:
hwnd=m_hWnd;
//键盘事件的响应步骤是:
//键盘驱动->系统键盘消息处理->当前进程消息处理->当前窗口消息处理
//WH_KEYBOARD_LL插在系统键盘消息处理前
//而WH_KEYBOARD则插在当前进程消息处理前
//因此如果你WH_KEYBOARD hook正确而WH_KEYBOARD_LL hook得不到想要得结果,那么唯一可能就是你把一些不该过滤的键盘消息给过滤掉了。
键盘 = SetWindowsHookExA(WH_KEYBOARD_LL,LowLevelKeyboardProc,GetModuleHandle(NULL),NULL);
步骤三:在类视图XXXXXXDlg->消息->WM_DESTROY写:
UnhookWindowsHookEx(键盘);
以上就是关于用MFC写了个程序,调用了一个子模块,主程序界面可以关闭,但在进程里仍然存在,关不掉,请高手解答全部的内容,包括:用MFC写了个程序,调用了一个子模块,主程序界面可以关闭,但在进程里仍然存在,关不掉,请高手解答、C++语言中说的“MFC”一般是指什么啊、mfc中如果不用dll,主程序中直接用SetWindowsHookEx截获其他指定的应用程序的键盘 *** 作应该如何设置参数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)