PDA

View Full Version : چگونه میتوان صفحه کلید را hook کرد؟



saeed_programer
سه شنبه 12 آبان 1383, 15:14 عصر
چگونه میتوان در c# مشخص کرد که چه کلیدی فشار داده شده ویا اصطلاحا صفحه کلید را hook کرد

M.GhanaatPisheh
سه شنبه 12 آبان 1383, 18:55 عصر
Click on a windows form and select keyDown event
KeyEventArgs will solve your problem


private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
}
//------ Use this properties
;(()MessageBox.Show(e.KeyData.ToString
;(()MessageBox.Show(e.KeyCode.ToString
;(()MessageBox.Show(e.KeyValue.ToString
{

saeed_programer
چهارشنبه 13 آبان 1383, 13:03 عصر
دوست عزیز این فکر خوبی به شرط اینه برنامه شما onTop باشه یعنی فرم رو باشه
ولی برنامه من داره در پس ضمینه کا میکنه API هئی وجود داره که من در دلفی از آنها استفاده کردم ولی در C# نه کسی را حل دیگری سراغ نداره؟؟

Inprise
چهارشنبه 13 آبان 1383, 13:41 عصر
Win32 Hook API + .NET P/Invoke

EhsanKhafan
پنج شنبه 14 آبان 1383, 12:09 عصر
سلام
آن روشی که لاور گفتن بنظرم اصلا روش خوبی نیست چون حتا اگر فرم شما onTop هم باشه اگز focus رو یکی از کنترل ها فرم باشه که onKeyPress رو بپذیره دیگه این event برای فرم فایر نمیشه بلکه برای اون کنترل فایر میشه.

من یه برنامه برای این کار نوشتم که با استفاده از API ویندوز.هر کلید ی هر جا توی هر برنامه ای زده بشه میتونی دتکت کنی:
http://www.barnamenevis.org/forum/viewtopic.php?t=13431&highlight=