2010-10-27 11 views
11

मैं एक स्क्रिप्ट के निष्पादन को भीतर से कैसे रोक सकता हूं? नींद WinAPI समारोह की तरह कुछ?एक vbscript निष्पादन को कैसे रोकें?

+0

संभव डुप्लिकेट [VBScript में देरी स्थापित करने के लिए कैसे] (http://stackoverflow.com/questions/1729075/how-to- सेट-देरी-इन-वीब्स्क्रिप्ट) – Pisu

उत्तर

16

आप एक WScript वस्तु का उपयोग करें और उस पर Sleep विधि कॉल कर सकते हैं:

Set WScript = CreateObject("WScript.Shell") 
WScript.Sleep 2000 'Sleeps for 2 seconds 

एक अन्य विकल्प आयात और WinAPI समारोह directly उपयोग करने के लिए है (केवल VBA में काम करता है, धन्यवाद @Helen):

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
Sleep 2000 
+1

नोट: आप वीबीस्क्रिप्ट से WinAPI फ़ंक्शंस नहीं चला सकते हैं। आपका दूसरा उदाहरण केवल वीबी/वीबीए में काम करता है। – Helen

+1

@ हेलेन - जानकारी के लिए धन्यवाद। इस सीमा के बारे में नहीं पता था। उत्तर अपडेट किया गया। – Oded

+1

मैंने अभी यह कोशिश की और ऐसा लगता है कि 'सेट WScript = ...' कथन अपरिपक्व है। बस एक पंक्ति 'WScript.Sleep 2000' ने मेरे लिए काम किया (जैसे' WScript.Echo' हमेशा की तरह है)। –

17

नीचे स्क्रिप्ट स्निप एक विराम उप बनाता है जो स्ट्रिंग में विराम पाठ प्रदर्शित करता है और एंटर कुंजी की प्रतीक्षा करता है। जेड कुछ भी हो सकता है। बढ़िया अगर बहुआयामी उपयोगकर्ता हस्तक्षेप आवश्यक विराम की आवश्यकता है। मैं इसे अपने मानक स्क्रिप्ट टेम्पलेट में रखता हूं।

Pause("Press Enter to continue") 

Sub Pause(strPause) 
    WScript.Echo (strPause) 
    z = WScript.StdIn.Read(1) 
End Sub 
8

'Enter' के साथ बेहतर इस्तेमाल ReadLine() या पढ़ें (2), क्योंकि कुंजी 'Enter' 2 प्रतीकों उत्पन्न है। यदि उपयोगकर्ता कोई भी पाठ दर्ज करता है तो अगला विराम() को भी पढ़ें (2) के साथ छोड़ दिया जाएगा। तो ReadLine() बेहतर है:

Sub Pause() 
    WScript.Echo ("Press Enter to continue") 
    z = WScript.StdIn.ReadLine() 
End Sub 

अधिक उदाहरण http://technet.microsoft.com/en-us/library/ee156589.aspx में देखने

की
+8

मुझे पता है। लेकिन स्वीकार्य उत्तर में मुझे परेशानी है। मैं स्वीकृत उत्तर में एक टिप्पणी जोड़ना चाहता हूं लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है। तो मैं एक और जवाब पोस्ट करता हूं –

+1

@PlasmaPower यह साइट एक ही समस्या के कई उत्तरों को खोजने के बारे में है। जब सवाल वापस पूछा गया तो हर संभावित समाधान के साथ हर संभावित प्रोग्रामर स्पष्ट रूप से मौजूद नहीं था। एक और जवाब जोड़ने के लिए सर्गेई पर अच्छा है। सर्गेई यह एक अच्छा और स्वीकार्य उत्तर था, एक टिप्पणी नहीं। +1 – Kristopher

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