Mr'Jamshidy
دوشنبه 02 بهمن 1391, 20:51 عصر
سلام
این تاپیک ایجاد شده تا در مورد روش های ساخت سرویس های ویندوز بوسیله ویژوال بیسیک گفتگو و تبادل اطلاعات بشه.
فقط یک چیزی رو همین اول بگم
دوستان تو تاپیک پست الکی ندن لطفا که نظم تاپیک به هم نخوره
پیشاپیش ممنون
ابتدا باید ببینیم که چرا نیاز داریم تا یک سرویس بنویسیم، هدف از نوشتن سرویس چیه؟
یکی از مواردی که ما از سرویس ها استفاده میکنیم دسترسی به سطح سیستم هست
مثلا آنتی ویروس ها در این سطح اجرا میشن و اجازه بستن سرویس رو از شما میگیرن
دقت کن سرویس باز حالا هی بیا سوال کن چطور جلو بسته شدن پروسه رو بگیرم
98813
و البته کلی مزایا دیگه
البته کارایی آنتی ویروس ها ربطی به سرویس بودنشون نداره شما این کار ها رو تو یک پروسه معمولی هم میتونید انجام بدید
البته به غیر از بعضی هاش که باید براش درایور نوشته بشه بگذریم
خوب حالا کار به این حرفا نداریم میریم سر بحث نحوه ساخت
نوشتن سرویس ها در ویژوال بیسیک 6 راه های متعددی داره که من فعلا به 2 راه اشاره میکنم
روش اول (استفاده از کامپوننت مایکروسافت):
فایل مربوطه: NTSVC.zip
خوب همونطور که از اسمش پیداست مشخصه برای این روش نیاز به یک کامپوننت داریم
اسم کامپوننت هست NTSVC و توسط شرکت مایکروسافت ارایه شده (که از قسمت ضمیمه ها قابل دسترس هست)
با استفاده از این کامپوننت شما میتونید سرویس مورد نظر تون رو بنویسید اما چطور؟
1. ویژوال بیسیک رو باز کنید
2. یک پروژه از نوع Standard EXE ایجاد کنید
3. کامپوننت مورد نظر رو به پروژه اضافه کنید (Microsoft NT Service Control)
4. کامپوننت رو روی فرم قرار داده و به صورت زیر تنظیم میکنیم
Name
cNTService
-------
DisplayName
نامی که دوست دارید در پانل کنترل سرویس ها نمایش داده بشه
-------
Interactive
اگر میخواهید تا سرویس توانایی ارتباط با کامپیوتر رو داشته باشه این گزینه رو True کنید
-------
ServiceName
نام سرویس شما (بدون کاراکتر فاصله)
-------
StartMode
این گزینه مشخص میکنه که سرویس شما به چه نحوی میتونه شروع به کار کنه
- svcStartAutomatic: این گزینه مشخص میکنه که سرویس بصورت خودکار اجرا بشه
- svcStartManual: این گزینه مشخص میکنه که سرویس بصورت دستی اجرا بشه
- svcStartDisabled: این یکی هم میگه که اصلا اجرا نشه
5. کد زیر رو به رویداد Form_Load اضافه کنید
Select Case UCase$(Trim$(Command$))
Case "-I", "/I"
If cNTService.Install Then
MsgBox cNTService.DisplayName & " installed successfully."
Else
MsgBox cNTService.DisplayName & " did not install successfully."
End If
Case "-U", "/U"
If cNTService.Uninstall Then
MsgBox cNTService.DisplayName & " uninstalled successfully."
Else
MsgBox cNTService.DisplayName & " did not uninstall successfully."
End If
Case ""
cNTService.StartService
Case Else
MsgBox "The parameter: " & Command & " was not understood. Try -I (install) or -U (uninstall)."
End Select
مدیریت خطاها:
در روال مدیریت خطا ممکنه شما بخواید از اطلاعات خطا خروجی بگیرید یا همون لاگ
در این حالت شما میتونید از App.LogEvent استفاده کنید ولی در NTsvc ما گزینه دیگری نیز داریم
شما میتوانید از گزینه cNTService.LogEvent هم استفاده کنید
NTService.LogEvent svcEventError, svcMessageError, Err.Description
و
NTService.LogEvent svcEventInformation, svcMessageInfo, "Something happened"
رویدادهای سرویس:
شما نیاز دارید در برخی از رویداد های زیر کد بنویسید
رویداد Start:
این رویداد زمانی اجرا میشود که سرویس شما در حال شروع به کار است
در این حالت اگر کد های شما با موفقیت کار خود را انجام داد Flag یا همون پرچم Success رو برابر True قرار دهید
رویداد Stop:
این رویداد زمانی اجرا میشود که سرویس شما درحال پایان یافتن باشد
رویداد Pause:
این رویداد زمانی اجرا میشود که سرویس شما درحال متوقف شدن باشد
رویداد Continue:
این رویداد زمانی اجرا میشود که سرویس شما در حال راه اندازی مجدد باشد
مشکلات بالقوه:
چند مشکل در هنگام اجرا یک سرویس ان.تی در ویژوال بیسیک 6 به صورت بالقوه وجود دارد که به برخی از آنها اشاره میشود
وابستگیها:
اگر سرویس شما به سرویس دیگری وابسته است، شما باید مطمئن شوید این اطلاعات به درستی در رجیستری ثبت شده است
هشدار: تنظیم نادرست وابستگی به یک سرویس در رجیستری میتواند سیستم عامل شما را غیر قابل بوت کند، با توجه به مسایلی مانند وابستگی مدور (سرویس الف نمیتواند قبل از سرویس ب و سرویس ب نمیتواند قبل از سرویس الف شروع به کار کند) در نتیجه هیچ یک از سرویس ها شروع به کار نخواهند کرد.
خیلی مراقب باشید، خطر داره حسن!
خوب دیگه دهنم سرویس شد بسکه نوشتم باقی توضیحات و روش دوم باشه برای بعد
موفق باشید
**ویرایش
روش دوم (استفاده از برنامه واسطه):
فایل مربوطه: Windows Service.zip
این روش خیلی آسون تر هست
در واقع تو این روش شما طبق روال همیشه برنامه تون رو مینویسید و کار خاصی هم انجام نمیدید
اما موقع افزودن برنامه به سرویس ها یک واسطه قرار میدید
خوب فایل مربوطه رو دانلود کنید
داخل فایل فشرده 4 عدد فایل دیگه هست که 3 تا از اونا فایل اجرایی هستن
اگر برای تست هست که زیاد مهم نیست اما در مواقعی که میخواید سرویس رو واقعا رو سیستم کاربر نصب کنید حتما تو پوشه System32 کپی کنید (البته تو یک پوشه جدا کنه)
خوب حالا از برنامه های ارسال شده برنامه SRVINSTW.EXE رو اجرا کنید
این برنامه کار نصب و حذف سرویس رو انجام میده که بعده ها خودتون باید این کار رو دستی انجام بدید، این فقط برای اینه که با روال کار آشنا بشید
در صفحه اول از شما میپرسه چه کاری میخواید انجام بدید (نصب سرویس یا حذف)
گزینه Install Service رو انتخاب کنید و Next رو کلیک کنید (شماره 1)
در صفحه دوم میپرسه که سرویس کجا قرار داره روی همین سیستم یا یک سیستم دیگه در شبکه؟ (شماره 2)
اینجا لازمه که یک نکته رو بگم:
سعی کنید تا جایی که ممکنه سرویس ها رو از روی شبکه نصب نکنید چون این کار ممکنه که به سیستم عامل شما اسیب وارد کنه
خوب با توجه به نکته بالا گزینه Local Machin رو انتخاب کرده و گزینه Next رو کلیک کنید
در این صفحه از شما نام سرویس جدید رو میخواد یک نام انتخابی وارد کنید (شماره 3)
و سپس گزینه Next رو کلیک کنید
حالا اینجا آدرس سرویس رو ازتون میپرسه (شماره 4)
یادتون باشه فایل اجرایی شما در این روش سرویس نیست و قراره با واسطه اجرا بشه
خوب در اینجا آدرس فایل SRVANY.EXE رو وارد کرده و گزینه Next رو کلیک کنید
فایل SRVANY.EXE همراه با ضمیمه ارسال شده
در این صفحه نوع سرویس رو باید انتخاب کنید که ما گزینه (شماره 5)
که ما گزینه Service is its own process رو انتخاب میکنید و گزینه Next رو کلیک میکنید
از اون دو مورد دیگه استفاده نکنید
من خودم هم هنوز نمیدونم به چه دردی میخورن ولی فهمیدم بهتون میگم
حالا در این صفحه شما باید به برنامه بگید که میخواید سرویستون در چه سطح دسترسی قرار داشته باشه (شماره 6)
منظور از سطح دسترسی همون مجوزی هست که به نام کاربری داده میشه یعنی این که شما باید مشخص کنید تحت کدوم نام کاربری میخواید سرویس رو اجرا کنید (فکر کنم اینطوری بهتر بود)
خوب ما 2 تا گزینه داریم System Account و Other Account فکر نمیکنم این دو مورد نیازی به توضیح داشته باشه!
در زیر گزینه System Account ما یک گزینه داریم Allow Service to Interact with Desktop که اگر میخواهید تا سرویس توانایی ارتباط با کامپیوتر رو داشته باشه این گزینه رو تیک بزنید
همچنین در زیر گزینه Other Account ما دو گزینه داریم با نام های Account و Password که زمانی که بخواهیم از نام کاربری غیر از نام کاربری System استفاده کنید باید نام کاربری و کلمه عبورش رو اینجا وارد کنیم
البته برای تنظیم Other Account دقت کنید چون مثلا نام کاربری من الان هست A و کلمه عبورش هم هست B خوب چه تضمینی وجود داره روی همه سیستم ها این نام کاربری یکی باشه برای همین یا از نام کاربری های پیشفرض سیستم استفاده کنید (که این گزینه پیشنهاد نمیشه خون کاربری مثل من همیشه نام های کاربری پیشفرض رو حذف میکنه مثل Administrator) یا مثل برخی سرویس ها خودتون نام کاربری بسازید و از دید کاربران عادی مخفیش کنید مثل عکس (این روش کاملا پیشنهاد میشه) (شماره 7)
خوب اینجا گزینه System Account رو انتخاب کنید و گزینه Allow Service to Interact with Desktop رو علامت دار کنید و Next رو کلیک کنید
در این صفحه به نوع اجرا شدن سرویس اشاره میکنه که شامل 5 قسمت هست (شماره 8)
1. Automatic
2. Manual
3. Disabled
4. Boot
5. System
گزینه 4 و 5 غیر فعال هستن چون برای سرویس ها کار نمیکنن و فقط برای درایور ها کار میکنن همون گزینه های غیر قابل استفاده در شماره 5
و 3 تا گزینه اول هم عبارتند از
1. Automatic به صورت خودکار اجرا میشه
2. Manual به صورت دستی باید اجراش کنید
3. Disabled اجرا نمیشه
خوب گزینه Automatic رو علامت دار کنید و Next رو کلیک کنید
و در آخر گزینه Finish رو کلیک کنید
تبریک میگم سرویس شما هنوز کار داره و اجرا نمیشه :قهقهه:
خوب حالا ما یک سرویس به سیستم عامل معرفی کردیم ولی برنامه خودمون که اجرا نمیشه هنوز
برنامه Registry Editor ویندوز رو اجرا کنید (همه بلدن ها ولی برای کسایی که شاید بلد نباشن مثل من در ران ویندوز بنویسید Regedit و OK کنید)
و به مسیر HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servic es\YourService بروید
به جای کلمه YourService همون نامی که برای سرویستون انتخاب کرده بودید وارد کنید مثلا من کلمه Sample رو برای سرویسم انتخاب کرده بودم (شماره 9)
خوب حالا یک کلید زیر کلید سرویستون ایجاد کنید و نام اون رو بزارید Parameters
در زیر کلید Parameters یک مقدار جدید از نوع String Value ایجاد کنید و نام اون رو برابر Application قرار بدید و مقدار Application رو برابر آدرس دقیق و کامل فایل اجرایی خودتون که با ویژوال بیسیک نوشتید کنید
تموم شد!
حالا اونایی که ویندوز 7 دارن Task Manager رو اجرا کنن و از تب سرویس دنبال نام سرویس خودشون بگردن (شماره 10)
وقتی پیداش کردید انتخابش کنید و راست کلیک و Start Service رو انتخاب کنید
اگر برنامه تون فرم داشته باشه مثل یکی من ویندوز بهتون میگه که این سرویس میخواد یک پیغام به شما نشون بده که نیاز به تایید شما داره بهش اجازه نمایش پیغام رو میدید (شماره 11)
گزینه View The Message رو کلیک کنید فرم برنامه تون رو میبینید (البته یک جای دیگه)
وقتی خوب فرمتون رو دیدید و کلی عشق کردید بعد گزینه Return Now رو کلیک کنید تا به محیط ویندوزتون برگردید از اینجا نمیشد عکس گرفت
ولی حواستون باشه تو سرویس اصل کاریتون فرم نسازید ها آبروتون میره
اونایی که ویندوز 7 ندارن برن تو ران بنویسن Services.msc و OK کنن
در صفحه باز شده دنبال نام سرویس مورد نظر بگردن
وقتی پیدا شد روش دابل کلیک کنن
و استارت رو بزنن
تموم شد
98867
**ویرایش
سورس Service Manager که توسط دوست خوبمون آقای AbbasVB (http://barnamenevis.org/member.php?205103-AbbasVB) نوشته شده به ضمیمه ها اضافه شد
توضیحات نویسنده سورس
آیا تا حالا می خواستید بدونید چه سرویس های روی ویندوز نصب شده؟
آیا تا حالا خواسته اید بدانید چه سرویس هایی در حال اجرا هستند چه سرویس هایی خاموش هستند می باشند؟
آیا تا حالا خواسته اید یک سرویس نصب کنید؟
آیا تا حالا خواسته اید کاری کنید که یک سرویس دیگر اجرا نشود؟
آیا تا حالا خواسته اید یک سرویس را پاک کنید؟
آیا تا حالا خواسته اید کلا خواسته اید یک سرویس را دست کاری کنید؟
و آیا تا حالا خواسته اید همه این کار ها رو با برنامه ی خودتون انجام بدهید؟
این تاپیک ایجاد شده تا در مورد روش های ساخت سرویس های ویندوز بوسیله ویژوال بیسیک گفتگو و تبادل اطلاعات بشه.
فقط یک چیزی رو همین اول بگم
دوستان تو تاپیک پست الکی ندن لطفا که نظم تاپیک به هم نخوره
پیشاپیش ممنون
ابتدا باید ببینیم که چرا نیاز داریم تا یک سرویس بنویسیم، هدف از نوشتن سرویس چیه؟
یکی از مواردی که ما از سرویس ها استفاده میکنیم دسترسی به سطح سیستم هست
مثلا آنتی ویروس ها در این سطح اجرا میشن و اجازه بستن سرویس رو از شما میگیرن
دقت کن سرویس باز حالا هی بیا سوال کن چطور جلو بسته شدن پروسه رو بگیرم
98813
و البته کلی مزایا دیگه
البته کارایی آنتی ویروس ها ربطی به سرویس بودنشون نداره شما این کار ها رو تو یک پروسه معمولی هم میتونید انجام بدید
البته به غیر از بعضی هاش که باید براش درایور نوشته بشه بگذریم
خوب حالا کار به این حرفا نداریم میریم سر بحث نحوه ساخت
نوشتن سرویس ها در ویژوال بیسیک 6 راه های متعددی داره که من فعلا به 2 راه اشاره میکنم
روش اول (استفاده از کامپوننت مایکروسافت):
فایل مربوطه: NTSVC.zip
خوب همونطور که از اسمش پیداست مشخصه برای این روش نیاز به یک کامپوننت داریم
اسم کامپوننت هست NTSVC و توسط شرکت مایکروسافت ارایه شده (که از قسمت ضمیمه ها قابل دسترس هست)
با استفاده از این کامپوننت شما میتونید سرویس مورد نظر تون رو بنویسید اما چطور؟
1. ویژوال بیسیک رو باز کنید
2. یک پروژه از نوع Standard EXE ایجاد کنید
3. کامپوننت مورد نظر رو به پروژه اضافه کنید (Microsoft NT Service Control)
4. کامپوننت رو روی فرم قرار داده و به صورت زیر تنظیم میکنیم
Name
cNTService
-------
DisplayName
نامی که دوست دارید در پانل کنترل سرویس ها نمایش داده بشه
-------
Interactive
اگر میخواهید تا سرویس توانایی ارتباط با کامپیوتر رو داشته باشه این گزینه رو True کنید
-------
ServiceName
نام سرویس شما (بدون کاراکتر فاصله)
-------
StartMode
این گزینه مشخص میکنه که سرویس شما به چه نحوی میتونه شروع به کار کنه
- svcStartAutomatic: این گزینه مشخص میکنه که سرویس بصورت خودکار اجرا بشه
- svcStartManual: این گزینه مشخص میکنه که سرویس بصورت دستی اجرا بشه
- svcStartDisabled: این یکی هم میگه که اصلا اجرا نشه
5. کد زیر رو به رویداد Form_Load اضافه کنید
Select Case UCase$(Trim$(Command$))
Case "-I", "/I"
If cNTService.Install Then
MsgBox cNTService.DisplayName & " installed successfully."
Else
MsgBox cNTService.DisplayName & " did not install successfully."
End If
Case "-U", "/U"
If cNTService.Uninstall Then
MsgBox cNTService.DisplayName & " uninstalled successfully."
Else
MsgBox cNTService.DisplayName & " did not uninstall successfully."
End If
Case ""
cNTService.StartService
Case Else
MsgBox "The parameter: " & Command & " was not understood. Try -I (install) or -U (uninstall)."
End Select
مدیریت خطاها:
در روال مدیریت خطا ممکنه شما بخواید از اطلاعات خطا خروجی بگیرید یا همون لاگ
در این حالت شما میتونید از App.LogEvent استفاده کنید ولی در NTsvc ما گزینه دیگری نیز داریم
شما میتوانید از گزینه cNTService.LogEvent هم استفاده کنید
NTService.LogEvent svcEventError, svcMessageError, Err.Description
و
NTService.LogEvent svcEventInformation, svcMessageInfo, "Something happened"
رویدادهای سرویس:
شما نیاز دارید در برخی از رویداد های زیر کد بنویسید
رویداد Start:
این رویداد زمانی اجرا میشود که سرویس شما در حال شروع به کار است
در این حالت اگر کد های شما با موفقیت کار خود را انجام داد Flag یا همون پرچم Success رو برابر True قرار دهید
رویداد Stop:
این رویداد زمانی اجرا میشود که سرویس شما درحال پایان یافتن باشد
رویداد Pause:
این رویداد زمانی اجرا میشود که سرویس شما درحال متوقف شدن باشد
رویداد Continue:
این رویداد زمانی اجرا میشود که سرویس شما در حال راه اندازی مجدد باشد
مشکلات بالقوه:
چند مشکل در هنگام اجرا یک سرویس ان.تی در ویژوال بیسیک 6 به صورت بالقوه وجود دارد که به برخی از آنها اشاره میشود
وابستگیها:
اگر سرویس شما به سرویس دیگری وابسته است، شما باید مطمئن شوید این اطلاعات به درستی در رجیستری ثبت شده است
هشدار: تنظیم نادرست وابستگی به یک سرویس در رجیستری میتواند سیستم عامل شما را غیر قابل بوت کند، با توجه به مسایلی مانند وابستگی مدور (سرویس الف نمیتواند قبل از سرویس ب و سرویس ب نمیتواند قبل از سرویس الف شروع به کار کند) در نتیجه هیچ یک از سرویس ها شروع به کار نخواهند کرد.
خیلی مراقب باشید، خطر داره حسن!
خوب دیگه دهنم سرویس شد بسکه نوشتم باقی توضیحات و روش دوم باشه برای بعد
موفق باشید
**ویرایش
روش دوم (استفاده از برنامه واسطه):
فایل مربوطه: Windows Service.zip
این روش خیلی آسون تر هست
در واقع تو این روش شما طبق روال همیشه برنامه تون رو مینویسید و کار خاصی هم انجام نمیدید
اما موقع افزودن برنامه به سرویس ها یک واسطه قرار میدید
خوب فایل مربوطه رو دانلود کنید
داخل فایل فشرده 4 عدد فایل دیگه هست که 3 تا از اونا فایل اجرایی هستن
اگر برای تست هست که زیاد مهم نیست اما در مواقعی که میخواید سرویس رو واقعا رو سیستم کاربر نصب کنید حتما تو پوشه System32 کپی کنید (البته تو یک پوشه جدا کنه)
خوب حالا از برنامه های ارسال شده برنامه SRVINSTW.EXE رو اجرا کنید
این برنامه کار نصب و حذف سرویس رو انجام میده که بعده ها خودتون باید این کار رو دستی انجام بدید، این فقط برای اینه که با روال کار آشنا بشید
در صفحه اول از شما میپرسه چه کاری میخواید انجام بدید (نصب سرویس یا حذف)
گزینه Install Service رو انتخاب کنید و Next رو کلیک کنید (شماره 1)
در صفحه دوم میپرسه که سرویس کجا قرار داره روی همین سیستم یا یک سیستم دیگه در شبکه؟ (شماره 2)
اینجا لازمه که یک نکته رو بگم:
سعی کنید تا جایی که ممکنه سرویس ها رو از روی شبکه نصب نکنید چون این کار ممکنه که به سیستم عامل شما اسیب وارد کنه
خوب با توجه به نکته بالا گزینه Local Machin رو انتخاب کرده و گزینه Next رو کلیک کنید
در این صفحه از شما نام سرویس جدید رو میخواد یک نام انتخابی وارد کنید (شماره 3)
و سپس گزینه Next رو کلیک کنید
حالا اینجا آدرس سرویس رو ازتون میپرسه (شماره 4)
یادتون باشه فایل اجرایی شما در این روش سرویس نیست و قراره با واسطه اجرا بشه
خوب در اینجا آدرس فایل SRVANY.EXE رو وارد کرده و گزینه Next رو کلیک کنید
فایل SRVANY.EXE همراه با ضمیمه ارسال شده
در این صفحه نوع سرویس رو باید انتخاب کنید که ما گزینه (شماره 5)
که ما گزینه Service is its own process رو انتخاب میکنید و گزینه Next رو کلیک میکنید
از اون دو مورد دیگه استفاده نکنید
من خودم هم هنوز نمیدونم به چه دردی میخورن ولی فهمیدم بهتون میگم
حالا در این صفحه شما باید به برنامه بگید که میخواید سرویستون در چه سطح دسترسی قرار داشته باشه (شماره 6)
منظور از سطح دسترسی همون مجوزی هست که به نام کاربری داده میشه یعنی این که شما باید مشخص کنید تحت کدوم نام کاربری میخواید سرویس رو اجرا کنید (فکر کنم اینطوری بهتر بود)
خوب ما 2 تا گزینه داریم System Account و Other Account فکر نمیکنم این دو مورد نیازی به توضیح داشته باشه!
در زیر گزینه System Account ما یک گزینه داریم Allow Service to Interact with Desktop که اگر میخواهید تا سرویس توانایی ارتباط با کامپیوتر رو داشته باشه این گزینه رو تیک بزنید
همچنین در زیر گزینه Other Account ما دو گزینه داریم با نام های Account و Password که زمانی که بخواهیم از نام کاربری غیر از نام کاربری System استفاده کنید باید نام کاربری و کلمه عبورش رو اینجا وارد کنیم
البته برای تنظیم Other Account دقت کنید چون مثلا نام کاربری من الان هست A و کلمه عبورش هم هست B خوب چه تضمینی وجود داره روی همه سیستم ها این نام کاربری یکی باشه برای همین یا از نام کاربری های پیشفرض سیستم استفاده کنید (که این گزینه پیشنهاد نمیشه خون کاربری مثل من همیشه نام های کاربری پیشفرض رو حذف میکنه مثل Administrator) یا مثل برخی سرویس ها خودتون نام کاربری بسازید و از دید کاربران عادی مخفیش کنید مثل عکس (این روش کاملا پیشنهاد میشه) (شماره 7)
خوب اینجا گزینه System Account رو انتخاب کنید و گزینه Allow Service to Interact with Desktop رو علامت دار کنید و Next رو کلیک کنید
در این صفحه به نوع اجرا شدن سرویس اشاره میکنه که شامل 5 قسمت هست (شماره 8)
1. Automatic
2. Manual
3. Disabled
4. Boot
5. System
گزینه 4 و 5 غیر فعال هستن چون برای سرویس ها کار نمیکنن و فقط برای درایور ها کار میکنن همون گزینه های غیر قابل استفاده در شماره 5
و 3 تا گزینه اول هم عبارتند از
1. Automatic به صورت خودکار اجرا میشه
2. Manual به صورت دستی باید اجراش کنید
3. Disabled اجرا نمیشه
خوب گزینه Automatic رو علامت دار کنید و Next رو کلیک کنید
و در آخر گزینه Finish رو کلیک کنید
تبریک میگم سرویس شما هنوز کار داره و اجرا نمیشه :قهقهه:
خوب حالا ما یک سرویس به سیستم عامل معرفی کردیم ولی برنامه خودمون که اجرا نمیشه هنوز
برنامه Registry Editor ویندوز رو اجرا کنید (همه بلدن ها ولی برای کسایی که شاید بلد نباشن مثل من در ران ویندوز بنویسید Regedit و OK کنید)
و به مسیر HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servic es\YourService بروید
به جای کلمه YourService همون نامی که برای سرویستون انتخاب کرده بودید وارد کنید مثلا من کلمه Sample رو برای سرویسم انتخاب کرده بودم (شماره 9)
خوب حالا یک کلید زیر کلید سرویستون ایجاد کنید و نام اون رو بزارید Parameters
در زیر کلید Parameters یک مقدار جدید از نوع String Value ایجاد کنید و نام اون رو برابر Application قرار بدید و مقدار Application رو برابر آدرس دقیق و کامل فایل اجرایی خودتون که با ویژوال بیسیک نوشتید کنید
تموم شد!
حالا اونایی که ویندوز 7 دارن Task Manager رو اجرا کنن و از تب سرویس دنبال نام سرویس خودشون بگردن (شماره 10)
وقتی پیداش کردید انتخابش کنید و راست کلیک و Start Service رو انتخاب کنید
اگر برنامه تون فرم داشته باشه مثل یکی من ویندوز بهتون میگه که این سرویس میخواد یک پیغام به شما نشون بده که نیاز به تایید شما داره بهش اجازه نمایش پیغام رو میدید (شماره 11)
گزینه View The Message رو کلیک کنید فرم برنامه تون رو میبینید (البته یک جای دیگه)
وقتی خوب فرمتون رو دیدید و کلی عشق کردید بعد گزینه Return Now رو کلیک کنید تا به محیط ویندوزتون برگردید از اینجا نمیشد عکس گرفت
ولی حواستون باشه تو سرویس اصل کاریتون فرم نسازید ها آبروتون میره
اونایی که ویندوز 7 ندارن برن تو ران بنویسن Services.msc و OK کنن
در صفحه باز شده دنبال نام سرویس مورد نظر بگردن
وقتی پیدا شد روش دابل کلیک کنن
و استارت رو بزنن
تموم شد
98867
**ویرایش
سورس Service Manager که توسط دوست خوبمون آقای AbbasVB (http://barnamenevis.org/member.php?205103-AbbasVB) نوشته شده به ضمیمه ها اضافه شد
توضیحات نویسنده سورس
آیا تا حالا می خواستید بدونید چه سرویس های روی ویندوز نصب شده؟
آیا تا حالا خواسته اید بدانید چه سرویس هایی در حال اجرا هستند چه سرویس هایی خاموش هستند می باشند؟
آیا تا حالا خواسته اید یک سرویس نصب کنید؟
آیا تا حالا خواسته اید کاری کنید که یک سرویس دیگر اجرا نشود؟
آیا تا حالا خواسته اید یک سرویس را پاک کنید؟
آیا تا حالا خواسته اید کلا خواسته اید یک سرویس را دست کاری کنید؟
و آیا تا حالا خواسته اید همه این کار ها رو با برنامه ی خودتون انجام بدهید؟