बैच: जब कंप्यूटर बेकार है और जब उसका उपयोग किया जाता है तो प्रोग्राम कैसे चलाना है?


4

मुझे एक विंडोज बैच (या किसी अन्य कमांड लाइन सॉफ्टवेयर को ठीक करना होगा) चलाने की आवश्यकता है जो एक प्रोग्राम चलाएगा जब कंप्यूटर एक मिनट के लिए निष्क्रिय हो गया था और इसका उपयोग होने पर इसे रोक दिया। मैं स्पष्ट रूप से इसे फिर से शुरू करना चाहिए जब यह फिर से निष्क्रिय हो।

कोई विचार? GUI का उपयोग नहीं करने वाली कोई भी चीज़ नहीं मिली।

जवाबों:


6

यह AutoIt: http://autoitscript.com के लिए एक आदर्श काम है

यहाँ एक स्क्रिप्ट है जिसे मैंने आपके लिए एक साथ फेंक दिया है। इसे एक .au3 फ़ाइल में रखें, अपने exe के साथ नोटपैड को बदलें, और रन के लिए, पूरा पथ शामिल करें:

#include <Timers.au3>
While 1
   Sleep(10)
   $idleTimer = _Timer_GetIdleTime()
   If $idleTimer > 60000 And Not ProcessExists("notepad.exe") Then
      Run("notepad.exe")
   ElseIf $idleTimer < 10 Then
      ProcessClose("notepad.exe")
   EndIf
WEnd

हे Xichael, बहुत बहुत धन्यवाद! इससे मेरी समस्या हल हो गई। अब, अगर आप मुझे यह समझने में मदद कर सकते हैं कि मैं% appdata% के पीछे एक फ़ोल्डर में कैसे सुधार कर सकता हूं, तो मैं सबसे आभारी रहूंगा। मान लें कि मैं उदाहरण के लिए% appdata% \ Microsoft \ file.txt पर एक फ़ाइल की पुष्टि करना चाहता था। आप वह कैसे करेंगें? मैंने देखा कि मुझे इस तरह इसकी पुष्टि करने की आवश्यकता है: @AppDataCommonDir लेकिन मुझे नहीं पता कि सिंटैक्स Autoit मुझसे क्या उम्मीद करता है।
user2723297

5

यदि आप AutoIt का उपयोग नहीं करना चाहते हैं तो उस quserकमांड को देखें जो अन्य चीजों के साथ, निकटतम समय के लिए निष्क्रिय समय को प्रदर्शित करता है:

C:\Users\Richard>quser
 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>richard               console             1  Active      none   26/06/2014 15:29
C:\Users\Richard>

इसका एक सरल तरीका यह होगा:

quser | findstr /I %USERNAME% | findstr "none"

और अगर यह वापस खाली आता है, तो वे 1 मिनट से अधिक बेकार हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.