PDA

View Full Version : سوال: ارسال کاراکتر به کی بورد IO



moh_mov
دوشنبه 19 مهر 1389, 22:33 عصر
سلام.
می خوام وقتی مثلا یکنفر یک دکمه رو فشار می ده ، برنامه من حرف مثلا "آ" رو به کی بورد برگردونه.
فرض کنید یک کی بورد مجازی.
کسی می دونه چطور می تونم این کار رو بکنم؟

debugger
دوشنبه 19 مهر 1389, 23:25 عصر
یک مثال بزنید خیلی خوب میشه

من که اصلا نتوستم مساله را درک کنم

moh_mov
دوشنبه 19 مهر 1389, 23:54 عصر
کی بورد مجازی ویندوز رو فرض کنید.
وقتی شما با موس روی حرف a کلیک می کنید ، سیستم عامل می فهمد a فشرده شده و handle می کند.همچین چیزی@

debugger
سه شنبه 20 مهر 1389, 01:05 صبح
از کجا معلوم که سیستم عامل برای هر کلید در کی بورد مجازی کاراکتر خاصی نعریف نکرده باشد ؟؟؟؟

ایا این روش ساده تر نخواهد بود ؟؟؟

شما این مساله را در نظر گرفتبن که اگر صفحه کلیدی در کار نباشه (فیزیکی) باز هم صفحه کلید مجازی کار میکنه ؟؟؟؟

من فکر می کنم با فشردن هر کلید روی صفجه کلید مجازی کاراکتر مربوطه که قبلا براش تعریف شده درج میشه و ربطی به برگردوندن کاراکتر به صقحه کلید نداره

البته این نظر شخصی بنده است . اگر اساتید اطلاعاتی دارند لطفا راهنمایی کنند

ali.rezaei7
سه شنبه 20 مهر 1389, 02:06 صبح
سلام
تابع SendKeys.Send برای ارسال کلید استفاده می شه.
کلید مورد نظر رو ر به عنوان ورودی به تابع ارسال می کنیم و در نهایت عمل فشرده شدن کلید اتفاق میوفته.به عنوان مثال برای ارسال کلیداینتر ازکد "{ENTER‏}‏" استفاده می کنیم. برای اطلاعات بیشتر:
msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send.aspx
برای ارسال کلید به پنجره ای غیر از خود برنامه ابتدا باید هندل پنجره مورد نظر رو به وسیله توابع ای پی آی بدست بیاریم و سپس کلید رو ارسال کنیم. برای اطلاعات بیشتر:
www.edgeofnowhere.cc/viewtopic.php?t=396398

mmd2009
سه شنبه 20 مهر 1389, 02:38 صبح
با سلام

با کدهای زیر میتونی :



if (e.KeyChar == 'a')
{
SendKeys.SendWait("@");
e.Handled = true;
}








if (e.KeyChar == 'a')
{
SendKeys.Send("{@}");
e.Handled = true;
}

moh_mov
جمعه 23 مهر 1389, 21:17 عصر
در .net.کامل این کار با این خط انجام می شود :
sendkeys.send();

http://msdn.microsoft.com/en-us/libr...8VS.80%29.aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send%28VS.80%29.aspx )
اما در net. که برای win ce هست این اتفاق نمی افته!یعنی کتابخونه ی بالا این متد رو نداره.
حالا چی کار کنیم؟

moh_mov
چهارشنبه 28 مهر 1389, 10:08 صبح
واقعا کسی نمیتونه در این مورد کمک کنه؟