PDA

View Full Version : Refresh محیط ویندوز



Darg_Javad
یک شنبه 13 شهریور 1384, 23:03 عصر
آیا شما API یا هر فرمانی در ویندوز برای بازسازی محیط کاری در ویندوز سراغ دارید.
مثلا چطور میشه Refresh دسکتاپ رو از کد صدا زد ...
منظور من در اصل Refresh محتواست. و در ویندوز وقتی اتفاق میافته که کاربر به وسیله یکی از رابط های کاربری (مثلا به وسیله یکی از ایتم های موجود در پانل کنترل) بیاد و یک تنظیمی رو تغییر بده به این ترتیب اون ایتم رابط کاربری علاوه بر اینکه تغیراتت رو در پروفایل کاربر ذخیره میکنه با اجرای فرمانی (ما اسم اون رو Refresh محتوا میزاریم) ویندوز رو مجبور میکنه که خودش رو به روز کنه...
جالب ابنجاست که با تغییر در داده های یک فضای کاری ویندوز فقط خودش رو در اون قسمت به روز میکنه. مثلا با تغییر رنگ تیتل بار پنجره ها ابتدا تغییرات در رجیستری ذخیره میشه و بعد با صدور فرمانی فقط ویندوز اکسپلورر مجبور به 1- خواندن اطلاعات جدید فقط در حوزه رنگ های سیستمی 2 - اعمال تغیرات بر پنجره های باز میشه.

حالا سوال من همون فرمانست که بعد از تغییرات عناصر رو مجبور به تبعیت میکنه.
البته Refresh یا به قول بعضی ها F5 زیر مجموعه ای از اون Refresh اصلیه که فقط پنجره فوکوس رو از لحاظ مشاهده به روز میکنه و این باعث نمیشه که ویندوز برهو حافظه و متغییرهای مورد استفاده در اون پنجره را از نو از پروفایل کاربر بخونه و دوباره به روز کنه (خلاصه اینکه حافظه همون طوری که بوده میمونه)
خیلی جاها شنیدید که وقتی تغییری در رجیستری میدید (یعنی محتوای پروفایل کاربری رو نه از طریق رابط های کاربری بلکه به طور مستقیم در خود پروفایل تغییر میدد) مجبور به ریسیت کردن ویندوز هستید تا تغییرات مشاهده و اعمال شوند این درحالیه که خود ویندوز یه فرمان هایی برای تغییر Refresh محتوا دارد که بدون قطع ارتباط کاربر با ویندوز هم قادر به اعمال تعییرات جدید هست ...

خلاطه من اون فرمان رو میخوام حالا ممکنه یک API باشه یا سویچ یه فایل اجرایی یا ...
اگر دوستان لطف کنند و این خواسته من رو جواب بدند یه برنامه خیلی عالی که لنگیش فقط همین یه فرمانه, رو براتون میزارم توسایت. اون یک Antispyware هستش که خودم نوشتم.

حامد مصافی
دوشنبه 14 شهریور 1384, 10:01 صبح
اکثراً از تابع زیر استفاده میشه

Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

این تابع مقادیر زیادی قبول می کنه که بستگی به نوع عمل شما متفاوته
شما بگو کجای ویندوز رو می خوای Refresh کنی؟؟

Darg_Javad
دوشنبه 14 شهریور 1384, 17:39 عصر
از شما بسیار ممنونم. البته من همین طور بدون تحقیق هم سراغ این سوال از شما نیومدم. یک دو سه هفته ای تو نخش بودم. و جالب اینجاست که به تابعی که شما معرفی کرده اید هم برخورده ام. اما نتوانستم مورد مد نظرم که مخفی کردن درایو ها بوسیله داده NoDrives در شاخه HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Policies\Explorer هست, برنخوردم.
نه اینکه چطور میشه با رجیستری داریو ها رو مخفی کرد نه ... بلکه همه کارها انجام شده برنامه من درایو های مورد نظر رو تایین میکنه و اطلاعات صحیح برای مخفی شدنشون رو هم تو رجیستری مینویسه و خاتمه پیدا میکنه. اما توی پنجره My Computer اصلا تغییرات دیده نمیشه تا اینکه ویندوز رو ریسیت کنی (قطع ارتباط کاربر با ویندوزه منظورم. میشه Logoff و بعد Logon هم کرد). حتی با برنامه TweakUI هم که این کارو انجام میدم نمیدونم این برنامه چیکار میکنه تغییرات اینا مشاهده میشوند ...
اون Antispyware هم یه برنامه عالیه که با این فرمان کامل میشه میتونید نصفه نیمش رو از لینک زیر بردارید:http://javadsoltani.persiangig.com/Program/AntiSpyware%20DynamiteI/DynamiteI_Beta.zip
از شما ممنون میشم من رو در این مورد راهنمایی کنید.

مهران رسا
یک شنبه 15 دی 1387, 21:42 عصر
هر چند تاپیک خیلی قدیمی هست ولی دوستان لطفاً راهنمایی بفرمایید . من هم قصد چنین کاری رو دارم .

Mbt925
سه شنبه 17 دی 1387, 16:42 عصر
http://barnamenevis.org/forum/showpost.php?p=660884&postcount=315