راه حل چهارم: حجم فایل Bitmap خیلی زیاد است!

همانطور که گفته شد،ویندوز فقط فایل های Bitmap را به عنوان Wallpaper قبول می کند (به مقدمه مراجعه شود)،ولی ما معمولا از فایل های Bitmap استفاده نمی کنیم،زیرا دارای حجم زیادی هستند.در مقابل فایل های JPEG ، GIF ، PNG و ... دارای حجم کمتری همراه با کیفیت بهتری هستند و کاربران معمولا در آرشیو عکس های خود از این نوع فایل ها استفاده می کنند و نه Bitmap.پس هدف این است : «برنامه را طوری تغییر دهید که بتواند فایل غیر Bitmap نیز به عنوان Wallpaper انتخاب کند»

با توجه به توضیحات گذشته،تبدیل یک تصویر غیر Bitmap به Bitmap کار ساده ای نیست.به همین منظور باید از یک برنامه خارجی (منظور خارج از Batch فایل و VB Script است) کمک بگیریم.برای رسیدم به این هدف برنامه ای را با VC6 (در نتیجه در تمام نسخه های ویندوز از 98 به بالا کار می کند) با نام CI (کد منبع آن در فایل پیوست پست اول تاپیک موجود است) نوشتم که با استفاده از OleLoadPicture و PICTURE::SaveAsFile، یک تصویر را به یک Bitmap تبدیل می کند.این برنامه با دریافت دو پارامتر کار می کند.پارامتر اول آدرس فایل تصویری است که باید تبدیل به Btmap شود و دومی نام فایل مقصد از که باید تصویر تبدیل شده به Bitmap ،در آنجا ذخیره شود.برای دریافت راهنما (پارامتر های ورودی و مقدار خروجی برنامه)، از سوئیچ ?/ استفاده کنید.همچنین در این قسمت می توان از همان کد MyCW2.vbs برای ایجاد یک فایل تصادفی استفاده کرد.پس مراحل زیر را انجام دهید:
1) ابتدا يک عکس غير Bitmap را به عنوان Wallpaper انتخاب کنيد يا روي فايل reg.reg (در فايل فشرده شده اولين پست)،Double click کنيد(دليل آن را در پاسخ سئوال دوم بخش مقدمه آورده ام).
2) بهتر است يک پوشه (Directory) را براي اين منظور تخصيص دهيد (مثلا در درايو C يک پوشه به نام ChangeWallpaper بسازيد و اين پوشه را براي اين منظور استفاده کنيد ).از اين به بعد، اين پوشه (در مثال ما C:\ChangeWallpaper) را به نام 'پوشه عملبات' نام مي بريم.
3) فايلهای MyCW3.bat و MyCW2.vbs و CI.exe را (که در فايل فشرده شده اولين پست قرار دارد) در پوشه عملبات کپي کنيد.
4) چند عکس که مي خواهيد به عنوان Wallpaper استفاده شوند را انتخاب کنيد و در پوشه عمليات کپي کنيد.توجه کنید که فرمت تصاویر مهم نیست.
5) عکس هاي مرحله قبل (تصاویر کپي شده در پوشه عمليات را که از اين به بعد فقط 'عکس' خطاب مي کنيم) را طوری نام گذاری کنید که پسوند آن jpg باشد.توجه کنید که نام فایل و فرمت نام مهم نیست (هر چه می خواهید قرار دهید)،فقط پسوند فایل را به jpg تغییر دهید،حتی اگر تصاویر شما دارای فرمت دیگری به غیر از نوع JPEG است.
6) روي Start>All Program>Startup راست کليک کنيد و گزينه Open را انتخاب کنيد تا پوشه Startup را ببينيد.
8) از فايل MyCW3.bat که در پوشه عمليات قرار دارد،يک Short cut در پوشه Startup بسازيد.اين کار باعث مي شود که در هر بار، بارگذاري کاربر شما (در Log off يا Restart ) يکبار فايل MyCW3.bat اجرا شود.
9) دو بار پشت سر هم ،Log off يا Restart کنيد (توجه کنید که دو بار باید این کار را انجام دهید)!
10) اگر تمام مراحل را درست انجام داده باشيد،Wallpapre شما در هر بار Log off يا Restart (از اين به بعد) تغيير خواهد کرد.

اما فرایند کار خیلی سر راست است.در فایل MyCW3.bat،ابتدا یک فهرست از تمام فایل های jpg تهیه و در Dir.txt ذخیره می شود.سپس با استفاده از MyCW2.vbs (با همان شرحی که در پست قبل داده شد) یک فایل به شکل تصافی از نامهای تصادفی درون Dir.txt انتخاب و دیگر نامها درون Dir.txt حذف می شوند.در پایان MyCW3.bat ،فایل انتخاب شده را با استفاده از CI ،اولا تبدیل به Bitmap می کند و ثانیا در جای مناسب برای تغییر Wallpaper ذخیره می نماید.