نویسنده موضوع: Windows XP, 7, 8, 8.1 theme vb6  (دفعات بازدید: 1637 بار)

jamesband007

  • مدیریت سایت
  • کاربر جدید
  • *****
  • آفلاین آفلاین
  • ارسال: 31
Windows XP, 7, 8, 8.1 theme vb6
« : آوریل 03, 2010, 12:07:52 pm »

اگر از vb6 کاران باشید ، قطعا تا به حال دکمه ها و combo box ها و دیگر کنترل های معمول فرم ها شما را دلزده  کرده است و به فکر دکمه ها و دیگر کنترل های حداقل در حد ویندوز xp افتاده اید

اگر این طور است این تاپیک به شما تعلق دارد :

برای این منظور n تا راه حل پیشنهاد و پیاده سازی شده ، از ویرایش و بهتر سازی کنترل های قدیمی تا ساخت کنترل های دستی ، بعضی ها هم کنترل های ساخت خودشان را تبدیل به کامپوننت کرده اند تا خلق الله هم از آنها به راحتی آب خوردن استفاده کنند .

اما من می خواهم به شما یک راه حل ساده پیشنهاد بکنم که کمتر در انجمن های فارسی پیشنهاد شده  : استفاده از فایل manifest در کنار فایل اجرایی EXE

طریقه کار هم به این صورت است که یک فایل به نام "YourApp.exe.manifest" در کنار فایل اجرائیتان یعنی YourApp.exe می سازید و کد های زیر را در آن قرار می دهید :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
   version="1.0.0.0"
   processorArchitecture="X86"
   name="CompanyName.ProductName.YourApp.exe"
   type="win32"
/>
<description>Your application description here.</description>
<dependency>
   <dependentAssembly>
       <assemblyIdentity
           type="win32"
           name="Microsoft.Windows.Common-Controls"
           version="6.0.0.0"
           processorArchitecture="X86"
           publicKeyToken="6595b64144ccf1df"
           language="*"
       />
   </dependentAssembly>
</dependency>
</assembly>

و همان طور که همه شما استاد هستید و می دانید فقط نیاز به تغییر  "CompanyName.ProductName.YourApp.exe" و "Your application description here." است .

حالا کد زیر را فقط به ابتدای کد فرم اصلی و آغاز گر بگذارید :

Private Declare Sub InitCommonControls Lib "comctl32.dll" ()
یک خط کد مانده که آن را هم باید در تابع ()Form_Initialize قرار دهید و قرار دادن آن در () Form_Load  باعث کار نکردن زحمات گرانقدر شما می شود :

InitCommonControls
نکات مهم راجع به این روش :

کارکرد این روش در محیط ویژوال استودیو دیده نمی شود و فقط با اجرا کردن فایل اجرائی پروژه قابل مشاهده است .
این روش با Frame کمی مشکل دارد و ممکن است کنترل های روی آن را یک بلوک سیاه نشان بدهد!
کنترل هایی که می خواهید تغییر پیدا کنند به Graphical mode تغییر ندهید .
نکته ی بسیار مثبت : بسیار راحت برای پروژه جاری و برای پروژه هایی که قبلا کار کرده ایم (تنها اضافه کردن 2 خط کد به پروژه)
نکته 30 درصد منفی (برای Portable کاران) : برنامه نویسان برنامه های بدون نصب یک شعار اساسی دارند : "فقط یک فایل اجرایی" که یک فایل اضافی آنها را کمی به زحمت می اندازد ، گرچه Portable کاران به گرافیک اهمیت چندانی نمی دهند.
« آخرين ويرايش: مارس 08, 2014, 10:09:04 am توسط jamesband007 »
خارج شده است

jamesband007

  • مدیریت سایت
  • کاربر جدید
  • *****
  • آفلاین آفلاین
  • ارسال: 31
پاسخ : Windows XP, 7, 8, 8.1 theme vb6
« پاسخ #1 : مارس 08, 2014, 10:22:45 am »

خوشبختانه آن نکته 30 درصد منفی هم براحتی حل می شود !
با آنکه فایل manifest قابل اضافه کردن به resource های پروژه است ولی در زمان اجرا بنده نتوانستم تغییری در تم ایجاد کنم .
با استفاده از برنامه بسیار کوچک Resource Hacker براحتی می شود فایل مانیفست را به خود فایل exe الحاق کرد .

ابتدا فایل را در Resource Hacker باز کرده و سپس از منوی Action ، گزینه ی Add a new Resource را انتخاب می کنیم .
فایل مانیفست را انتخاب کرده و در سه مکان موجود به ترتیب 24 و 1 و 1301 را قرار داده و دکمه Add Resource را فشار می دهیم . در آخر فایل را Save می کنیم.

* آخرین نسخه نرم افزار رایگان و کوچک Resource Hacker را می توانید از سایت خودش دانلود کنید:
http://angusj.com/resourcehacker
خارج شده است