Arsip: coding tuk......kirim key (keyboard) ke sistem windows.....

 
user image
more 18 years ago

mas_kofa

para pakar2 delphi.................... :? mo numpang tanya lagi nih..... bagaimana cara membikin aplikasi (console juga gak pa2) agar kita dapat mengirim key (karaketer) dari keyboard ke sistem / windows ??? misal seperti berikut : ada program start up yang fungsinya untuk menghidupkan / memainkan dan mematikan winamp pada waktu tertentu... (untuk menghidupkan / mengaktifkan winamp kita perlu menekan tombol x keyboard)....dalam hal ini kita mengirimkan key x ke sistem sehingga seolah-olah kita menekan tombol x keyboard sedangkan saat itu window winamp sedang aktif sehingga winanmp akan aktif dengan sendirinya.... maaf kalo detail pertanyaan saya justru membuat bingung...... tolong.. dan makasih banyak atas tanggapan nya....
user image
more 18 years ago

J4ckR1pp3r

coba pakai metode hook aja mas :D ini ada contoh kecil nya,.,.,. silahkan kembangkan sendiri yah :lol:
...
   type
   tagKBDLLHOOKSTRUCT = record
        vkCode: DWORD;
        scanCode: DWORD;
        flags: DWORD;
        time: DWORD;
        dwExtraInfo: DWORD;
   end;
   TKbDllHookStruct = tagKBDLLHOOKSTRUCT;
   PKbDllHookStruct = ^TKbDllHookStruct;
...
Const
  WH_KEYBOARD_LL  = 13;
var
    hkeyhook: HHOOK;      
...
function KeyEvent(code: integer; wParam: word; lParam: longword): longword; stdcall;
var
  szKeyName: array of Char;
  hooked: TKbDllHookStruct;
  dwMsg: DWORD;
  i: integer;
  AltPressed : Boolean;
  Key : String;
begin
  if ( (code = HC_ACTION) and ( (wParam = WM_SYSKEYDOWN) or (wParam = WM_KEYDOWN) ) ) then begin
        CopyMemory(@hooked,Pointer(lParam),sizeof(TKbDllHookStruct));
        dwMsg := 1;
        dwMsg := dwMsg + (hooked.scanCode shl 16);
        dwMsg := dwMsg + (hooked.flags shl 24);
        AltPressed := dwMsg And (1 shl 29) <> 0;

        ZeroMemory(@szKeyName,sizeof(szKeyName));
        szKeyName[0] := '[';
        i := GetKeyNameText(dwMsg, szKeyName+1, sizeof(szKeyName))+1;
        szKeyName[i] := ']';
        Key := szKeyName;
  end;
  If Not ((Key = '[Tab]') And AltPressed) Then
    Result := CallNextHookEx(hkeyhook,code,wParam,lParam);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
  hkeyhook := SetWindowsHookEx(WH_KEYBOARD_LL, @Keyevent, hinstance, 0);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    UnhookWindowsHookEx(hKeyHook);
end;   
user image
more 18 years ago

mas_kofa

oh... makasih ya... nanti aku coba dulu ya........ :oops:
user image
more 18 years ago

_lmz

Hook digunakan untuk mengintercept key yang masuk, tapi rasanya kok tidak bisa untuk mengirim key ya? Kalau di VB ada SendKeys, ini ada contohnya untuk Delphi: http://delphi.about.com/od/adptips2004/a/bltip1104_3.htm atau cari saja di google: delphi sendkeys
user image
more 18 years ago

mas_kofa

@_lmz ya.....itu yang aku maksud (kalo di VB : sendkey) makasih ya mas _lmz :P
more ...
  • Pages:
  • 1
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com