PDA

View Full Version : سوال: ایجاد شورتکات برای فرم بدون فوکوس (تشخیص فشرده شدن کلید ترکیبی)



Y53D HADI
دوشنبه 12 آبان 1393, 14:57 عصر
سلام دوستان.
اگه بحث تکراریه شرمنده.
چون نمیدونستم باید دنبال چی میگشتم.:گریه:


میخام برنامه ای بنویسم که بتونم وقتی که فوکوس نداره فشرده شدن کلید های ترکیبی رو تشخیص بده.:بامزه:

یه مثال از عملکردش :
میخام وقتی کلید های Ctrl + 1 رو زدم متن 12345 رو با send keys تایپ کنه
Ctrl + 2 متن abcd رو و ......

در کل توی کافی نت و برای زدن پسورد هام میخام استفاده کنم . چون کیبردم جلوی دید مشتریه نمیخام کسی ببینه که چی تایپ میکنم :لبخند:

حالا لطفا راهنکاییم کنید که چطوری فرم مینیمایز شده ی من بفهمه که Ctrl+1 زدم:متفکر: ... ممنون:چشمک: C#

pedram.11
دوشنبه 12 آبان 1393, 15:28 عصر
بفمایید:
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;


namespace HotKey
{
public partial class Form1 : Form
{
const int ALT = 0x0001;
const int _1 = 0x31;
const int _2 = 0x32;
int ID_1 = 0;
int ID_2 = 0;


[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);
protected override void WndProc(ref Message m)
{
if (m.Msg == 786)
{
int wparam = (int)m.WParam;
if (wparam == ID_1)
textBox1.AppendText("12345");
else if (wparam == ID_2)
textBox1.AppendText("abcd");
}
base.WndProc(ref m);
}
public Form1()
{
InitializeComponent();
Random R = new Random();
ID_1 = R.Next();
ID_2 = R.Next();
Boolean success = RegisterHotKey(this.Handle, ID_1, ALT, _1) &&
RegisterHotKey(this.Handle, ID_2, ALT, _2);
if (!success)
MessageBox.Show("Error");
}
}
}

کلید های ترکیبی ALT+1 عدد 12345 رو به تکست و ALT+2 متن abcd رو اضاف میکنه

پروژه: