Windows xizmati o'rnatilgan yoki yo'qligini tekshiring? (C++) [dublikat]

Men Windows xizmatini C++ da yozdim, u mukammal ishlaydi, endi men uni o'rnatmoqchi bo'lganimda, avvalo u allaqachon o'rnatilganmi yoki yo'qligini tekshirishim mumkin bo'lgan xususiyatni qo'shmoqchiman?

Men bu vazifani qanday bajarish bo'yicha g'oyalarni izlashga harakat qildim, lekin u erda ko'p yordam yo'q. Ko'pgina savollar va qo'llanmalar C# dasturchilariga mo'ljallangan va ular o'z vazifalari uchun ServiceController dan foydalanmoqdalar, lekin men C++ da bunday sinfga kira olmayapman.

http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx

Yuqoridagi havola o'zining misol qismida ushbu sinf uchun hech qanday misol ko'rsatmaydi va shunday deydi:

"Hozirda hech qanday kod misoli mavjud emas yoki bu til qo'llab-quvvatlanmasligi mumkin."

Boshqa ma'lumotlar: Men Windows 7 64 bit, Visual Studio 2008 dan foydalanaman, tili C++.

Har qanday yordam juda qadrlanadi. rahmat.


person B-Abbasi    schedule 26.08.2013    source manba
comment
Men C++ kodi C# kodidan juda farq qilishidan shubhalanaman. C++ da usullar va xususiyatlarni tekshirishda C# misoliga qarashga harakat qiling.   -  person Some programmer dude    schedule 26.08.2013
comment
Men aytganimdek ServiceController C++ da mavjud emas   -  person B-Abbasi    schedule 26.08.2013
comment
Foydali bo'lishi mumkin: stackoverflow.com/questions/9868904/   -  person afree100    schedule 26.08.2013
comment
Yo'q, ServiceController bosh sahifasida hech qanday misol yo'q, lekin masalan, qarasangiz. statik GetServices usuli siz haqiqatan ham tegishli C++ misolini ko'rasiz, ya'ni u C++/CLI va C++/CX da qo'llab-quvvatlanadi.   -  person Some programmer dude    schedule 26.08.2013


Javoblar (1)


Yangilash: Javobni quyida qoldiraman, lekin aslida bu buning dublikati va men uni shunday belgiladim.

Siz OpenService Win32 API. U xizmatga tutqichni qaytaradi yoki agar ushbu xizmat mavjud bo'lmasa NULL (va GetLastError() ERROR_SERVICE_DOES_NOT_EXIST ni qaytaradi; boshqa xato sabablari ham bor, shuning uchun buni tekshirishni unutmang). Shuningdek, CloseServiceHandle agar qo‘ng‘iroq muvaffaqiyatli bo‘lsa. Siz aytib o'tgan .NET sinflari ham shulardan foydalanadi.

Shuningdek, ushbu ma'lumotni Oʻrnatilgan xizmatlar maʼlumotlar bazasi, Windows registrida.

Shu bilan bir qatorda, siz ushbu ma'lumotni so'rash uchun o'rnatuvchingizdan tashqi buyruqlarni (masalan, sc.exe yoki Powershell) ishga tushirishingiz mumkin.

person Christian.K    schedule 26.08.2013