首先,使用函数CreateFileMapping创建要共享的文件数据句柄,然后使用MapViewOfFile获取共享内存地址,然后使用OpenFileMapping函数在其他进程中打开共享文件的名称
打开语音文件映射(语音)//共享文件对象。 m _ hmap file=openfile mapping (file _ map _ all _ access,FALSE,_t ) ' testfilemap ' ); if(m_hmapfile(//显示共享的文件数据。 LPTSTR lpMapAddr=(LPTSTR ) mapviewoffile(m_hmapfile,FILE_MAP_ALL_ACCESS,0,0,0 ); outputdebugstring(lpmapaddr; }创建}else{ //共享文件。
m _ hmap file=create file mapping ((handle )0xFFFFFFFF,NULL,PAGE_READWRITE,0,1024,_t ) ) ) //将数据复制到共享文件。 LPTSTR lpMapAddr=(LPTSTR ) mapviewoffile(m_hmapfile,FILE_MAP_ALL_ACCESS,0,0,0 ); STD:3360wstringstrtest(_t ) ) testfilemap ); cscpy(lpmapaddr,strTest.c_str ) );
flushviewoffile(lpmapaddr,strTest.length () 1; }
Win32的WinMain
DLL的DLLMain
oolapientrydllmain (handle hmodule,
DWORD ul_reason_for_call,
lpvoid保留的
)
{
切换(ul _ reason _ for _ call ) )。
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
布雷克;
}
hinstance=(hinstance ) hModule; 获得//dll实例
返回真;
}
lresultcallbackhookproc (int ncode、WPARAM wParam、LPARAM lParam ) )。
{。
//提示:键盘已锁定,判断并查看提示窗口是否已存在。 否则,你会永远弹下去
if (!findwindow(0,' KeyBoard Locked ' ) )//user32.lib头文件: winuser.h
{
messagebox(0,'键盘已锁定!' 、' KeyBoard Locked ',MB_OK;
}
返回1; //returncallnexthookex(hhkhook,nCode,wParam,lParam ) ) )不在,信息就无法传递,所以我们的键盘无法正常工作
}
hk hook=setwindowshookex (wh _ keyboard,) HOOKPROC,hInstance,0 ) ) ) ) ) )。
unhookwindowshookex(hhkhook );