1:不能重复热键
function KeyboardHookHandler(iCode: Integer;
wParam: WPARAM;
lParam: LPARAM ): LRESULT; stdcall; export;
const
_KeyPressMask = $80000000;
var
i:integer;
Key_S:String;
begin
Result := 0;
if D_point='N' then
iCode:=-1;
If iCode < 0 Then
begin
Result := CallNextHookEx(DnfNextHook, iCode, wParam, lParam);
Exit;
end; for i:=0 to Key_.Count-1 do
begin
[code][/code] Key_S:=Key_[i];
if ((lParam and _KeyPressMask) = 0) and (wParam = Ord(Key_S[1])) then
begin Result := 1;
Do_Skill(Skill_[i]);
end;
end;
end;Key_,Skill_是个字符串数组,他们是一一对应的
例Key_[0]='A',对应的Skill_[0]就是操作,D,E,F按钮按下弹起
现在,如果我又设置一个热钱为Key_[1]='D',Skill_[1]是操作,C,B,A的按钮
这样的话,如果我按A按钮后,操作D,D由于是在热键处理中,那就对EF操作完成后,又进行D的热键操作,这样反复循环,使我热键就会出现问题,请问有什么方法解决?2:我的设置文件为Key_ini:=TInifile.Create('D:\XX\Key.ini');
我能不能设置为自动找到这个Key.ini文件路径
要不我编译后的程序老要叫人把Key.ini放在指定目录下才能运行,很麻烦
function KeyboardHookHandler(iCode: Integer;
wParam: WPARAM;
lParam: LPARAM ): LRESULT; stdcall; export;
const
_KeyPressMask = $80000000;
var
i:integer;
Key_S:String;
begin
Result := 0;
if D_point='N' then
iCode:=-1;
If iCode < 0 Then
begin
Result := CallNextHookEx(DnfNextHook, iCode, wParam, lParam);
Exit;
end; for i:=0 to Key_.Count-1 do
begin
[code][/code] Key_S:=Key_[i];
if ((lParam and _KeyPressMask) = 0) and (wParam = Ord(Key_S[1])) then
begin Result := 1;
Do_Skill(Skill_[i]);
end;
end;
end;Key_,Skill_是个字符串数组,他们是一一对应的
例Key_[0]='A',对应的Skill_[0]就是操作,D,E,F按钮按下弹起
现在,如果我又设置一个热钱为Key_[1]='D',Skill_[1]是操作,C,B,A的按钮
这样的话,如果我按A按钮后,操作D,D由于是在热键处理中,那就对EF操作完成后,又进行D的热键操作,这样反复循环,使我热键就会出现问题,请问有什么方法解决?2:我的设置文件为Key_ini:=TInifile.Create('D:\XX\Key.ini');
我能不能设置为自动找到这个Key.ini文件路径
要不我编译后的程序老要叫人把Key.ini放在指定目录下才能运行,很麻烦
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货