تور لحظه آخری
امروز : دوشنبه ، 5 آذر 1403    احادیث و روایات:  پیامبر اکرم (ص):نيّت مؤمن بهتر از عمل او و نيت منافق بدتر از عمل اوست.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

 






آمار وبسایت

 تعداد کل بازدیدها : 1833557865




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

ساخت یه برنامه مثلAutoTyping -


واضح آرشیو وب فارسی:سایت ریسک: ساخت یه برنامه مثلAutoTyping i_lover3000 21 مرداد 1387, 00:00سلام :wink: کسی میتونه یه یه برنامه کوچیک مثل این برنامه ای که در زیر گذاشتم بنویسه ، یه راهنمایی کوچیک هم کافیه :D vb.net 2005 برنامه رو می تونید از سایت زیر دانلود کنید. :rose: Sampro 23 مرداد 1387, 07:27برنامه جالبیه اینو می خواید برای برنامه های ویندوزی بنویسید یا برای برنامه خودتون . i_lover3000 24 مرداد 1387, 01:45راستش می خواستم کلا با نحوه ساختش آشنا بشم . بعد برای برنامه هایی که خودمون مینویسیم بکار میاد هم می تونیم یه برنامه جالب مثل خوده AutoTyping بسازیم البته با امکانات فارسی چون این برنامه AutoTyping از زبان فارسی پشتیبانی نمی کنه !! با تشکر Sampro 24 مرداد 1387, 21:40قبلا یه جایی خودنم که اپن آفیس یه جوری هستش که هر چی تایپ می کنی رو یه جا ذخیره می کنه بعد هر جا تو متن چیزی وارد می کنی دنبال اون کلمه تو پایگاه داد می گرده و اگر پیداش کرد پیشنهاد می کنه و کاربر بعد از زدن اینتر اونو به سرعت درج می کنه من دنبال یه همچین برنامه ای هستم چون واقعا به درد می خوره اگه بشه می خوام بنویسمش:wink: i_lover3000 25 مرداد 1387, 01:12اگه می خواید با همدیگه بنویسیمش ولی من زیاد دات نت کار نکردم ولی دارم می رم تو کارش :neutral: مثلا این برنامه که گذاشتم ببینیت تو این برنامه از هیچ کد نویسی استفاده نکردم فقط از Properties است Sampro 25 مرداد 1387, 05:34این چیز خاصی نیست خود کمپوننت ها این خاصیت رو دارند بهش می گن اتو تایپینگ با وی بی نوشتیش متاسفانه من با وی بی کار نمی کنم می دونی چون از اول با دلفی کار کردم پروژه های مورد علاقمو با همون می نویسم دستم توش باز تره i_lover3000 25 مرداد 1387, 23:43بله با vb.net 2005 نوشتمش و همون طوری که گفتید از خاصیت اتو تایپینگ استفاده کردم ولی اون برنامه ای که تو پست اول گذاشتم ، فکر نمی کنم از این خاصیت استفاده کرده باشه چون تو همه برنامه ها می تونی ازش استفاده کنی ( بجز فتوشاپ !!! ) با تشکر موفق باشید Sampro 26 مرداد 1387, 04:48سلام. ببین لاور جان این برنامه میاد هندل برنامه ای توش تایپ می کنی رو می گیره بعد توش دنبال چیزی مثل ادیت باکس می گرده . بعد می فهمه اونجا داری تایپ می کنی و برات نمونه می یاره. تو فتوشاپ به نظرم چون از شیوه های خاصی استفاده می کنه این جوریه . اونجا دیگه از کنترلای پیش فرض ویندوز استفاده نمی کنه. چون می دونی معمولا همه ادیت باکسا از یه فرم ویندوزی پیشفرض استفاده می کنن مثل همون اکتیوی ایسک تو وی بی دلیلشم اینه که وقتی تم ویندوز رو عوض می کنی تقریبا همه برنامه ها هم تم ادیت و باتنا و ... عوض می شه . i_lover3000 27 مرداد 1387, 02:36خیلی خوبه ! حالا چطوری میتونم هندلش رو بدست بیارم ؟؟؟ من تازه کارم اگه میتونید بهم کمک کنید. با تشکر موفق باشید. Sampro 27 مرداد 1387, 05:18تعریفش کاری نداره یه سرچ بزنی حتما پیداش می کنی the_king 27 مرداد 1387, 20:21یک نمونه اش را ساختم که یکسری از کلمات زبان ویزوال بیسیک رو در بانک اطلاعاتی اش داره (درون فایل List.txt) و وقتی اجرایش می کنید در کنترلهای استاندارد ویژوال بیسیک (ThunderEditBox) و کنترلهای استاندارد سی (Edit) و کنترلهای بورلند (TEdit) و کنترلهای استاندارد VS.Net درون هر برنامه در حال اجرا ظاهر می شود : رنگ لیست را زرد گرفتم تا با لیست های عادی اشتباهی گرفته نشه. این برنامه با کنترلهای استاندارد Internet Explorer سازگار است ولی در برنامه هایی مثل Opera و FireFox و Photoshop از یک نوع خاص TextBox استفاده شده که پنجره اختصاصی ندارند و بصورت استاندارد و عمومی نمیشه کدی را برای آنها نوشت. بعضی از برنامه ها بعد از تایپ کردن یک عبارت Focus رو از کنترل ویرایشگر می گیرند و به کی کنترل دیگر جابجا می کنند. به همین دلیل است که بعد از اضافه کردن یک عبارت توسط AutoTyping ویرایشگر از حالت Focus خارج می شه. البته این کد هنوز جای کار زیاد داره ولی برای اساس یک طرحی اصولی و اهداف آموزش مناسبه. کد برنامه به همراه فایل اجرایی exe ضمیمه این پست می باشد. Sampro 28 مرداد 1387, 05:02ولی در برنامه هایی مثل opera و firefox و photoshop از یک نوع خاص textbox استفاده شده اون برنامه فکر کنم تو موزیلا می آورد . من بقیه رو تست نکردم . احتمالا باید هندل اونا رو هم جداگانه گیر بیاریم . اگه بشه کلمه ای که کاربر انتخاب می کنه رو بهمیم خیلی خوبه . مثلا می شه مثله بابی 7 یه لیست هیستوری علاوه بر لیست خودش نشون داده بشه (تو همون دراپ دون). the_king 28 مرداد 1387, 11:39مشکل اصلی اینجا است که خود اون TextBox درون Address Bar یک Handle مجزا نداره (لااقل اینطور به نظر میاد) در واقع گویا از نوع Windowless است و در نتیجه با پیغام های استانداردی که به یک پنجره می می فرستند (مثلا WM_GETTEXT) نمیشه ارتباط برقرار کرد. من اول با ابزار ++Microsoft Spy که جزو Visual Studio است، پنجره TextBox ها رو جستجو کردم تا در صورت امکان اسم ClassName کنترلهای جدید رو به لیست اضافه کنم (همانطور که در مورد Edit و TEdit و ThunderTextBox انجام دادم). ولی متاسفانه نه Opera و نه FireFox و نه Photoshop (صرفا ابزار نوشتن Text فتوشاپ، چون با بقیه قسمتهای آن - مثل TextBox درون References قسمت Plug Ins - سازگار است) از کنترلهای استاندارد Edit استفاده نمی کنند. البته کد برنامه رو واسه کنترلهای RichEdit مثل Wordpad و همینطور ویرایشگر Yahoo Messenger (که با نام کلاس YIMInputWindow ثبت شده) میشه تکمیل کرد چون پنجره شان مشخص و مجزا است. ولی واسه مواردی مثل Opera و FireFox بایستی توی مستندات سازندگانشون بگردیم، بلکه یک راه حل اختصاصی براشون پیدا بشه. Sampro 28 مرداد 1387, 14:42یه چیزی می خواستم بدونم ما نمی تونیم مثل کاربر که داخلشون تایپ می کنه یه جوری چیزایی که داخلشون تایپ می شن رو بفهمیم ؟ یا مثل کاربر که پیست می کنه ما هم داخلشون چیزی بریزیم ؟ the_king 28 مرداد 1387, 17:40البته که میشه، توی یکی از گفتگو ها من همینکار رو برای ارسال متن از ویژوال بیسیک به داخل Command Prompt انجام دادم ولی چند نکته وجود داره که واسه این مورد خاص باید در نظر بگیریم : اول اینکه ما نمی دونیم موقعیت پنجره TextBox کجای صفحه است و در پیدا کردن و نمایش کادر لیست مشکل داریم. این مشکل بر می گرده به همون نداشتن پنجره اختصاصی. دومین مشکل اینه که واسه موقع تایپ کردن قابلیت Copy Paste رو از کاربر می گیریم چون خودمون لازمش داریم. سومین مشکل اینه که اگه کاربر سریع متن رو تایپ و ویرایش کنه، برنامه ما به دلیل کندی مراحل Copy و Paste جا می مونه. چهارمین مشکل اینه که ما پنجره ای نداریم که ترکیب کلیدی Ctrl + C و یا مثلا پیغام WM_COPY رو فقط به اون پنجره ارسال کنیم. در نتیجه مجبوریم SendKey کنیم که توی همه پنجره ها دریافت میشه. اشکال این ارسال عمومی اینه که اگه کاربر سریع سراغ یک برنامه دیگه بره متن های ارسالی ما توی اون برنامه دیگه دریافت می شوند و قابل پیشبینی نیست که چه نتیجه ای ممکنه داشته باشه. DANG3R 28 مرداد 1387, 21:19میشه نقص همین برنامه رو بگید !؟ the_king 29 مرداد 1387, 00:19کدی که من نوشتم این چند تا مورد رو در نظر نمی گیره : مورد اول اینکه از یک پنجره و ListBox عادی استفاده می کنه، نه یک List واقعی که در هر ComboBox ای وجود داره. وقتی شما روی یک ListBox عادی Click کنید Focus از کنترلهای دیگه پس گرفته میشه مثلا اگه چشمکزن (Cursor) داخل یک ویرایشگر فعال باشه و شما روی ListBox کلیک کنید، حداقل برای یک لحظه اون چشمکزن ناپدید میشه و Focus منتقل میشه روی ListBox ما. البته من کد رو طوری نوشتم که سعی کنه دوباره Focus رو به ویرایشگر اصلی برگردونه ولی در برخی موارد این مساله نتیجه دلخواه رو نداره. این مساله ارتباط مستقیمی داره با کدی که در برنامه مقصد نوشته شده و من شخصا نمی تونم کار خاصی برایش انجام بدم، در واقع ویژوال بیسیک به من اجازه ساختن پنجره ای که Focusable نباشه رو نمی ده. البته ساختن چنین پنجره ای که Focus نداشته باشد به طریقی عملی است و روش دشواری دارد و خیلی حرفه ای. مورد دوم اینکه با کنترلهای RichEdit سازگار نیست. مثلا Wordpad و یکسری ابزارهای ویرایشگر از کنترلهای RichEdit استفاده می کنند. مهمترین نشونه شناسایی کنترلهای RichEdit اینه که متن داخلشون می تونه چند رنگی باشه و یا با چند قلم متفاوت در کنار هم نوشته بشه. البته این عدم سازگاری با اضافه کردن کدهای مربوط به پیغام ها برطرف میشه و برایش راه حل مشخصی داریم. مورد سوم اینکه نمی تونه با متن های فارسی به درستی کار کنه. مشکل اصلی اینجا است که نه راست به چپ شدن ListBox رو در نظر گرفتم و نه از کنترلهای Unicode استفاده کردم. ایندو مورد حداقل نکاتی است که برای درج کلمات فارسی باید رعایت بشه. البته این مشکل رو هم می توانیم برطرف کنیم. مورد چهارم اینکه در برنامه هایی مثل Opera و Firefox کنترل TextBox ای پیدا نمی کنه. در این مورد فعلا راه حلی سراغ ندارم چون ظاهرا با اصول برنامه ما باید هر TextBox ای یک پنجره مستقل داشته باشه که گویا در این دو برنامه نداره. مورد پنجم در پیاده سازی سیستم جستجوی متن اش خیلی موارد و نکته ها رو در نظر نگرفتم و قابلیت محدودی داره مثلا فقط برای تک کلمات طراحی شده، مثلا اگر در بانک اطلاعاتی اش عبارت auto type رو تعریف کنید و خودتان عبارت auto را به طور کامل وارد نمایید، دیگه فقط عبارت type رو جستجو می کنه و عبارت auto type رو نشون نمیده. این مشکل رو با تغییر سیستم جستجو اش میشه به راحتی برطرف کرد. مورد ششم اصلا کاربر پسند نیست، البته فقط یک مثال آموزشی است ولی به هر حال باید مواردی مثل نمایش در SysTray و امکان تغییر بانک اطلاعاتی به قابلیت ها اضافه بشه. مورد هفتم من صرفا کدهای کلیدهای مکان نما به سمت بالا (Up) و پایین (Down) و فاصله (Space) و Enter و نقطه (.) و تساوی (=) رو برای لیست تعریف کردم. باید کلیدهای مثل Home و End و Page Up و Page Down هم اضافه بشه. فعلا همین هفت تا مورد کافیه، خیلی زیاد که بشوند برنامه نویس رو از شوق برطرف کردنشون می اندازه. Sampro 29 مرداد 1387, 07:08ولی چند نکته وجود داره که واسه این مورد خاص باید در نظر بگیریم این طور که معلومه باید دنبال هون داکیمنتاشون بگردیم چون این راه مشکلات زیادی داره . میشه نقص همین برنامه رو بگید !؟ نقصش اینه که اپن سورس نیست و قابلیتایی که می خوایم رو نداره. Sampro 29 مرداد 1387, 07:27سلام مورد اول اینکه از یک پنجره و ListBox عادی استفاده می کنه، نه یک List واقعی که در هر ComboBox ای وجود داره. وقتی شما روی یک ListBox عادی Click کنید Focus از کنترلهای دیگه پس گرفته میشه مثلا اگه چشمکزن (Cursor) داخل یک ویرایشگر فعال باشه و شما روی ListBox کلیک کنید، حداقل برای یک لحظه اون چشمکزن ناپدید میشه و Focus منتقل میشه روی ListBox ما. مثل همون لیست دا خل کمبو بکس یه سری کد هایی هست که پیام های رسیده به یه لیست رو تغییر می دن مثلا به پیامی که فوکوس رو می خواد به اون بده پیغام منفی می دن یا اون برگشت می دن . البته من کد رو طوری نوشتم که سعی کنه دوباره Focus رو به ویرایشگر اصلی برگردونه ولی در برخی موارد این مساله نتیجه دلخواه رو نداره. این مساله ارتباط مستقیمی داره با کدی که در برنامه مقصد نوشته شده و من شخصا نمی تونم کار خاصی برایش انجا می شه تغییراتی ایجاد کردن که اون کنترل اصلا فوکوس نگیره . چون رد بدل کردن فوکوس هم وقت می گیره و برنامه باید از هر جهت سریع باشه . در واقع ویژوال بیسیک به من اجازه ساختن پنجره ای که Focusable نباشه رو نمی ده. تو دلفی می شه با ایجاد یه تابع مسیج های رسیده به یه کنترل رو مدیریت کرد مثلا تو دلفی من می تونم پیغامی که کاربر مثلا روی صفحه برنامه کلیک کرده رو به تایتل بار انتقال بدم . یعنی کاربر می تونه بدون استفاده از تایتل بار فرو رو بکشه . قاعدتا مسیج های دیگه ای هم هستند که به راحتی می شه مدیریتشون کرد . برایش راه حل مشخصی داریم. ورد از جه نوع ویرایشگری استفاده می کنه ؟احتمالا یه چیزی به غیر از این هاست!!؟ اینکه در برنامه هایی مثل Opera و Firefox کنترل TextBox ای پیدا نمی کنه به نظرم بهتره تا این دو رو از لیست خودمون حذف کنیم . چون فایرفوکس خودش یه اتوتایپ خیلی پیشرفته داره . دیدید که نسخه 3 واقعا اتوتایپش عالیه حتی عکس اون ساسیت رو بهتون نشون می ده . و وقتی چیزی تایپ می کنید فقط دنبال اونایی نیست که کلمه تایپ شده با اون شروع بشه . بلکه تو قمت های مختلف URL دنبال اون کلمه می گرده . احتمالا یه کمپوننت خاص برا این کار نوشتن . امکان تغییر بانک اطلاعاتی به قابلیت ها اضافه بشه اگر بتونیم این کار رو شروع کنیم . این موارد همون طور که گفتی چیز خاصی نیستند . باید کلیدهای مثل Home و End و Page Up و Page Down هم اضافه بشه. این لیست ها معمولا یه تعداد محدودی کلمه رو نشون می دن مثلا 10 تا و این کلیدا لازمم هم نیست . در ضمن تو برنامه بابی 7 من تست کردم کلید های Hone و End و ... فقط برای خود تکسباکس کار می کنن نه برای لیست ممنون به خاطر نکات




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 490]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن