خدمة Windows UPS (مزود الطاقة غير المنقطعة) - إيقاف تشغيل UPS؟

StackOverflow https://stackoverflow.com/questions/387830

  •  23-08-2019
  •  | 
  •  

سؤال

أنا أستخدم خدمة UPS لمراقبة حالة UPS الخاصة بي من تطبيق - المفتاح في HKLM System CCS CCS UPS UPS Status يحتوي على جميع المعلومات التي يمكنك الحصول عليها من لوحة تحكم الطاقة. ولكن - أود أن أكون قادرا على إخبار UPS بإيقاف تشغيله من تطبيقي أيضا. أعلم أن الخدمة يمكن أن تخبر UPS لإيقاف التشغيل - على سبيل المثال، بعد تشغيل عدد محدد من الدقائق على البطارية - وأنا أتساءل عما إذا كان هناك نوع من الأمر يمكنني إرساله إلى الخدمة لبدء إيقاف التشغيل يدويا وبعد

أواجه مشكلة في البحث عن هذه المعلومات - يميل الناس إلى خطأ "غير متقطع" (HRM، Firefox Red-Lasted - ولكن ليس لديه بديل) و "UPS" يحصل فقط على الزيارات لخدمة الشحن. ربما يمكنني أن أفعل شيئا من خلال system.servicecontroller، أو WMI؟

توضيح: نعم، أنا أتحدث عن تشغيل جهاز UPS المادي. أنا أعرف كيفية إيقاف الخدمة. احسبت أنها ستكون مشكلة شائعة - أريد أن أطفأ بلدي UPS مع جهاز الكمبيوتر. كان لدي فكرة سأحاولها، بناء على هذه الصفحة. وبعد كما ترى، يتعين على APC (والجميع) توفير DLL لخدمة UPS للاتصال، وبما أن مكالمات الوظيفة موثقة بشكل جيد، فلا يوجد سبب لا ينبغي أن أكون قادرا على استفسارها. سأعيد تحرير هذا بمجرد معرفة ما إذا كان يعمل أم لا.

تحديث: حاولت استدعاء Upsinit، ثم upsturnoff، ولا يحدث شيء. سوف العبث معها أكثر من ذلك، لكن الدعوة المباشرة إلى Apcups.dll قد تكون طريقا مسدود.

هل كانت مفيدة؟

المحلول 2

حسنا، لدي إجابة (اختبار!)، لكنها ليست جميلة. بلدي apc ups ينتقل باستخدام بروتوكول APC "الذكي" (أكثر هنا). ما تحتاجه في حالتي هو أمر "إيقاف" لينة "،" S ". ولكن أولا تحتاج إلى التأكد من أنه في وضع "ذكي" ("Y"). الآن، إذا كنت ترغب في السماح للدولة لمراقبة خدمة Windows UPS، فستحصل الخدمة على قبضة حديدية على منفذ COM. لذلك يمكنك إما أ) السماح لخدمة Windows بإيقاف تشغيل UPS، أو B) اقتل الخدمة وتحويل UPS عن نفسك.

لدى UPS نفسها فترة "فترة سماح" بعد أن تحصل على أمر "S"، مما يتيح لك الوقت لإغلاق نظام التشغيل الخاص بك. هذا يعني أن القيام به (أ) أعلاه، يجب عليك:

  • قتل فائدة (أنابيب) السلطة
  • انتظر مهلة خدمة Windows UPS (افتراضي وحد أدنى دقيقتين)
  • انتظر النوافذ لإغلاقها - بالقرب من النهاية، وسوف ترسل الأمر "S"
  • انتظر فترة سماح UPS، وبعد ذلك سوف تتحول في الواقع

أعتقد أننا ذاهبون للاختيار (أ)، فقط لأن (ب) ينطوي على عمل إضافي مما يؤدي إلى مقتل الخدمة وتنفيذ المفاتيح التسلسلية.

نصائح أخرى

تحقق من تعليقاتي على هيرمان، فأنت تريد إيقاف تشغيل UPS، وليس خدمة UPS، صحيحة؟ أعني، فأنت تريد أن تغلق هذا الشيء، وقتل السلطة، إلخ، أليس كذلك؟

إذا كان الأمر كذلك، فأنت تبحث عنه على UPS بواسطة نموذج UPS. أشك في أن اثنين منهم سيعمل نفسه.

في عمليات البحث الخاصة بك، بدلا من UPS، حاول "APC" أو "البطارية". أعتقد أن الكثير من التعليمات البرمجية هو ما يدور على أجهزة الكمبيوتر المحمولة للتعامل مع أن تكون على البطارية، إلخ ...

بعض المكان المخفي في بعض الملفات القديمة المتربة لدي معلومات بروتوكول للحصول على UPS APC، والأوامر التي يستجيبون بها، وما يرسلونه إلى جهاز الكمبيوتر وما إلى ذلك. ولكن هذا كان مرة أخرى في اليوم الذي اعتدنا فيه لتوصيل UPS لدينا بأجهزة الكمبيوتر الخاصة بنا مع الكابلات التسلسلية ... هل يمكن أن تتحدث بالفعل إلى UPS مع QModem أو HyperTerm ...

تعلمته من التحدث إلى الرجال في APC. إنها لطيفة جدا ومفيدة. الآن - أيام، أعتقد أنك مجرد نشر عنوان URL يأتي من برامج PowerChute الخاصة بك، وسوف يتحدث مباشرة إلى UPS، وتنفيذ أوامرك.

من فضلك، أخبر بأي لغة تحاول القيام بذلك ... إذا كنت تستخدم .NET، فيمكنك القيام بذلك مع فئة Servicecontroller (اقرأ المستندات).

للسيطرة على الخدمات في Win32 API باستخدام C / C ++، وظائف الخدمة (ويندوز).

على سبيل المثال لإيقاف الخدمة، يمكنك استخدام وظيفة ControlService كما يلي (هذا مثال سريع وقذر):

OpenService (hServMgr, TEXT("\\UPS_SERVICE_0"), SC_MANAGER_ALL_ACCESS);

SERVICE_STATUS stat;
ControlService (hUpsService, SERVICE_CONTROL_STOP, &stat)

لاحظ أنك تحتاج إلى توفير مقبض مدير الخدمة في Hservmgr و the ups_service_0 هو الاسم الذي يجب أن يتطابق مع خدمة UPS المرغوبة (إما Windows المدمج أو الآخر).

تذكر أنه لإيقاف خدمة تحتاج إلى حقوق الأمان الصحيحة. هذه ليست مشكلة في حساب إيدح، ولكن ضع في اعتبارك ما يحدث عند تسجيل الدخول باستخدام حساب غير مسؤول.

امل ان يساعد.

حول إيقاف تشغيل جهاز UPS المادي، أتذكر مرة أخرى في أيام Win98، كنت قادرا على توعية الجهاز يتحدث مع UPS من خلال منفذ COM، Altough لا أتذكر العلامة التجارية أو كيف كانت واجهة البرمجة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top