PDA

View Full Version : restart کردن کامپیوتر



boof1363
یک شنبه 28 بهمن 1386, 22:02 عصر
دوستان کسی میدونه با install shieldاگه برنامه نصبی ساختیم و خواستیم کامپیوتر بعد از نصب برنامه restart بشه باید چکار کنیم

Nima_NF
یک شنبه 28 بهمن 1386, 22:40 عصر
با استفاده از کد SdFinishReboot ،
در صفحه زیر مثال به طور کامل بیان شده و در دو خط اول نحوه استفاده از آن را هم توضیح داده است:
SdFinishReboot Example (http://helpnet.installshield.com/robo/projects/devstudio9helplangref/LangrefSdFinishReboot_example.htm)

در این صفحه جزییات تابع فوق و در انتهای آن نیز تابع دیگری با نمونه مطرح شده است:
SdFinishReboot function (http://helpnet.macrovision.com/robo/projects/devstudio9helplangref/LangrefSdFinishReboot.htm)

boof1363
دوشنبه 29 بهمن 1386, 10:34 صبح
برنامه نصبی ساختم و یه install script هم Add کردم و این کد رو توش گذاشتم ولی وقتی رنامه رو اجرا کردم هیچ اتفاقی نیفتاد و کامپیوتر restart نشد.

Nima_NF
چهارشنبه 01 اسفند 1386, 03:45 صبح
خوب با توجه به درخواست دوستان عمل reboot را کامل توضیح می دهم:

برای پروژه Basic MSI به راحتی و به این شکل عمل کنید:

1) در install designer به قسمت زیر بروید



behavior and logic -> sequences -> installation - > Execute

2) حال ScheduleReboot را انتخاب کنید (اگر هم وجود نداشت آن را با راست کلیک کردن و insert به انتهای لیست اضافه کنید) و condition آن را پاک کنید ، با این کار برای تمامی شرایط install و uninstall و ... در پایان کار پیام reboot سیستم نمایان می شود .

اگر خواستید می توانید condition آن را مثلا به "Not Installed" تغییر دهید تا فقط در هنگام نصب پیام reboot نمایش داده شود.


--------------------------------------------------------
برای پروژه InstallScript که سخت تر می باشد :

1) با توجه به اینکه ممکن است به script آشنایی نداشته باشید ، ابتدا پروژه خود را از طریق project assistant مرحله به مرحله تکمیل کنید و نوع فایل خروجی را مثلا CD-Rom یا هر کدام که مورد نظر شما است تعیین کنید و سپس پروژه را build کنید تا script ها برایتان ساخته شود.

2) اکنون در install designer از طریق behavior and logic بر روی InstallScript بروید و بر روی فایل setup.Rul (یا هر نام دیگر) دابل کلیک کنید تا باز شود.

3) از طریق دو comboBox بالای صفحه اسکریپت ها ، After Move Data را انتخاب کنید و از دیگری OnEnd را انتخاب کنید تا event و تابع ساخته شود و سپس کد ها را به شکل زیر تغییر دهید تا عمل reboot به شکل دیگری پس از انجام نصب نمایش داده شود:



function OnEnd()
STRING szTitle, szMsg1, szMsg2 ;
begin

if( SdFinishReboot ( szTitle , szMsg1 , SYS_BOOTMACHINE , szMsg2 , 0)< 0 ) then
MessageBox ("SdFinishReboot failed.", SEVERE);

endif;

end;

ضمنا از طریق custom action ها می توانید در هر کجا که می خواهید SdFinishReboot را فراخوانی کنید که به خودتان می سپارم.