پاسخ به سوالات-۱۱

1 -  چگونه می توان فایلهای انیمیشن Gif را در برنامه های وی بی قرار داد ؟
پاسخ : می توانید از کنترلهای Ocx و یا ActiveX هایی که برای اینکار طراحی شده اند استفاده کنید .
در این لینک می توانید یک ActiveX پخش کننده فایلهای gif را بهمراه سورس کامل آن به VB6 دریافت نمایید .

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

با جستجو در سایتهای برنامه نویسی وی بی که برخی از آنها را در وبلاگ نیز معرفی کرده ام می توانید کنترلهای دیگری نیز پیدا کنید .

2 – چگونه می توان در وی بی یک فایل با هر پسوندی را در یکی از درایوها اجرا کرد ؟
پاسخ : همانطور که قبلاً گفته ام برای Run کردن یک فایل اجرایی در وی بی بایستی از تابع ShellExecute استفاده نمایید . نحوه declare کردن آن بصورت زیر است :

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

حال فرض کنید می خواهید در مسیر D:\TestShell\ فایلی به اسم Test.exe را توسط برنامه تان اجرا کنید . کد زیر بدین منظور نوشته شده است :

     Call ShellExecute(Me.hwnd, vbNullString, "D:\TestShell\Test.exe", "", "", SW_SHOWNORMAL)

3 – چگونه می توان هندل ( Handle ) یک Textbox را در یک پنجره بدست آورد ؟
پاسخ : برای بدست آوردن هندل پنجره برنامه ای که هم اکنون باز است از تابع FindWindow استفاده کنید . نحوه declare کردن آن بصورت زیر است :

Private Declare Function FindWindow Lib "user32"  Alias "FindWindowA"    (ByVal lpClassName As String, ByVal lpWindowName   As String) As Long

فرض کنید caption فرم برنامه مورد نظرتان در متغیر strWindowName قرار داشته باشد . با دستور زیر می توانید هندل پنجره آنرا بدست آورید :

Dim hwndFound As Long
hwndFound = FindWindow(vbNullString, strWindowName)

نکته : برای پیدا کردن هندل پنجره برنامه ای که caption آنرا بطور دقیق نمی دانید می توانید از تابع  FindWindowLike استفاده کنید .

حال که هندل پنجره مورد نظرتان را استخراج کردید می توانید با استفاده از تابع FindWindowEx هندل اشیا موجود در آن پنجره را بدست آورید . نحوه declare کردن این تابع بصورت زیر است :

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

این تابع را بصورت زیر استفاده کنید :

   htextbox = FindWindowEx(hwndFound, ByVal 0&, "ThunderRT6TextBox", vbNullString)

که ThunderRT6Textbox نام کلاس Rich Textbox ها در ویژوال بیسیک 6 است . دستور فوق هندل اولین Textbox موجود در پنجره را به شما بر می گرداند . برای بدست آوردن هندل سایر Textbox ها از حلقه زیر استفاده کنید :

  Dim lChild As Long
  Dim lLast As Long
  
Do
      lLast = lChild
      lChild = FindWindowEx(lParent, lChild, "ThunderRT6Textbox", vbNullString)
Loop While lChild

نکته : توسط تابع GetClassName می توانید نام کلاس سایر اشیا موجود در وی بی را بدست آورید .

4 – چگونه می توان در وی بی عکسی از نوع BMP را مستقیماً بصورت JPG ذخیره کرد ؟
پاسخ : روشهای مختلفی برای اینکار وجود دارد که من برخی از آنها را لیست می کنم :

- استفاده از یک OCX/DLL به اسم PicFormat32 : با استفاده از این ابزار می توانید یک فرمت تصاویر را بهم تبدیل کنید . برای اطلاعات بیشتر به اینجا مراجع کنید .

- استفاده از کتابخانه Intel JPEG : برای اطلاعات بیشتر به اینجا و اینجا مراجعه کنید .

- استفاده از کتابخانه vic32.dll : برای اطلاعات بیشتر به اینجا مراجعه کنید .

با جستجو در سایت Google می توانید روشهای دیگری نیز پیدا کنید .

5 - من قصد دارم يک برنامه ديکشنری بنويسم. از چه کنترلی استفاده کنم که بتوانم داده های مربوط به چند زبان را در آن فعال کنم و در همه ويندوز ها قابل رويت باشند. در ضمن ميخواستم بدانم برنامه فاين ريدر قابليت خواندن زبان فارسی را هم دارد يا نه. اگر نه آيا برنامه مشابهی که اين قابليت رو داشته باشد وجود دارد؟
پاسخ : در مورد ساخت برنامه های فارسی قبلاً مطلب نوشته ام اما در مورد سایر زبانها مطلبی پیدا نکردم . در مورد برنامه FineReader من تاکنون با این برنامه کار نکرده ام اما یک OCR فارسی به اسم واژه شناس  در نمایشگاه کتاب امسال توسط شرکت هوش مصنوعی رایورز عرضه شده بود . برای اطلاعات بیشتر به سایت این شرکت به آدرس www.stonicasoft.com مراجعه کنید .

6 - چطور ميتوانم بين کامپيوتر و يک سخت افزار ديگر ارتباط برقرار کنم . مثلا يکLED را روشن و خاموش کنم ؟
پاسخ : برای اتصال کامپیوتر به یک سخت افزار می توانید از پورتهای سریال ، موازی و یا USB استفاده کنید . برای برنامه نویسی این پورتها نیز قبلاً مطالبی در وبلاگ نوشته ام که با مراجعه به آرشیو موضوعی می توانید آنها را بخوانید .


+ در مورد Log گرفتن از کیبرد به این آدرس  مراجعه کنید .

 

/ 116 نظر / 68 بازدید
نمایش نظرات قبلی
علی اسعدی

با سلام من میخواهم با ویژوال بیسیک برنامه نویسی کنم و لی مثل اینکه اول باید با دستوران بیسیک کار کرده باشم که این طور نیست و برای آشنایی با دستورات بیسیک نمیدانم از کجا شروع کنم که بتوانم برنامه نویسی کنم لطفاً به من راهنمایی دهید با تشکر

علی اسعدی

لطفاً در تایید مطالب قبلی خودم خواهش میکنم جواب را زودتر به من بدهید ./.با تشکر

مجید

سلام خیلی عالیه می خواستم یه وبلاگ با وی بی طراحی کنم مثلا وقتی کدی تو ویبی می نویسم بتونم اونو به وب تبدیل کنم مثلا یه دکمه قرار بدم و با کد وی بی بتونم خاصیت بککلر را عوض کنم ممنون میشم جواب بدید

لیلا

سلام من می خواهم با ویژوال بیسیک یک بازی بسازم که در آن کاربر باید یک هواپبما را با کلید های کیبورد حرکت دهد بطوری که باموانعی که ما در محیط بازی قرار داده ایم برخورد نکند چه کار باید بکنم؟ لطفا مرا راهنمایی کنید[لبخند][قلب]

سمیرا

سلام در مورد شی propertybagتوضیحی در وب سایت خود هر چه زود تر بگذارید با تشکر

محسن

سلام اسم من محسن با برنامه نويسي ویژوال بیسیک شكل دارم چه كار كنم خوب ياد بگيرم مرسي

محسن

سلام اسم من محسن با برنامه نويسي ویژوال بیسیک مشكل دارم چه كار كنم خوب ياد بگيرم مرسي

سینا

عالی بود

حمیدرضا

سلام من برنامه اسکیوئل 2005 رو نصب کردم مطمئن هم هستم که نصب شده چون در قسمت پروگرم فایل مشخصات کامل برنامه هست ولی بعد از نصب هیچ فایل اجرایی نه در دسکتاپ و نه در جای دیگری وجود نداره تا من بزنم و برنامه اجرا شود لطفا راهنمایی کنید با تشکر.

مهلا

با سلام و خدا قوت به شما من میخواستم با ویژوال بیسیک یه بازی طراحی کنم که با زیکن یه هواپیمای متحرک رو از میان موانع و بدون برخورد با آنها به مقصد برساند و امتیاز او را پس از زمان تلف شده محاسبه گردد. با تشکر