간단한 프로그램을 하나 짜봤는데요..
내용인 즉 실행시 마우스 위치를 정해진 곳으로 이동을 합니다.그리고 클릭을 하고요. 그런 행위를 반복적으로 계속합니다.
문제는 그걸 멈출려고 하는데... 마우스가 자꾸 옮겨지는 바람에 쉽지가 않습니다.
제생각에는 카보드에서 어떠한 키를 입력받으면 프로그램의 실행이 중지되는게 가능하지 않을까 생각이 드는데요. 단지 현재 프로그램폼위에서가 아니라 현재 프로그램이 실행중에는 키보드에서 임의의 키로 종료를 제어하는거죠. 가능할까요?
이것저것 자료를 찾아봤는데...좀 어렵군요. 도움부탁드립니다. 그럼. 이만....
> 간단한 프로그램을 하나 짜봤는데요..
> 내용인 즉 실행시 마우스 위치를 정해진 곳으로 이동을 합니다.그리고 클릭을 하고요. 그런 행위를 반복적으로 계속합니다.
> 문제는 그걸 멈출려고 하는데... 마우스가 자꾸 옮겨지는 바람에 쉽지가 않습니다.
> 제생각에는 카보드에서 어떠한 키를 입력받으면 프로그램의 실행이 중지되는게 가능하지 않을까 생각이 드는데요. 단지 현재 프로그램폼위에서가 아니라 현재 프로그램이 실행중에는 키보드에서 임의의 키로 종료를 제어하는거죠. 가능할까요?
> 이것저것 자료를 찾아봤는데...좀 어렵군요. 도움부탁드립니다. 그럼. 이만....
전역적 핫키의 사용 -파워러브델파이
핫키라는건 일반적으로 핫키를 정의한 프로그램이 초점을
가지고 있어야 만이 핫키에 응답할수가 있습니다.
때문에 예를 들어 화면을 캡쳐하는 프로그램을 만든다고
가정하면 이런핫키로는 만들기가 불가능합니다.
이럴때 이용하는것이 바로 전역적 핫키입니다.
전역젓 핫키는 프로그램이 초점을 잃더라도
핫키에 응답할수가 있습니다.
자세한건 아래 소스를 참고~
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FAtom: TAtom;
procedure WMHotKey(var M: TMessage); message WM_HOTKEY;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
FAtom := GlobalAddAtom('HotKey Test');
RegisterHotKey(Handle, FAtom, MOD_ALT, VK_SPACE);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle, FAtom);
GlobalDeleteAtom(FAtom);
end;
procedure TForm1.WMHotKey(var M: TMessage);
begin
if M.WParam = FAtom then
begin
if M.LParamLo = MOD_ALT then
begin
if M.LParamHi = VK_SPACE then ShowMessage('HotKey!.');
end;
end;
end;
end.
그럼..즐거운 프로그래밍 되시길~