PDA

View Full Version : سوال: sendkeys اعداد ماشین حساب صفحه کلید



syntiberium
یک شنبه 20 تیر 1389, 20:45 عصر
سلام . می خواستم ببینم چجوری می شه اعداد ماشین حساب رو sendkeys کرد . منظورم اون عدد سمت راستی هاست همون هایی که با numlock به کار می افتند چون اون چیزی که من می خوام اعداد بالای حروف صفحه کلید به کارش نمیاد .
با تشکر .

mmd2009
یک شنبه 20 تیر 1389, 21:37 عصر
دوست عزیز سلام

باید برای این کار ها تو رویداد فرم لود کد نویسی کنی مثلا اینطوری



if(key.code == keys.num0)
button0_click(sende,e);

syntiberium
یک شنبه 20 تیر 1389, 22:19 عصر
من sendkyes رو واسه ی یه برنامه ی دیگه می خوام . یعنی مثلا این عدد ها توی یه webpage زده بشن کاری هم با کامپوننت webbrowser ندارم و می خوام برنامم کلید های ماشین حساب رو به مثلا یه صفحه توی firefox ارسال کنه و در ضمن از طریق handle و این جور چیز ها هم نمی خوام . می خوام با همون sendkeys این کار رو انجام بده . من فقط می خوام بدونم داخل sendkeys چی بنویسم که دقیقا عدد های سمت راست کیبورد یا همون عدد های ماشین حساب ارسال بشه .

debugger
دوشنبه 21 تیر 1389, 09:00 صبح
اگر بخوای تک تک ارسال کنی باید به صورت زیر بنویسی . البته نکته مهم اینجاست باید حتما روی ایتمی فوکوس کنی وگرنه ارسال نمیشه



textBox4.Focus();
SendKeys.SendWait("6");
SendKeys.SendWait("8");
SendKeys.SendWait("3");



اگر بخوای رقم ها را یکجا ارسال کنی به صورت زیر




textBox4.Focus();
SendKeys.SendWait("65445445");



فکر می کنم شما میخوای چند تا عدد را به مرورگر فایرفاکس بفرستی که در این صورت باید از تابع FindWindow استفاده کنی به شکل زیر



[DllImport("user32.dll", CharSet = CharSet.Unicode)]




public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);

[DllImport("User32")]

public static extern bool SetForegroundWindow(IntPtr hWnd);
private void button1_Click(object sender, EventArgs e)
{
IntPtr firefoxHandle = FindWindow("firefox", "FireFox");
//IntPtr calculatorHandle = FindWindow("Notepad", "Untitled - Notepad");
if (calculatorHandle == IntPtr.Zero)
{
MessageBox.Show("FireFox is not running.");
return;
}
SetForegroundWindow(firefoxHandle);
System.Threading.Thread.Sleep(1000);
SendKeys.SendWait("111*11=");
//SendKeys.SendWait("{ENTER}");
//cnt++;
SendKeys.Flush();


}

syntiberium
دوشنبه 21 تیر 1389, 12:45 عصر
http://up.iranblog.com/Files/1bd407f293b84e61b9d1.JPG


من می خوام اون عدد هایی که دورش خط قرمش کشیده شده فرستاده بشه این چیزی که شما کدش رو گذاشتی اعدادی رو که دورش خط آبی کشیده شده را ارسال می کنه . من می خوام کلید های numpad ارسال بشه .

debugger
سه شنبه 22 تیر 1389, 15:51 عصر
عدد با عدد چه فرقی می کنه ؟؟؟

از کجا میدونی قسمت ابی را ارسال می کنه