اجرای نرم افزار قبل از Login
با سلام ، من یک قفل نرم افزاری دارم که میخوام قبل از login کردن بصورت اتومات اجرا شود ، الان این قایل EXE را در Startup گذاشتم و زمانی که login میکنم اجرا میشود اما اگر logoff کنم از قفل خارج میشود ، لطفاً در این مورد راهنمایی کنید .
با تشکر
5 پاسخ
خوب شما کارهای بالا رو به ترتیب انجام دادی ؟ با دستوراتی که با استفاده از ابزار srvany اجرا میشه اون کلید های رجیستری ساخته میشن ، اولش نیست ، مراحل رو به ترتیب طی کن و بعد دقیقا بگو چیکار کردی و به چه مشکلی خوردی
سلام محمد جان، به سایت خودت خوش اومدی، واقعیتش من درست متوجه نشدم مشکلت چیه؟ خوب وقتی با login اجرا میشه و با logoff خارج میشه، دیگه مشکل کار کجاست؟
خوب محمد رضا جان در این زمینه من میتونم یک پیشنهاد کنم برات ، شما باید کاری کنید که نرم افزار شما در قالب یکی از سرویس های ویندوز اجرا بشه ، شما به سرویس ویندوز میتونید براحتی بگید که در موقع start-up سیستم بصورت اتوماتیک اجرا بشه و براش فرقی نمیکنه که log off میکنی یا logon ، تا اونجایی که من متوجه شدم میخای که همیشه این نرم افزار قفل شما اجرا بشه ؟ خوب چه کارهایی می تونیم انجام بدیم که یک نرم افزار رو در قالب یک سرویس اجرا کنیم ؟
1-استفاده از ابزار sc.exe : این ابزار مایکروسافت بصورت پیشفرض بر روی ویندوز سرور 2003 و ویندوز XP نصب شده است ، البته این ابزار زمانی کاربرد داره که قفل نرم افزاری شما بصورتی طراحی شده باشه که قابلیت run as a service رو در خودش داشته بشه ، اکثر نر مافزار هایی که از این طریق تبدیل به سرویس میشن ایم قابلیت رو دارن ، sc.exe در واقع راحت ترین گزینه هست برای اینکار ، خوب ببینیم چطور باهاش کار کنیم :
این نرم افزار خیلی راحت با استفاده از synatx زیر میتونه اجرا بشه :
sc create YourServiceName binPath="c:\Program Files\directory\appname.exe"
خوب در اینجا YourServiceName اسم سرویست هست و appname هم اسم فایل اجرایی برنامت.البته این روش هم جواب میده ، میتونی امتحان کنی با این sytax :
sc create YourServiceName binPath= "c:\Program Files\directory\appname.exe"
البته به فاصله بعد از = حتما توجه کن چون تاثیر گذاره.دو نوع امکان دیگه هم با استفاده از همین ابزار داری که با syntax زیر انجام میشن :
type= <own|share|interact|kernel|filesys|rec> (default = own) start= <boot|system|auto|demand|disabled> (default = demand)
البته از دستورات زیر برای دریافت کمک میتونی استفاده کنی :
sc /? sc create /?
2- استفاده از ابزارهای instsrv.exe و srvany.exe : این دو تا ابزار هم از ابزارهای مفید مایکروسافت هستند اما باید از Resource Kit مایکروسافت دریافتشون کنی که لینک دانلودش اینجا هست . ابزار Instrsrv.exe فقط سرویس مورد نظرتو نصب میکنه اما این ابزار srvany.exe هست که کاری میکنه که نرم افزارت بتونه در قالب سرویس فعالیت کنه یعنی در حقیقت نرم افزارت رو به حالت run as a service در میاره . استفاده از این روش خیلی دقیقتره اما نیاز داره که یک سری کلید registry رو دستکاری کنی .خوب من یک خلاصه ای از کاری که قراره انجام بدی رو اینجا می نویسم اما اگر میخای اطلاعات دقیقتری بدست بیاری میتونی از این *لینک *بگیری .
- مرحله اول : پک نرم افزاری Resource Kit رو توی یک پوشه روی سیستمت قرار بده و از حالت pack خارج کن . srvany.exe همیشه باید روی سیستمون باشه تا بتونه کارتونو راه بندازه پس حتما یه جایی قرارش بده که راحت بتونی بعدا پیداش کنی ، مثلا بریزش تو Program files ، من در این مثال C:\Program Files\services رو به عنوان مسیر انتخاب کردم .
- مرحله دوم : با استفاده از دستور زیر سرویس مورد نظرتو نصب کنید :
C:\Program Files\services\Instsrv.exe YourServiceName C:\Program Files\services\Srvany.exe
طبق معمول اسم سرویسی هست که میخای نصب کنی.
- مرحله سوم : با استفاده از ادیتور registry مسیر زیر رو پیدا کن :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\YourServiceName
- مرحله چهارم : یک sub-key جدید به نام Parameters رو در اونجا اضافه کن.
- مرحله پنجم : در قسمت Parameters یک string value به نام Application ایجاد کن .
- مرحله ششم : *value data یی که مربوط به Application رو مسیر دقیق فایل اجراییت که رو سیستم هست بده مثلا :
C:\WINNT\notepad.exe
- مرحله هفتم : خوب بعد از مسیر های قبلی خارج شو و به کنسول services.msc از طریق run برو و در سرویس ها اسم سرویسی رو که ایجاد کردی رو مطمئن شو که وجود داره ، در این حالت شما میتونی نوع startup رو برای سرویست مشخص کنی که به محض اینک هسیستم اومد بالا اتوماتیک اجرا بشه.
- 3-استفاده از WinServ : اینم هم یک ابزار ساده هست که میتونه در این زمینه کمکت بکنه من خودم هنوز تستش نکردم ولی اگر میشه تستش کن و در ادامه تجربیاتت رو انتقال بده . امیدوارم مفید بوده باشه.
سلام
من مرحله دو در روش دوم رو که انجام میدم(دقیقا همون خط رو در CMD یا PowerShell کپی میکنم و فقط اسم سرویس دلخواه رو تغییر میدم) خطا میده که دستور درست وارد نشده است.
چکار کنم؟
ممنون
محمد جان!!
من تو regedit که رفتم نتونسم سرویسشو پیدا کنم و فکر میکنم به حالت سرویسی نباشه