귀하의 질문이 내 관심을 불러 일으켰 기 때문에 나는 약간의 파고를했으며 불행히도 적절한 대답이 없지만 내가 가진 것을 공유 할 것이라고 생각했습니다.
1998 년에 작성된 키보드 후크 (Delphi에서)를 만드는 이 예제를 찾았 지만 Delphi 2007에서 몇 가지 조정을 통해 컴파일 할 수 있습니다.
다음을 호출하는 DLL입니다. SetWindowsHookEx
콜백 함수를 통해 전달 키 입력을 가로 챌 수 있습니다.이 경우 재미를 위해 조작하고 왼쪽 커서를 오른쪽으로 변경하는 등의 작업을 수행합니다. 그런 다음 간단한 앱이 DLL을 호출하고 다시보고합니다. TTimer 이벤트를 기반으로 한 결과. 관심이 있으시면 Delphi 2007 기반 코드를 게시 할 수 있습니다.
잘 문서화되고 주석이 달렸으며 잠재적으로 키 누름이 진행되는 위치를 파악하는 기초로 사용할 수 있습니다. 키 입력을 보낸 응용 프로그램의 핸들을 가져올 수 있다면 그 방법으로 추적 할 수 있습니다. 이 핸들을 사용하면 필요한 정보를 아주 쉽게 얻을 수 있습니다.
다른 앱은 단축키의 또 다른 용어 인 단축키를 포함 할 수 있기 때문에 단축키를 통해 단축키를 결정하려고 시도했습니다. 그러나 대부분의 응용 프로그램은이 속성을 설정하지 않으므로 많이 반환하지 않을 수 있습니다. 해당 경로에 관심이 있다면 Delphi는 IShellLink
바로 가기를로드하고 핫키를 가져 오는 데 사용할 수있는 COM 인터페이스에 액세스 할 수 있습니다.
uses ShlObj, ComObj, ShellAPI, ActiveX, CommCtrl;
procedure GetShellLinkHotKey;
var
LinkFile : WideString;
SL: IShellLink;
PF: IPersistFile;
HotKey : Word;
HotKeyMod: Byte;
HotKeyText : string;
begin
LinkFile := 'C:\Temp\Temp.lnk';
OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, SL));
// The IShellLink implementer must also support the IPersistFile
// interface. Get an interface pointer to it.
PF := SL as IPersistFile;
// Load file into IPersistFile object
OleCheck(PF.Load(PWideChar(LinkFile), STGM_READ));
// Resolve the link by calling the Resolve interface function.
OleCheck(SL.Resolve(0, SLR_ANY_MATCH or SLR_NO_UI));
// Get hotkey info
OleCheck(SL.GetHotKey(HotKey));
// Extract the HotKey and Modifier properties.
HotKeyText := '';
HotKeyMod := Hi(HotKey);
if (HotKeyMod and HOTKEYF_ALT) = HOTKEYF_ALT then
HotKeyText := 'ALT+';
if (HotKeyMod and HOTKEYF_CONTROL) = HOTKEYF_CONTROL then
HotKeyText := HotKeyText + 'CTRL+';
if (HotKeyMod and HOTKEYF_SHIFT) = HOTKEYF_SHIFT then
HotKeyText := HotKeyText + 'SHIFT+';
if (HotKeyMod and HOTKEYF_EXT) = HOTKEYF_EXT then
HotKeyText := HotKeyText + 'Extended+';
HotKeyText := HotKeyText + Char(Lo(HotKey));
if (HotKeyText = '') or (HotKeyText = #0) then
HotKeyText := 'None';
ShowMessage('Shortcut Key - ' + HotKeyText);
end;
당신에 대한 액세스 권한을 가지고있는 경우에 사파리 온라인 하는이 바로 가기 / 쉘 링크 사용에 대한 좋은 부분 스티브 텍사스와 사비 파 체코에 의해 볼랜드 델파이 6 개발자 안내서는. 위의 예는 거기 와이 사이트 에서 도살 된 버전입니다 .
도움이 되었기를 바랍니다.
WM_HOTKEY
의 메시지 메시지 로그를 핫키를 누른 후, 당신은 스파이의 32 비트 버전을 실행해야 할 수도 있습니다 ++ .