PDA

View Full Version : سوال: اجرا برنامه پس از بوت شدن سیستم؟



lordarma
پنج شنبه 01 بهمن 1388, 00:44 صبح
همان طور که می دانید برنامه هایی (مانند آنتی ویروس ها) وجود دارند که قبل از ویندوز کار های خود را انجام می دهند ، همچنین برخی برنامه ها هستند که ویندوز را ریستارت می کنند و هنگام لود مجدد ویندوز برخی اعمال را انجام می دهند.
حال از شما می خواهم اطلاعاتی در مورد این جور برنامه نویسی ها به من بدهید ،
به عنوان مثال سورس برنامه ای را به من بدهید که پس از ریستارت کردن ویندوز ، فایلی را از مکانی به مکان دیگر کپی کند.
با تشکر قبلی از شما دوستان عزیز:بوس::چشمک:

.:KeihanCPU:.
پنج شنبه 01 بهمن 1388, 01:39 صبح
دوست عزیز این چیزی که شما میخواین خودش به چند قسمت تقسیم میشه
مثلا بالا امدن برنامه پس از ویندوز یه مقولست(نوشتن در استارت اپ->> جستجو کنید)
ریستارت کردن برنامه یه مقوله جستحو کنید سادست
کپی کردن هم سادست

miniator
پنج شنبه 01 بهمن 1388, 01:43 صبح
سلام !
تا اونجايي كه من اطلاع دارم فكر كنم بايد برنامت رو تو قسمت لود درايور ها يا سرويس ها بذاري ! احتمالا با ريجستري بشه @ منم دنبالش گشتم ولي چيزي پيدا نكردم !

lordarma
پنج شنبه 01 بهمن 1388, 09:50 صبح
دوست عزیز این چیزی که شما میخواین خودش به چند قسمت تقسیم میشه
مثلا بالا امدن برنامه پس از ویندوز یه مقولست(نوشتن در استارت اپ->> جستجو کنید)
ریستارت کردن برنامه یه مقوله جستحو کنید سادست
کپی کردن هم سادست


نه صرفا مسئله ریستارت یا کپی نیست ،
بالا آمدن برنامه قبل از بالا آمدن ویندوز برایم مهم است ،
دلیل اینکه دنبال همچنین کدی هستم این است که برای دستکاری برخی از فایل های سیستم عامل ، باید در زمانی که آن فایل مورد استفاده قرار نمی گیرد جای آن را عوض کرد و این حالت فقط در صورتی رخ می دهد که ما بخواهیم خارج از ویندور فایل رو دستکاری (یا تعویض کنیم.)

lordarma
پنج شنبه 01 بهمن 1388, 09:52 صبح
سلام !
تا اونجایی که من اطلاع دارم فکر کنم باید برنامت رو تو قسمت لود درایور ها یا سرویس ها بذاری ! احتمالا با ریجستری بشه @ منم دنبالش گشتم ولی چیزی پیدا نکردم !


اکثر آنتی ویروس ها هم از این روش استفاده می کنند ،
دنبال چگونگی اش هستم !
دوستان اگر لطف کنند و جواب بدهند ممنون می شوم...

miniator
جمعه 02 بهمن 1388, 00:52 صبح
سلام !
يه روش پيشنهاد ميكنم دنبالشو بگير ببين به جايي ميرسي !

برنامه ي Autoruns رو بگير ، اجراش كن ! قسمت درايور ها و سرويس ها و خيلي قسمت ها كه قبل از شروع ويندوز فعال مشن رو نشون ميده ! روي يكي دابل كليك كن مي ري تو قسمتي كه اون فايل اجرا ميشه در ريجستري ! همون روش رو نگاه كن و واسه خودت يه چيز شبيه همون درست كن ! ميتوني از همون ها هم استفاده كني و اسم اون را با برنامت عوض كني !

اين فقط يه فرضيه بود !

xxxxx_xxxxx
جمعه 02 بهمن 1388, 01:40 صبح
بالا آمدن برنامه قبل از بالا آمدن ویندوز برایم مهم است
چنین چیزی غیرممکن است.
برنامه های VB6 تنها در محیط ویندوز قابل اجرا هستند، پس قبل از بالا آمدن سیستم عامل، برنامه شما توانایی اجرا شدن را هم ندارد حتی اگر راهی برای آن پیدا کنید.

تنها می توانید برنامه خود را پیش از اجرای Explorer اجرا کنید.

lordarma
جمعه 02 بهمن 1388, 10:49 صبح
چنین چیزی غیرممکن است.
برنامه های VB6 تنها در محیط ویندوز قابل اجرا هستند، پس قبل از بالا آمدن سیستم عامل، برنامه شما توانایی اجرا شدن را هم ندارد حتی اگر راهی برای آن پیدا کنید.

تنها می توانید برنامه خود را پیش از اجرای Explorer اجرا کنید.


در صورتی که بخواهیم قبل از Explorer برنامه را اجرا کنیم ،
آیا می توان فایل هایی از قبیل :
ntoskrnl.exe
taskmgr.exe
shell32.dll
و حتی خود explorer.exe را دستکاری (ویرایش یا تعویض) کرد؟

lordarma
جمعه 02 بهمن 1388, 10:50 صبح
سلام !
یه روش پیشنهاد میکنم دنبالشو بگیر ببین به جایی میرسی !

برنامه ی Autoruns رو بگیر ، اجراش کن ! قسمت درایور ها و سرویس ها و خیلی قسمت ها که قبل از شروع ویندوز فعال مشن رو نشون میده ! روی یکی دابل کلیک کن می ری تو قسمتی که اون فایل اجرا میشه در ریجستری ! همون روش رو نگاه کن و واسه خودت یه چیز شبیه همون درست کن ! میتونی از همون ها هم استفاده کنی و اسم اون را با برنامت عوض کنی !

این فقط یه فرضیه بود !


دقیقا متوجه نشدم چی فرمودید !:لبخند:
می شه یکم واضح توضیح بدین ؟!:چشمک::لبخندساده:

xxxxx_xxxxx
جمعه 02 بهمن 1388, 13:57 عصر
در صورتی که بخواهیم قبل از Explorer برنامه را اجرا کنیم ،
آیا می توان فایل هایی از قبیل :
ntoskrnl.exe
taskmgr.exe
shell32.dll
و حتی خود explorer.exe را دستکاری (ویرایش یا تعویض) کرد؟

آخرین مرحله از بوت شدن ویندوز اجرای فایل Explorer.exe هست که توسط Userinit.exe صورت میگیره. پس قبل از این تمام فایل های لازم جهت بوت شدن اجرا شده و در حافظه قرار گرفته اند. پس اگر هم شما بتوانید تغییرات لازم رو تو این فایل ها(shell32 و taskmgr و ntoskrnl) اعمال کنید در همان لحظه اعمال نخواهند شد.



همچنین برخی برنامه ها هستند که ویندوز را ریستارت می کنند و هنگام لود مجدد ویندوز برخی اعمال را انجام می دهند.
حال از شما می خواهم اطلاعاتی در مورد این جور برنامه نویسی ها به من بدهید ،
اینگونه برنامه ها که فقط هم یک بار در StartUp وارد می شوند برای انجام عملیات لازمشون پس از نصب تو آدرس زیر در رجیستری وارد می شوند:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\RunOnce

اگر برنامه ای از این آدرس فراخوانده بشه، کلیدش از این آدرس حذف میشه تا دفعه بعد دیگه اجرا نشه.

lordarma
جمعه 02 بهمن 1388, 14:07 عصر
ممنون از توضیحاتتون اما آیا راهی هست که بتوان فایل های مذکور را با فایل های دستکاری شده تعویض نمود؟
تنها راه فعلی (که من بلدم!) این است که با استفاده از یک سیستم عامل دیگر این کار را انجام دهیم اما من به دنبال یک راه ساده هستم...
لطفا راهنمایی نمایید.
با تشکر از شما

xxxxx_xxxxx
جمعه 02 بهمن 1388, 14:19 عصر
آیا راهی هست که بتوان فایل های مذکور را با فایل های دستکاری شده تعویض نمود؟
تنها راه فعلی (که من بلدم!) این است که با استفاده از یک سیستم عامل دیگر این کار را انجام دهیم اما من به دنبال یک راه ساده هستم...
راه غیر برنامه نویسی این هست که از طریق Safe Mode اقدام کنید. تو safe mode می تونید هر بلایی که می خواید سر فایلهای ویندوز بیارید.

lordarma
جمعه 02 بهمن 1388, 14:26 عصر
راه غیر برنامه نویسی این هست که از طریق Safe Mode اقدام کنید. تو safe mode می تونید هر بلایی که می خواید سر فایلهای ویندوز بیارید.


بله درست است ولی با این حال همچنان عمل دستی انجام می شود و به صورت اتوماتیک نیست...
پیشنهادی دارید؟

M.T.P
جمعه 02 بهمن 1388, 14:44 عصر
راه غیر برنامه نویسی این هست که از طریق Safe Mode اقدام کنید. تو safe mode می تونید هر بلایی که می خواید سر فایلهای ویندوز بیارید.

بد آموزی داره جناب:چشمک:

afrooz_rahmati63@yahoo.com
جمعه 02 بهمن 1388, 15:06 عصر
من زیاد نخوندم که چکار می خواهید کنید اما یک راه برای بالا آوردن برنامه قبل از رفتن به ویندوز می دونم.
- go to run - regedit then open Local machine - software - microsoft - windows nt - current version -winlogon یک پارامتر به اسم userinit وجود داره آدرس آن را آدرس برنامه ات قرار بده...اینکار خیلی خطرناکه حتما step by step که می نویسم اینکارو تست کن.بعد توی برنامه خودت وقتی بالا آمد هر کاری می خوای بکن و بعدش رجیستری را مجددا به مقدار پیش فرض خودش برگردون)(C:\WINDOWS\system32\userinit.exe اما وقتی اینکارو کردی
then start a process from some thing like Process.Start("userinit.exe"); than wait for 20 second and hide you window
then again change the value in Userinit to your program path and exit your application

.:KeihanCPU:.
جمعه 02 بهمن 1388, 21:53 عصر
من زیاد نخوندم که چکار می خواهید کنید اما یک راه برای بالا آوردن برنامه قبل از رفتن به ویندوز می دونم.

این راهی که شما میگید برنامه رو قبل از ویندوز بالا نمیاره !
همونطور که دوستمون xxxxx_xxxxx (http://barnamenevis.org/forum/member.php?u=46030) گفتن اجرای برنامه های نوشته شده توسط VB قبل از ویندوز امکان پذیر نیست
مگه داری با اسمبلی برنامه مینویسی:متفکر:؟؟
با این کار فقط برنامه قبل از Explorer بالا میاد

miniator
شنبه 03 بهمن 1388, 00:37 صبح
آقا شما به اون برنامه که گفتم نگاه کردی ؟ از وقتی که دکمه ی پاور رو میرنی تا وقتی که ویندوز بالا میاد هزار تا فایل اجرا میشه که همشو تو اون برنامه نشون میده !

تنها راه از طریق همین ریجستری هست و اینکه نوع برنامت از نوع سرویس یا درایور باشه !


یه راه دیگه هست که قبلا دیده بودم‌ که میشد فایل های سیستمی رو تغییر داد !

وقتی شما یک فایل سیستمی رو تغییر یا پاک کنید ! ویندوز بطور خود کار فایل خراب رو با با فایل اصلی جایگزین میکنه ! فایل های اورجینال در مسیر C:\WINDOWS\system32\dllcache هستند .


حالا ویندوز از کجا میفهمه که شما فایل رو پاک یا تغییر دادید ! خوب معلومه از طریق ریجستری ! تمام فایل ها و رفتار ها و غیره در ریجستری ثبت میشن !

خوب حالا چیکار باید کرد ؟ یه راهی که قبلا دیده بودم این بود که یک برنامه بود ویندوز رو فارسی میکرد ! یعنی فایل های ویندوز رو با فایلهای خودش عوض میکرد ! و این کار رو با CMD و گزینه Replace ‌انجام میداد !

این همه داستان این بود که شما باید اول از طریق ریجستری کلید اون فایل رو پاک یا تغییر بدی بعد فایل رو جایگزین کنی و بعد ریجستری رو به حالت اول در بیاری !



حالا می رسیم به مشکل اجرای برنامه ی ویبی در هنگام بوت ! تنها راهی که به نظرم میرسه اینه که نوع برنامت رو به صورت SYS (درايور) بنویسید و در قسمت لود درایور ها جا بدید ! وگر نه فایل EXE در بوت اجرا نمیشه چون کامپوننت ها و Dll ها هنوز لود نشدن !

.:KeihanCPU:.
شنبه 03 بهمن 1388, 00:46 صبح
نوع برنامت رو به صورت SYS (درایور) بنویسید و در قسمت لود درایور ها جا بدید

که این کار با VB ممکن نیست

lordarma
شنبه 03 بهمن 1388, 01:10 صبح
دوستان ممنون که جواب دادید ، اما اگر کسی بتواند نمونه کد بگذارد ممنون می شوم...