۰۵-مهر-۱۳۸۶, ۲۲:۰۳:۱۹
مطلبی که قرار دادم یک ترجمه است علاوه بر اینکه نکاتی رو خودم بهش اضافه کردم, که فکر می کنم به درد دوستان بخوره.
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 بیتی بسیار با اهمیتتر میشود. عبارت دوم در ویندوز ویستا صحیح میباشد:
-مسیر تنظیمات فایلهای دادهای (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 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
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 هم آپ کردم برای کسانی که بهش احتیاج دارند.