呵呵,這種情況只能用全局鉤子來做,用WH_KEYBOARD類型的鍵盤鉤子就行。在Hook回調函數(shù)中修改虛擬鍵代碼就行了~
創(chuàng)新互聯(lián)主營芮城網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發(fā),芮城h5成都小程序開發(fā)搭建,芮城網站營銷推廣歡迎芮城等地區(qū)企業(yè)咨詢
大概的實現(xiàn)過程在下面講一下:
先寫一個DLL,全局鉤子必須放在DLL中才能映射到所有進程的地址空間。
然后先定義回調函數(shù),再定義兩個導出函數(shù),用于安裝和卸載Hook
這個是回調函數(shù)原型,核心部分在這里,注意看哦
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
重點注意wParam,這就是虛擬鍵代碼,你可以判斷這的虛擬鍵代碼是否與a的虛擬鍵代碼吻合,如果是,就把他改成b的虛擬鍵代碼,只要該掉這個,你想要的功能就實現(xiàn)了。在函數(shù)的最后,別忘了返回CallNextHookEx函數(shù)的返回值。
關于Hook機制的詳細資料,請看MSDN文檔:
(en-us,VS.85).aspx
#includestdio.h
float x,y;
void main()
{
printf("Please Input x:\n");
scanf("%f",x);
if(x==0) y=20;
else if(x0)
y=x+10;
else y=30*x;
printf("Y=%5.2f",y);
}
書的后面不是有講,散列表就是一種映射。
數(shù)據(jù)的存儲方式是按照key-value。
key和value有種映射關系。
在散列表中key則是通過散列函數(shù)計算出來的。