نقل قول نوشته شده توسط Youuness مشاهده تاپیک
با سلام مجدد

alexmcse عزیز ایشون یک کد میخوان بیرون از فرم و در صورت غیر فعال نبودن فرم نیز عمل کنه

aradrobo عزیز کد مدنظر شما اینه :


using System.Runtime.InteropServices;
namespace GetKey
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Int32 vKey);
string keyBuffer = string.Empty;
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 3;
}
private void timer1_Tick(object sender, EventArgs e)
{
foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
{
int x = GetAsyncKeyState(i);
if ((x == 1) || (x == Int16.MinValue)) )
{
keyBuffer = Enum.GetName(typeof(Keys), i) + " ";
listBox1.Items.Clear();
listBox1.Items.Add(keyBuffer.ToString());
}
}
}
}
}



حالا هرکجا رویدادی اتفاق بیقته داخل لیست باکس نمایش داده میشه.

موفق باشین
بایت بایت

این کدی که شما دادین ، دقیقاً اگر فوکوس روی فرم هم نباشه عمل می کنه . ولی یک مشکل داره و اون اینکه شما هر بار دارین لیست باکس رو پاک می کنین . اگر من این
listBox1.Items.Clear();

قسمت را حذف کنم . مشاهده می شه که وقتی یک حرف روی کیبرد را می زنم ، اون حرف چندین بار نمایش داده می شه .

لطفاً این مشکل را حل کنید . با تشکر