ايران ويج

نسخه‌ی کامل: برنامه‌نویسی با وی‌بی‌6 در ویندوز ویستا
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
مطلبی که قرار دادم یک ترجمه است علاوه بر اینکه نکاتی رو خودم بهش اضافه کردم, که فکر می کنم به درد دوستان بخوره.


VB6 Programming in Vista
ویژوال بیسیک 6 در ویندوز ویستا


-فرمان‌های SendKeys را حذف کنید و به جای آنها از API بهره ببرید.

-تنظیمات برنامه خودتون را در HKEY_CURRENT_USER ذخیره کنید و چیزی در HKEY_LOCAL_MACHINE ننویسید.

-اگر از ADO استفاده می‌کنید باید از نسخه 2.8 یا بالاتر بهره بگیرید.

-اگر از XML استفاده می‌کنید باید از نسخه 3.0 یا بالاتر بهره بگیرید.

-اگر برای پخش فایل‌های صوتی از PlaySound API استفاده می‌کنید باید توجه داشته باشید که این API در ویندوز ویستا قادر به پخش فایل‌های Wav PCM نیست. در مورد فایل‌های MP3 نیز این API فقط قادر خواهد بود فایل‌های Stereo را پخش کند اما در مورد MP3 های Mono دچار مشکل خواهد شد.

-اگر از Printer Setup Dialog به واسطه Common Dialog یا حتی API استفاده می‌کنید, دیالوگ قادر به برگرداندن عدد صحیح تعداد کپی‌ها نخواهد بود. در ویندوز ویستا این عدد همیشه یک برگردانده می‌شود. برای رفع این مشکل توجه داشته باشید که این Dialog است, که در برگرداندن عدد صحیح تعداد کپی‌ها دچار مشکل می‌شود. و شما باید در کد‌نویسی راه دیگری به جزء دیالوگ برای به دست آوردن تعداد کپی‌ها بیابید...

-استفاده از فرمان DeleteSetting به دلیل مسائل امنیتی کمی دشوار شده است. تا قبل از ویندوز ویستا شما قادر بودید یک Section را بدون وارد کردن کلید به طور کامل حذف کنید. اما در ویستا حتما باید نام کلید مورد نظرتان را قید کنید و گرنه با پیغام خطا رو به رو خواهید شد. این مسئله درون ویندوز ویستا نسخه 64 بیتی بسیار با اهمیت‌تر می‌شود. عبارت دوم در ویندوز ویستا صحیح می‌باشد:
DeleteSetting AppName, Section [,Key]
DeleteSetting AppName, Section, Key


-مسیر تنظیمات فایل‌های داده‌ای (etc Files) موجود در Common Files به جای Program Files به مسیر C:\Users\Public منتقل شده‌اند. برای برگرداندن این گونه مسیر‌ها باید نکته فوق را در نظر داشته باشید که بهترین راه همان فراخوانی با API است و نه راه‌های مرسوم و رایج موجود در VB6. به عنوان مثال فرمان Environ نیز مسیر‌هایی برخواهد گرداند اما به نتایج خروجی‌های این فرمان برروی سیستم‌های مختلف اعتماد نکنید. API قادر خواهد بود بر روی Machines و Oss های متفاوت نتایج صحیح را ارائه دهد. به نکات زیر نیز در این باره توجه کنید:

oتنظیمات مبتنی بر کاربر (Per-User Setting) (منظور پروفایل کاربری, کاربر است) به طور معمول باید در مسیر Application Data نگه داری شود. اما همیشه مسیر این تنظیمات را از OS سوال کنید.

oبرای مسیر Common Files از OS عبارت ssfCOMMONDATA یا CSIDL_COMMON_APPDATA , را سوال کنید.

oبرای Application Data از OS عبارات ssfAPPDATA یا CSIDL_APPDATA , را سوال کنید. به طور معمول برای نگه داری تنظیمات داده‌ای برروی دیسک سخت, شما باید ابتدا یک پوشه با نام کمپانی و یا نام پدید آورنده برنامه در شاخه Application Data بسازید سپس پوشه دیگری با نام خود برنامه به همراه نگارش (اختیاری) درون آن ساخته, و تنظیمات داده‌ای برنامه‌تان را درون مسیر حاصله سازماندهی کنید.

oبرای اسناد مربوط به همه کاربران, توجه داشته باشید که این اسناد را در مسیر My Documents هر کاربر که معادل CSIDL_PERSONAL را دارد ذخیره کنید. راه ساده تر آن است که شما از مسیر AllUsers\Documents که معادل CSIDL_COMMON_DOCUMENTS را دارد ,استفاده کنید.


-برای نصب برنامه‌های خود باید بسته نصب را به وسیله کاربر Admin اجرا کنید تا عملیات نصب به درستی و کامل طی شود. یعنی فایل نصب را با Run As Administrator اجرا کنید.

-درون ویندوز ویستا به طور پیش فرض فایل های Runtime برای اجرای برنامه‌ها به زبان VB6 وجود دارد. در واقع درست تر آن است که بگویم فایل‌های مناسب ویندوز ویستا در آن مهیا شده‌اند. به این ترتیب باید فایل‌های رایج یعنی VB6 Runtime Files را از بسته نصب خارج کنید. علاوه بر این مایکروسافت لیست فایل‌هایی را معرفی کرده که نباید آن‌ها را برای ویندوز ویستا توزیع کنید. به آدرس‌ی که در پایان این مطلب آورده شده مراجعه کنید.

-در زمان کد‌نویسی (in IDE Mode) ,یعنی وقتی که برنامه Visual Basic 6.0 در حال اجراست, با مشکل سرعت این برنامه مواجه خواهید بود. توصیه می شود برای حل این مشکل به جای Theme اصلی ویندوز ویستا یعنی Aero از تم های کلاسیک Windows Classic Theme یا از تم ابتدایی ویستا Windows Vista Basic theme استفاده نمایید.

-به طور کل تا جایی که ممکن است از فرامین و یا عملیات‌هایی که به وسیله .net پشتیبانی نمی‌شود (نظیر همان فرمان SendKeys) در برنامه‌های خود برای ویندوز ویستا استفاده نکنید. توجه داشته باشید که اساس ویندوز ویستا پشتیبانی و حمایت از سکوی .net درون خود است. بنابراین در بسیاری از مواقع دستورالعمل‌های قدیمی (موجود در VB6) قربانی خواسته‌ها و نسخه جدید آن‌ها شده است.

برای اطلاعات بیشتر به مستندات مایکروسافت در آدرس زیر مراجعه نمایید:
http://msdn2.microsoft.com/en-us/vbrun/ms788708.aspx

در انتها همین مطلب رو به شکل PDF هم آپ کردم برای کسانی که بهش احتیاج دارند.
سلام.
ممنون . دست شما درد نکنه .

فک نمی کنید یکم VB6 قدیمی شده ؟!
سلام.
دستت درد نکنه کلیک جان. جالب بود. با arnh هم موافقم. ولی بعضی ها واسه تفریح برنامه مینویسن نه واسه درامد. اینه که این مطالب میتونه واسشون مفید باشه.
سلام دوستان

pdfو دانلود کردم ... حتما می خونم
اره vb6 قدیمی شده ... اما !
می شه از دات نت استفاده کرد ... خب اگه سرعت توی برنامه من مهم باشه هیچ وقت از دات نت استفاده نمی کنم.
در ضمن vb6 رو دست کم نگیرید ... خیلی کارا می شه باهاش کرد !!
استفاده از زبان VB6 در حال حاظر توجیه اقتصادی بالایی داره!

به قول آقا اشکان وی بی حالا حالا ها جای کار داره...
وی بی دات نت که با ویستا این مشکل ها رو نداره؟ منظورم ورژن 2008 هست که تازه اومده!!!!
far_222000 نوشته است:وی بی دات نت که با ویستا این مشکل ها رو نداره؟ منظورم ورژن 2008 هست که تازه اومده!!!!
خوب عزیز من حرف زیاد عجیبی نیست!
ورژن 2008 با سیستم های قبل از خودش سازگاری داره اما آیا با سیستم
مثلا 2010 مشکلاتش کمتر از همین VB6 (محصول 98) در 2007 میشه؟!
چه استدلال عجیبی !
ما که نفهمیدیم چی شده ؟
منظورم این بود که .net اصلا برای همچین محیطی طراحی شده پس با حداقل مشکلات اجرا خواهد شد
اما مطمئن نباشید که برای مثلا سیستم های سال 2010 همین وی بی دات نت 2008 مشکلاتش کمتر
از وی بی 6 تو ویستا هست.
در ضمن این مشکلاتی که عنوان شد همگی قابل حل هستند, یعنی باید گفت وی بی 6 آنچنان مشکل
اساسی مهمی برای اجراش تو سیستم های جدید نداره...

و یک نکته دیگه اینکه مایکروسافت حالا حالا ها از وی بی با نگارش کلاسیک خودش (VB6) پشتیبانی
خواهد کرد. این مطلب رو حداقل می شه از زبان مورد حمایت در بسته آفیس فهمید.
این هم حرفیه!!!
صفحه‌ها: 1 2