2010-08-17 32 views
7

मैं एक जेस्क्रिप्ट स्क्रिप्ट में वर्तमान प्रक्रिया आईडी प्राप्त करना चाहता हूं। इस आईडी Windows API द्वारा दिया जाता है GetCurrentProcessId (http://msdn.microsoft.com/en-us/library/ms683180.aspx) समारोह। मैं इस समारोह को जेस्क्रिप्ट में कैसे कॉल करूं?जेस्क्रिप्ट में विंडोज एपीआई कार्यों को कैसे कॉल करें?

यह स्पष्ट रूप से काम नहीं करता है:

var id = GetCurrentProcessId(); 
WScript.Echo("ProcessId is " + id); 

उत्तर

2

विंडोज एपीआई JScript रनटाइम के लिए उपलब्ध नहीं बना रहे हैं। आप MSDN JScript language reference में सूचीबद्ध विधियों और गुणों तक सीमित हैं, हालांकि आप WMI से कनेक्ट भी कर सकते हैं और जेस्क्रिप्ट की सीमाओं से परे विस्तार करने के लिए COM ऑब्जेक्ट्स के उदाहरण बना सकते हैं।

+1

आप एक COM ऑब्जेक्ट कि qeustion में जानकारी प्रदान करता है जानते हैं। – harper

+0

@harper: मुझे एक के बारे में पता नहीं है। आप wscript.exe (जो मेजबान प्रक्रिया है) की प्रक्रिया आईडी प्राप्त करने के लिए WMI का उपयोग कर सकते हैं, लेकिन यदि कई स्क्रिप्ट चल रही हैं तो यह कई प्रक्रियाएं बना सकती है और आप नहीं जान पाएंगे कि आपकी स्क्रिप्ट का कौन सा हिस्सा है। –

+0

नहीं। मैं नहीं कर सकता। सीएसक्रिप्ट.एक्सईई द्वारा ज्यादातर मामलों में लिपि की मेजबानी की जाएगी। वह लक्ष्य मेजबान की पहचान करना है। Thrfor मैंने WMI/W32_Process के साथ प्रक्रियाओं की गणना करने की कोशिश की और अपनी प्रक्रिया की पहचान की। – harper

2

आप DynamicWrapperX v1.0 में जवाब दिया है। मेजबान प्रक्रिया के पहचानकर्ता:

+1

सुझाव के लिए धन्यवाद। यह एक इंटरिंग COM सर्वर है। लेकिन चूंकि मुझे केवल एक फ़ंक्शन कॉल करना है, इसलिए मैं इस विशिष्ट उद्देश्य के लिए COM सर्वर प्रदान कर सकता हूं। लेकिन मेरे पास COM सर्वर पंजीकृत करने के लिए एक ही प्रशासनिक प्रयास होगा। तो डायनेमिकWrapperX इस मामले में मदद नहीं करता है। – harper

संबंधित मुद्दे