PDA

View Full Version : آموزش: دانلود سورس شبه ساز كيبورد !



ایمان مدائنی
دوشنبه 01 شهریور 1389, 11:49 صبح
سلام دوستان بنا به نيازي كه داشتم مجبور شدم شبيه ساز كيبورد بنويسم و گفتم براي شما هم بزارم تا استفاده كنيد !
تشكر يادتون نرها ! :قلب::قلب::قلب::قلب::قلب::قلب:

ایمان مدائنی
دوشنبه 01 شهریور 1389, 12:58 عصر
از دوستان كسي نظري نداره ؟

FastCode
دوشنبه 01 شهریور 1389, 13:00 عصر
مرسی.
چند روز پیش یکی نیاز داشتم.ولی به خاطر کارهای دیگه ای که داشتم نتونستم یکی درست کنم.
یه کار دیگه که میتونی بکنی اینه که توی حالت فارسی این امکان رو بزاری که برنامه نویس تایین کنه که اعداد هم فارسی بشن یا نه.

ایمان مدائنی
دوشنبه 01 شهریور 1389, 13:11 عصر
بله ميشه !
در اسرع وقت اينكارو ميكنم و براتون ميذارم

صباح فتحی
دوشنبه 01 شهریور 1389, 13:22 عصر
تشکر اقای ایمان! برنامه ی مفیدی بود در کل!اما میتونستی روی ظاهرش یکم بیشتر کارکنی!
مثل کیبرد ویندوز7!!!!

ایمان مدائنی
دوشنبه 01 شهریور 1389, 13:35 عصر
دوست عزيز من اين برنامه رو به صورت يوزر كنترل استفاده كردم و براي شما دوستان به صورت فرم قرار دادم !
تو برنامه خودم خيلي ظاهر زيبا تري داره !

mohsen_csharp
دوشنبه 01 شهریور 1389, 15:05 عصر
برنامت چند تا مشکل داره اول اینکه کلیدهایی مثل Ctrl و Alt و کلیدهایی از این فبیل در آن تعبیه نشده است
دوم اینکه از نظر طراحی فرم که از دو تا پنل استفاده کردی و تعداد دکمه های فرم دو برابر شده و این فرم رو سنگین کرده در صورتی که می تونستی با یک سری دکمه و دوشرطه کردن آن در دو حالت فارسی و انگلیسی استفاده کنی

ricky22
دوشنبه 01 شهریور 1389, 16:23 عصر
سلام خسته نباشی اینم انگلیسیش!

http://www.codeproject.com/KB/miscctrl/touchscreenkeyboard/alphabeticalkeyboard.jpg
http://www.codeproject.com/KB/miscctrl/touchscreenkeyboard/kidsupperkeyboard.jpg



Download source files - 465 Kb (http://www.codeproject.com/KB/miscctrl/touchscreenkeyboard/touchscreenkeyboard_src.zip)
Download demo project - 10.2 Kb (http://www.codeproject.com/KB/miscctrl/touchscreenkeyboard/touchscreenkeyboard_demo.zip)

__

صباح فتحی
دوشنبه 01 شهریور 1389, 16:28 عصر
یه چیز دیگم هست..این کیبرد فقط کلیدهارو به تکست باکس برنامه خودش ارسال میکنه...کاش مثل کیبرد ویندوز همه جا کار میکرد...
بانظر اقای محسن هم موافقم..!

FastCode
دوشنبه 01 شهریور 1389, 17:01 عصر
یه چیز دیگم هست..این کیبرد فقط کلیدهارو به تکست باکس برنامه خودش ارسال میکنه...کاش مثل کیبرد ویندوز همه جا کار میکرد...
بانظر اقای محسن هم موافقم..!

اگر قرار باشه این کار رو بکنه از OSK استفاده میکنیم.
این کار برای اینه که جلوی keylogger ها رو بگیره.

arefba
دوشنبه 01 شهریور 1389, 17:10 عصر
دوستان این کیبورد ها حرفه نیستن
بیاید با هم یه جوری یه کیبور رو طراحی کنیم که شرایط زیر رو داشته باشه

* بر روی هر تکست باکس که کلیک شد اونجا شروع به تایپ کردن بکنه
* به صورت UserControl1.cs باشه
* دکمه ای مثل بک اسپیس در اون از جایی که کلیک شده شروع به پاک کردن کنه
* از جایی که در یک متن کلیک شده شروع به نوشتن کنه

من این کیبورد رو به صورت یوزر کنترل نوشتم که وقتی روی هر دکمه کلیک می کنید روشن میشه
وقتی دکمه ای رو فشار میدی محتویاتش رو توی یه متغیر میرزه اما نمیدونم چطور آخرین جایی که کلیک شده (تکست باکس ) بدست بیارم
کسی راهی بلده


54641

arefba
دوشنبه 01 شهریور 1389, 17:12 عصر
osk چطوره
و خارج از بحث امنیت چه الگوریتم هایی برای اینکار هست

صباح فتحی
دوشنبه 01 شهریور 1389, 17:30 عصر
osk چطوره
و خارج از بحث امنیت چه الگوریتم هایی برای اینکار هست

جناب fastcode منظورشون از OSK همون کیبرد ویندوز هست!
توی Run عبارتOSK رو تایپ کنی میبینیش

FastCode
دوشنبه 01 شهریور 1389, 17:43 عصر
من طرح رو میدم.هر کس وقت داره بنویسه:
1.
اول اینکه layout ها به شکل XML یا sqlite باشن و توی اونها این مشخصات باشه:
نام.
نام لاتین.
کلیدها:
نام.
نام تک حرفی.
نام لاتین.
نام برای نمایش.
keycode.
ASCII 7bit KeyCode.
موقعیت کلید به شکل x,y
2.قابلیت فرستادن اطلاعات به context های مختلف با استفاده از strategy-pattern.(اگر مبهمه بگید.)
3.قابلیت bind شدن به کنترلها با استفاده از چند تا چیز مثل:


interface IControlBinder
{
System.Windows.Forms.Control Control { get; }
void InsertKey(char Charachter);
int SelectionLength { get; }
int Length { get; }
int CurrentPosition { get; set; }
bool CanSetPosition { get; }
}
class TexboxBinder : IControlBinder
{
System.Windows.Forms.TextBox control;
TexboxBinder(System.Windows.Forms.TextBox Control)
{
control = Control;
}
System.Windows.Forms.Control Control { get; }
void InsertKey(char Charachter) { control.SelectedText = Charachter.ToString(); }
int length { get { return control.Text.Length; } }
int SelectionLength { get { return control.SelectionLength; } }
int CurrentPosition { get { return control.SelectionStart; } set { control.SelectionStart = value; } }
bool CanSetPosition { get { return true; } }
}

4.قابلیت popup داشته باشه.
5.هر کس خیلی مرده با mono بنویسه
6.الان چیز دیگه به ذهنم نمیرسه.

arefba
دوشنبه 01 شهریور 1389, 18:08 عصر
ای بابا ویندوز میسازی
نه بابا همون مال خودم بشه کافیه
--------------------
یه کیبورد فارسی در بیاد که همه راحت ازش استفاده کنن

Mohandes2009
دوشنبه 01 شهریور 1389, 18:45 عصر
عالی بود تشکر

ولی یه سوال:

بهتر نبود به جای استفاده از دو تا پنل بیای و خاصیت Text کلید ها را به انگلیسی تبدیل کنی؟

ایمان مدائنی
دوشنبه 01 شهریور 1389, 22:43 عصر
دوست عزيز اين نرم افزار در حد مبتدي هست و فقط جهت رفع يه مشكل كوچيك نوشته شده !
شما هر جور كه دوست داري تغييرش بده و استفاده كن !
فقط خواستم دوستان چيز جديدي ياد بگيرن

FastCode
دوشنبه 01 شهریور 1389, 23:10 عصر
دوست عزيز اين نرم افزار در حد مبتدي هست و فقط جهت رفع يه مشكل كوچيك نوشته شده !
شما هر جور كه دوست داري تغييرش بده و استفاده كن !
فقط خواستم دوستان چيز جديدي ياد بگيرن

100%
ولی بهترین نرمافزار مبتدی ای هست که توی چند ماه اخیر دیدم.:گیج:
امیدوارم خطابتون به من نباشه چون من در واقع یه پروژه دیگه تعریف کردم که در واقعاً هدفش extensibility و extendability و maintainability بود.نه درست کردن یه چیزی که سریع کار راه بندازه.بلکه یه چیزی که فردا هر کسی بتونه ازش استفاده بکنه و وقتی اون کلید "." رو فشار داد فکش باز بمونه.

ایمان مدائنی
سه شنبه 02 شهریور 1389, 07:24 صبح
من هم با شما موافقم !
بهتر نرم افزار وقتي نوشته مي شه طوري باشه كه هم كامل و هم همه بتونن ازش استفاده كنن !