vbscript - Determine if a program started through my script is still running without using minmgmts:// -


संक्षिप्त परिचय

मेरे पास एक एसएसडी है और मैं अक्सर फिल्मों को रिकॉर्ड करता हूं Fraps। दुर्भाग्य से, मेरा एसएसडी इतना बड़ा नहीं है और मेरे द्वितीयक हार्डड्राइव फिल्मों को रिकॉर्ड करने के लिए फ़्रेप्स के लिए तेज़ पर्याप्त नहीं है मैंने एक स्क्रिप्ट लिखने का निर्णय लिया जो मेरे लिए फ्रेप्स शुरू करेगा, और फिर जांचता है कि क्या फ़्रेप्स रिकॉर्डिंग कर चुका है, फ़ाइल को मेरी दूसरी हार्डडिस्क पर ले जाता है और इस घटना की मुझे सूचित करता है।

यह काम करता है महान समस्या यह है कि जब मैं फ़्रेप्स बंद करता हूं, तब स्क्रिप्ट से बाहर निकलना चाहता हूं। एक ही रास्ता VBScript ऐसा करने में सक्षम होने लगता है (कम से कम, जो हर किसी के लिए सिफारिश करता है) प्रोसेस्लेट को पूछता है कि क्या कार्यक्रम सक्रिय है। क्योंकि फ्रेप्स एक भारी कार्यक्रम है, और मैं एक ही समय में कई कार्यक्रम चलाता हूं, बस इस सूची से पूछताछ करने से मेरी रिकॉर्डिंग में अंतराल की वृद्धि होती है। यह केवल तभी होता है जब मेरे पास बहुत से प्रोग्राम खुले हों, लेकिन कार्यक्रम खुद ही समस्या नहीं हैं, केवल राशि।

यह देखते हुए कि एक जांच पहले से बहुत अधिक है इसलिए मैं सिर्फ एक अंतराल की लहर बनाता हूं वास्तव में एक अलग समाधान की तलाश है अगर कोई भी हो।

विजुअल बेसिक

मैंने विज़ुअल बेसिक में बहुत प्रोग्राम किया है, भले ही यह बहुत से कई साल पहले, और बाद में वीबीए का उपयोग करते हुए, और वहां आप मूल रूप से एक कार्यक्रम शुरू कर सकते हैं, इसे संभाल लेंगे, और अकेले ही संभाल कर, जांच लें कि क्या आवेदन अभी भी चल रहा है। VBScript में मौजूद कुछ ऐसा ही होता है?

अगर वीबीएसपीटी यह नहीं करेगा, तो एक और सरल मैक्रो स्क्रिप्टिंग प्रोग्राम है जो फाइलसिज़ की जांच कर सकता है, एक प्रोग्राम को निष्पादित कर सकता है और निर्धारित कर सकता है कि वह प्रोग्राम अभी भी चल रहा है या नहीं स्क्रिप्ट में एक बाद का बिंदु?

यह प्रोग्राम जो वर्तमान में यह निर्धारित करने के लिए उपयोग किया जाता है कि कोई प्रोग्राम चलता है:

  फ़ंक्शन ISProcessRunning (strComputer, strProcess) मंद प्रक्रिया, strObject IsProcessRunning = गलत strObject = "winmgmts: //" & amp; GetObject (strObject) में प्रत्येक प्रक्रिया के लिए strComputer। instancesOf ("win32_process") यदि UCase (Process.name) = UCase (strProcess) तब IsProcessRunning = True Exit फ़ंक्शन समाप्त होता है अगर अगला समाप्ति फ़ंक्शन    

यह मानना ​​है कि यह आपके स्थानीय कंप्यूटर पर है, क्या आपने winmgmts ऑब्जेक्ट की जांच करने के बजाय कमांड लाइन के परिणाम बंद करने का प्रयास किया है?

उदाहरण: फ़ंक्शन ISProcessRunning (strProcess) मंद ऑब्जेसेल, स्ट्रकॉममेंट, ऑब्जेक्स ओब्जेक्ट, स्ट्रैटफ़ाल्ड सेट ओबजशेल्ड = बनाएँऑब्जेक्ट ("डब्ल्यूएससीक्रिप्ट। शेल") strCommand = "% comspec% / सी कार्यसूची "सेट करें objExecObject = objShell.Exec (strCommand) नहीं करते हैं जबकि objExecObject.StdOut.AtEndOfStream strText = objExecObject.StdOut.ReadAll () लूप यदि instr (UCase (strText), UCase (strProcess)) फिर IsProcessRunning = True Exit फ़ंक्शन अन्यथा IsProcessRunning = ग़लत बाहर निकलें फ़ंक्शन समाप्त करें यदि अंतिम फ़ंक्शन

Comments

Popular posts from this blog

Verilog Error: output or inout port "Q" must be connected to a structural net expression -

jasper reports - How to center align barcode using jasperreports and barcode4j -

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -