PDA

View Full Version : System Restore



regbyte
یک شنبه 01 مهر 1386, 22:15 عصر
با سلام
من می خواهم وقتی برنامه ام اجرا شد، یک Restore Point با استفاده از System Restore ویندوز XP/Vista ایجاد کنم.(بطور خودکار)
لطفا راهنمایی کنید.

PC2st
دوشنبه 02 مهر 1386, 05:59 صبح
از تابع API ای بنام SRSetRestorePoint میشه استفاده کرد. (نمونه برنامه)
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=5304&lngWId=10

از WMI هم میشه!
http://habsq.blogspot.com/2006/06/creating-restore-point-using-windows.html

regbyte
دوشنبه 02 مهر 1386, 10:59 صبح
با تشکر
1. در Vista از کدام روش استفاده کنم بهتره؟
2. در مورد روش دوم چطور میتونم چک کنم که Restore Point ساخته شده یا نه؟(مثلا وقتی که System Restore غیر فعاله)؟

PC2st
دوشنبه 02 مهر 1386, 15:03 عصر
1. در لینک دوم اشاره شده که ممکنه روش استفاده از WMI با ویستا سازگار نباشه، پس احتمالش بیشتره که روش API با ویستا سازگار باشه.

2. فکر کنم هر وقت ارور دریافت کردید، یعنی اینکه restore point ایجاد نشده.

regbyte
دوشنبه 02 مهر 1386, 21:01 عصر
با تشکر


2. فکر کنم هر وقت ارور دریافت کردید، یعنی اینکه restore point ایجاد نشده.

در مورد API بله، در مورد WMI چطور؟

PC2st
سه شنبه 03 مهر 1386, 00:05 صبح
در مورد API بله، در مورد WMI چطور؟
با تشکر از شما (بخاطر دقتی که دارید)، درسته اگر System Restore غیر فعال باشه، در روش WMI هیچ اروری تولید نمیشه. اما برای دریافت لیستی از نام restore point ها میشه به شکل زیر عمل کرد:


ManagementObjectSearcher searcher = new ManagementObjectSearcher("\\\\localhost\\root\\default", "SELECT * FROM SystemRestore");
foreach(ManagementObject obj in searcher.Get())
MessageBox.Show((string)obj["Description"]);

و مثلا شرط میکنیم که اگر restore point ای بنام My Restore Point وجود داشت، پس یعنی اینکه عملیات با موفقیت انجام شده و در غیر اینصورت یعنی اینکه restore point اضافه نشده.