PDA

View Full Version : اجرای برنامه در Safe mode



دنیای دلفی
یک شنبه 01 اردیبهشت 1387, 11:21 صبح
وقتی یک برنامه را در رجیستری با دلفی برای اجرا شدن در هنگام بالا آمدن ویندوز قرار می دهیم در Safe mode اجرا نمی شود . برای اجرای خودکار در حالت Safe mode چه تنظیماتی در رجیستری باید انجام داد

ممنون از راهنمایی

mortezakiaee
یک شنبه 01 اردیبهشت 1387, 11:53 صبح
تو کدوم روت میزاری.hklm یا hkcu?

vcldeveloper
دوشنبه 02 اردیبهشت 1387, 01:20 صبح
طبیعی هست که نباید با Safe Mode بالا بیاد. اگر قرار بود برنامه های متفرقه هم با ویندوز در زمان Safe Mode بالا بیان، دیگه اسمش Safe Mode نبود! در Safe Mode فقط درایورهای سخت افزاری و اجزای ویندوزی که برای اجرای ویندوز لازم هستند، لود میشند. مابقی درایورها، اجزای ویندوز و برنامه های متفرقه غیرفعال میشند.

mortezakiaee
دوشنبه 02 اردیبهشت 1387, 11:52 صبح
برنامه ها در safe mode اجرا و خود به خود هم بالا میان بستگی داره کجای رجیستری اضافه بشن

دنیای دلفی
دوشنبه 02 اردیبهشت 1387, 17:41 عصر
من در این مسیر با این سورس کد می زارم ولی در safe mode بالا نمی یاد :


Var
R:TRegistry;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey('SoftWare\Microsoft\Windows\CurrentVersi on\Run',True);
Try
R.WriteString('ProgramName',Application.ExeName);
Except
ShowMessage('Error')
End;
R.CloseKey;
R.Free;
End;

دنیای دلفی
سه شنبه 03 اردیبهشت 1387, 22:29 عصر
یعنی راهی وجود ندارد

vcldeveloper
سه شنبه 03 اردیبهشت 1387, 23:09 عصر
یعنی راهی وجود ندارد
قبلا گفتم؛ خیر

mortezakiaee
چهارشنبه 04 اردیبهشت 1387, 08:45 صبح
مسیر هایی که موقع اجرای ویندوز در حالت safe mode استفاده می شه :


HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSET00x(1,2,3)\CON TROL\SAFEBOOT\MINIMAL\
برای توضیح هرکدوم از کلید ها می تونی ازMSDN استفاده کنی ولی کلیدی که می خواین APPMGMT است.
یه راه دیگه ولی کاملا اون کاری که می خوای نیست.
برنامه رو تو کلید SELL از زیر شاخه WINLOGON اضافه کن
فقط شدیدا مراقب باشین. دستکاری این شاخه ها ممکنه ویندوز شما رو کاملا خراب کنه:اشتباه::چشمک:


در Safe Mode فقط درایورهای سخت افزاری و اجزای ویندوزی که برای اجرای ویندوز لازم هستند، لود میشند.
چرا عادت کردیم همه چیز رو غول کنیم؟ مگه ویندوز هوشمنده که خودش تشخیص بده چی لازمه چی نیست؟:متفکر:

دنیای دلفی
چهارشنبه 04 اردیبهشت 1387, 16:37 عصر
آقای کشاورز دمت گرم داشتی ناامیدم می کردی . آقای مرتضی کیایی ممنون از راهنمایی من کد را به صورت پایین استفاده کردم ولی در Safe mode اجرا نمی شه میشه بررسی کنید و در صورت ممکن درستش را برام بنویسید :

ممنون می شوم


procedure TForm1.Button1Click(Sender: TObject);
Var
R:TRegistry;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey('SYSTEM\CONTROLSET001\CONTROL\SAFEBOOT\M INIMAL\APPMGMT',True);
Try
R.WriteString('ProgramName',Application.ExeName);
Except
ShowMessage('Error')
End;
R.CloseKey;
R.Free;


end;

mortezakiaee
پنج شنبه 05 اردیبهشت 1387, 08:04 صبح
متاسفانه الان سرم شلوغه. تو هفته بعد یه سورس کامل همراه با توضیحات براتون می ذارم

دنیای دلفی
پنج شنبه 05 اردیبهشت 1387, 19:19 عصر
ممنون منتظرم هستم فقط یادتون نره

mortezakiaee
یک شنبه 08 اردیبهشت 1387, 09:50 صبح
من همین کد رو تست کردم موفق بود. برنامه تون رو path اضافه می کنین؟

دنیای دلفی
سه شنبه 10 اردیبهشت 1387, 21:16 عصر
Application.exename هم مسير و هم نام فايل را بر مي گردونه

دنیای دلفی
پنج شنبه 12 اردیبهشت 1387, 23:43 عصر
امكان داره كدي را كه شما استفاده كرده ايد را بگذاريد

Mask
دوشنبه 02 دی 1387, 14:20 عصر
با سلام
فقط کافیه در مسیر زیر فایلتون رو بزارید دقیقا در safe mode اجرا میشه
[\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Shell"="Explorer.exe,program.exe"
به جای program.exe مسیر و نام برنامتون رو بنویسید.
و یه جای دیگه
در مسیر بالا اما به جای استرینگ زیر
"Userinit"="C:\\WINDOWS\\system32\\userinit.exe,program.exe"

hojjatcroos
دوشنبه 02 دی 1387, 18:29 عصر
اگه فایلتو به جای یکی از اجزای اصلی ویندوز مثل Userinit قرار بدی از هر جایی که ویندوز را بالا بیاری میشه فقط باید یک دکمه در برنامه قرار بدی که بعد از کلیک روی آن Userinit لود بشه

Mask
سه شنبه 03 دی 1387, 10:00 صبح
اگه فایل Userinit لود نشه اصلا ویندوز بالا نمیاد.
و فقط در همین مسیر داخل ریجستری فراخوانی میشه.
Userinit"="C:\\WINDOWS\\system32\\userinit.exe

hojjatcroos
سه شنبه 03 دی 1387, 10:43 صبح
آقای دلفی 7 من منظورم اینه که برنامه قبل از اجرای ویندوز با Group policy در هنگام WElcome لود بشه

Mask
سه شنبه 03 دی 1387, 20:37 عصر
آخه عزیزم اگه برنامه شما تحت ویندوز باشه چطور قبل از اجرای ویندوز فراخوانی میشه؟

hojjatcroos
چهارشنبه 04 دی 1387, 09:44 صبح
عزیز وقتی Userinit لود نشه سرویسهایی که برای Run کردن برنامه لازمند لود شدن وبرخی اجزای ویندوز مثل Explorer.exe لود نشدن و سرویس هایی که مال ویندوز نیستندخودتون هم می دونید موقع خاموش کردن رایانه میشه برنامه اجرا کرد چه برسه موقع Welcome