::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã À̰÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2003-03-07 09:35:50, Hit : 4258, Vote : 1181
 Hotkey¸¦ ÀÌ¿ëÇÏ¿© ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ±ÛÀÚ ¾²±â

// ½ÇÇà¹æ¹ý:
// ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ¿© ½ÇÇàÇϸé ÇÁ·Î±×·¥Àº minimized µÇ°í
// ¸Þ¸ðÀåÀÌ Çϳª ¶ß´Âµ¥ ¸Þ¸ðÀå ¾È¿¡¼­ F8 ¶Ç´Â F9 ۸¦ ´­·¯º¸¼¼¿ä

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
    procedure WMHotkey(var msg: TWMHotkey); message WM_HOTKEY;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure PostKeyEx32(key: Word; const shift: TShiftState;
                      specialkey: Boolean);
type
  TShiftKeyInfo = record
                    shift: Byte;
                    vkey : Byte;
                  end;
   ByteSet = set of 0..7;
const
  shiftkeys: array [1..3] of TShiftKeyInfo =
       ((shift: Ord(ssCtrl); vkey: VK_CONTROL),
       (shift: Ord(ssShift); vkey: VK_SHIFT),
       (shift: Ord(ssAlt); vkey: VK_MENU));
var
  flag: DWORD;
  bShift: ByteSet absolute shift;
  i: Integer;
begin
  // VirtualKey key down ¹ß»ý
  for i := 1 to 3 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey,
                  MapVirtualKey(shiftkeys[i].vkey, 0),
                  0, 0);
  end;
  if specialkey then
    flag := KEYEVENTF_EXTENDEDKEY
  else
    flag := 0;

  // ÀϹݹ®ÀÚ key down ¹ß»ý
  keybd_event(key, MapvirtualKey(key, 0), flag, 0);
  flag := flag or KEYEVENTF_KEYUP;
  // ÀϹݹ®ÀÚ key up ¹ß»ý
  keybd_event(key, MapvirtualKey(key, 0), flag, 0);

  // VirtualKey key up ¹ß»ý
  for i := 3 downto 1 do
  begin
    if shiftkeys[i].shift in bShift then
      keybd_event(shiftkeys[i].vkey,
                  MapVirtualKey(shiftkeys[i].vkey, 0),
                  KEYEVENTF_KEYUP, 0);
  end;
end;

procedure SendText(S: String);
var
  flags: TShiftState;
  vcode: word;
  ret  : word;
  i, n : Integer;
  mask : word;
begin
  for i := 1  to Length(S) do
  begin
    ret := VkKeyScan(S[i]);
    vcode := Lobyte(ret);
    flags := [];
    mask  := $100;
    for n := 1 to 3 do
    begin
      if (ret and mask) <> 0 then
      begin
        case mask of
          $100: Include(flags, ssShift);
          $200: Include(flags, ssCtrl);
          $400: Include(flags, ssAlt);
        end;
      end;
      mask := mask shl 1;
    end;
    PostKeyEx32(vcode, Flags, False);
  end;
end;

procedure TForm1.WMHotkey(var msg: TWMHotkey);
begin
  case msg.HotKey of
    1: SendText('hello'); // F8
    2: SendText('world'); // F9
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  // ÀÌ ÇÁ·Î±×·¥ÀÌ WM_HOTKEY ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ÀÖµµ·Ï µî·ÏÇÑ´Ù
  if not RegisterHotkey(Handle, 1, 0, VK_F8) then
    ShowMessage('F8À» hotkey·Î ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù');
  if not RegisterHotkey(Handle, 2, 0, VK_F9) then
    ShowMessage('F9¸¦ hotkey·Î ÇÒ´çÇÒ ¼ö ¾ø½À´Ï´Ù');

  WinExec('notepad', SW_SHOWNORMAL); // Å×½ºÆ®¿ë ÇÁ·Î±×·¥
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  // µî·ÏµÈ Hotkey ¸¦ ÇØÁ¦ÇÑ´Ù
  UnRegisterHotkey(Handle, 1);
  UnRegisterHotkey(Handle, 2);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  ShowWindow(Handle, SW_MINIMIZE);
end;

end.





291   [À©µµ¿ìÁî API] bitmap ÀμâÇϱâ 2  ±è¿µ´ë 2003/03/05 4352 1178
290   [½Ã½ºÅÛ] ¾²·¹µå ³»¿¡¼­ ÆûÀ» »ý¼ºÇغ¸ÀÚ  ±¸Ã¢¹Î 2003/03/14 5598 1177
289   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¸ðµç µå¶óÀ̺ê,µð·ºÅ丮 °Ë»öÇÏ¿© ÆÄÀÏ Ã£±â  ±è¿µ´ë 2003/03/07 4685 1177
288   [À©µµ¿ìÁî API] Application ¿¡ ¹ß»ýÇÏ´Â ¸Þ½ÃÁö ±¸°æÇÏ±â  ±è¿µ´ë 2003/03/05 4651 1176
287   [µ¥ÀÌÅͺ£À̽º] Query.RecordCount = -1  ±è¿µ´ë 2003/03/07 5034 1175
286   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MS-OutLook À¸·Î ¸Þ½ÃÁö º¸³»±â  ±è¿µ´ë 2003/03/07 5100 1175
285   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¹®ÀÚ¿­ÀÇ ³¡¿¡¼­ºÎÅÍ °Ë»öÇÏ´Â Pos() ÇÔ¼ö  ±è¿µ´ë 2003/03/07 5098 1175
284   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ListBoxÀÇ È­¸é¿¡ º¸¿©Áö´Â ÃÖ»óÀ§ Item ¹øÈ£  ±è¿µ´ë 2003/03/07 4315 1174
283   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¾²·¹µå¸¦ ÀÌ¿ëÇÑ º¹¼ö Query µ¿½Ã¿¡ ¿­±â  ±è¿µ´ë 2003/03/05 6316 1174
282   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÀÔ·ÂÇà¼ö Á¦ÇÑÇÏ±â  ±è¿µ´ë 2003/03/07 4129 1172
281   [À©µµ¿ìÁî API] bitmap ÀμâÇÏ±â  ±è¿µ´ë 2003/03/05 4525 1172
280   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ BeginUpdate/EndUpdate ?  ±è¿µ´ë 2003/03/07 5468 1171
279   [COM/OLE] How to register an OCX  ±è¿µ´ë 2003/03/06 4995 1171
278   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TStringGrid ÀμâÇÏ±â  ±è¿µ´ë 2003/03/07 4782 1170
277   [µ¥ÀÌÅͺ£À̽º] Paradox Å×À̺íÀÌ ±úÁ³À»¶§...  ±è¿µ´ë 2003/03/05 5050 1170
276   [µ¥ÀÌÅͺ£À̽º] ¸î°¡Áö BDE ȯ°æÁ¤º¸ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 4366 1169
275   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TRichEdit ¿¡ À­Ã·ÀÚ, ¾Æ·§Ã·ÀÚ ¸¸µé±â  ±è¿µ´ë 2003/03/07 4535 1169
274   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÇϳªÀÇ ÇÁ·Î½ÃÀú,ÇÔ¼ö·Î ´Ù¸¥ ÇÔ¼ö,ÇÁ·Î½ÃÀú¸¦ ó¸®  ±è¿µ´ë 2003/03/05 4008 1169
273   [À©µµ¿ìÁî API] ¹Ù·Î Á÷Àü¿¡ active µÇ¾ú´ø À©µµ¿ì¿Í ÄÜÆ®·Ñ ±¸ÇÏ±â  ±è¿µ´ë 2004/07/24 4629 1168
272     [COM/OLE] [re] PDF ActiveX »ç¿ëÇÏ±â  Ãʺ¸µ¨ÇÇ 2005/07/18 5277 1167
271   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ComboBox¿¡ IEÀÇ URL ÀÔ·Ââ °°Àº ±ÙÁ¢°Ë»ö µÎ±â  ±è¿µ´ë 2003/03/31 4627 1163
270   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¼öÁ÷ ½ºÅ©·ÑÀÌ ¸Ç¸¶Áö¸·À¸·Î À̵¿Çß´ÂÁö °Ë»ç  ±è¿µ´ë 2003/03/07 3943 1162
269   [À©µµ¿ìÁî API] µ¥½ºÅ©Å¾ ¾ÆÀÌÄÜ ÀüºÎ °¨Ãß±â/º¸ÀÌ±â  ±è¿µ´ë 2003/03/07 3940 1162
268   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Ç¥ÁØ ÄÜÆ®·ÑÀÇ ¸î°¡Áö ÇÑ°è  ±è¿µ´ë 2003/03/05 4315 1162
267   [½Ã½ºÅÛ] PC¿¡ ¼³Ä¡µÈ µå¶óÀÌºê ¸ñ·Ï ±¸ÇÏ±â  ±è¿µ´ë 2003/03/07 4733 1160
266   [À©µµ¿ìÁî API] "¹®¼­" ¸Þ´º¿¡ ÆÄÀÏÀ» µî·ÏÇÏ°í »èÁ¦ÇÏ±â  ±è¿µ´ë 2003/03/05 4310 1159
265   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] Variant º¯¼öÀÇ Type ¾Ë¾Æ³»±â  ±è¿µ´ë 2003/03/05 4356 1159
264   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ Ä¿¼­¸¦ ƯÁ¤ À§Ä¡·Î º¸³½ÈÄ scroll ½ÃŰ±â  ±è¿µ´ë 2003/03/05 4986 1159
263   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÇÁ·Î±×·¥ Á¾·á½Ã µµ¿ò¸» È­¸é ´Ý±â  ±è¿µ´ë 2003/03/05 4219 1159
262   [½Ã½ºÅÛ] ÀÏÁ¤½Ã°£ °æ°ú ÈÄ À©µµ¿ìÁî Á¾·áÇÏ±â  ±è¿µ´ë 2004/08/03 4683 1158
261   [¾Ë°í¸®Áò] ¼ýÀÚ¸¦ KB, MB, GB ´ÜÀ§·Î ȯ»êÇÏ±â  ±è¿µ´ë 2003/11/13 5047 1158
260   [½Ã½ºÅÛ] ÇÁ¸°ÅÍ¿¡ escape Äڵ带 Àü´ÞÇÏ´Â ¹æ¹ý  ±è¿µ´ë 2003/03/06 3921 1158
259   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ÆÄÀÏ¿¡¼­ ƯÁ¤ Byte ¸ðµÎ ã±â  ±è¿µ´ë 2003/03/07 4519 1156
258   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ButtonÀÇ Mouse Down/Up Èä³»³»±â  ±è¿µ´ë 2003/03/07 4468 1155
257   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] º£Áê(Bezier) °î¼± ±×¸®±â2  ±è¿µ´ë 2003/03/07 4851 1155
256   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ºÎȰÀý ´Þ°¿(easter egg) ¹®ÀÚ¿­ ÀÔ·Â¹Þ±â  ±è¿µ´ë 2003/03/07 4792 1154
255   [µ¥ÀÌÅͺ£À̽º] SQL½ÇÇà½ÃÀÇ ¸ð·¡½Ã°è¸¦ Ç¥½ÃÇÏÁö ¾Ê´Â ¹æ¹ý  ±è¿µ´ë 2003/03/07 4665 1154
254   [À©µµ¿ìÁî API] IEÀÇ ÇöÀç url °¡Á®¿À±â  ±è¿µ´ë 2003/03/07 4601 1154
253   [½Ã½ºÅÛ] Thread »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/07 4209 1153
252   [½Ã½ºÅÛ] È­¸éº¸È£±â°¡ ¼³Ä¡µÇ¾î ÀÖ´ÂÁö °Ë»çÇÏ±â  ±è¿µ´ë 2003/03/07 3973 1153

[ÀÌÀü 10°³] [1]..[11][12][13][14][15][16][17] 18 [19][20]..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2022 Zeroboard / skin by zero