मैं दिए गए कार्यक्रम को चलाने से पहले उसे रोकना चाहता हूं और पहले अपना कार्यक्रम चलाना चाहता हूं


3

मैं पायथन 3 के साथ काम करने जा रहा हूं, मुख्य रूप से एक शुरुआत के लिए विंडोज में दिलचस्पी है। अगर इससे कोई फर्क पड़ता है, तो विशेष रूप से विंडोज 10।

मैं क्या होना चाहता हूं इसका उदाहरण:

  1. उपयोगकर्ता मेरी स्क्रिप्ट शुरू करता है।
  2. उपयोगकर्ता खेल Dota 2 को ब्लैकलिस्ट करने का निर्णय लेता है।
  3. उपयोगकर्ता Dota 2 को खोलने का प्रयास करता है।
  4. क्योंकि Dota 2 ब्लैकलिस्ट पर है, मेरी स्क्रिप्ट Dota 2 के बजाय चलती है।
  5. मेरी स्क्रिप्ट पूरी हो जाने के बाद, Dota 2 या तो चलता है या नहीं चलता है, यह इस बात पर निर्भर करता है कि मेरी स्क्रिप्ट क्या चुनती है। यह अंततः उपयोगकर्ता द्वारा नियंत्रित किया जाएगा।
  6. उपयोगकर्ता मेरी स्क्रिप्ट बंद कर देता है।
  7. उपयोगकर्ता Dota 2 को खोलने का प्रयास करता है।
  8. Dota 2 बिना किसी रुकावट के तुरंत खुल जाता है।

अंतिम तीन पंक्तियों का संकेत है कि इसे चालू और बंद करने का एक तरीका होना चाहिए, इसलिए एक स्थायी समाधान नहीं है। मेरी आधार धारणा यह है कि एक बार जब मैं जानता हूं कि पहला भाग कैसे करना है, तो दूसरा भाग आसान होगा। मैंने इसे अभी भी स्पष्टीकरण के लिए वहां रखा है।

मैं वास्तव में केवल यह जानना चाहता हूं कि कार्यक्रमों को रोकने के लिए कैसे पहुंच प्राप्त करें।

जवाबों:


3
  1. उपयोगकर्ता Dota 2 को खोलने का प्रयास करता है।
  2. क्योंकि Dota 2 ब्लैकलिस्ट पर है, मेरी स्क्रिप्ट Dota 2 के बजाय चलती है।

विंडोज' छवि फ़ाइल निष्पादन विकल्प जब भी आपकी पसंद का निष्पादन शुरू हो, तो आप अपने कार्यक्रम को चलाने की अनुमति देते हैं।

मान लीजिए हम चलाना चाहते हैं C:\My Folder\new app.exe जब भी उपयोगकर्ता शुरू करने की कोशिश करता है C:\Windows\old app.exe। इसे पूरा करने के लिए, निम्नलिखित कमांड चलाएँ:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\old app.exe" /v Debugger /d "C:\My Folder\new app.exe" /f

ध्यान दें: अगर नाम की चाबी चाहिए old app.exe मौजूद नहीं है (संभावना), यह कमांड इसे बनाएगा।

यह प्रोग्राम के नाम के साथ "अपहृत" होने के लिए एक नई रजिस्ट्री कुंजी बनाता है और नाम से एक नया स्ट्रिंग मान बनाता है डीबगर इसका डेटा प्रतिस्थापन निष्पादन के मार्ग पर सेट है। यह सहित कोई भी निष्पादन योग्य फ़ाइल हो सकती है .CMD बैच स्क्रिप्ट।

परिवर्तन तुरंत प्रभाव डालता है। अब जब भी कोई निष्पादन योग्य नाम दिया जाता है old app.exe चलाया जाता है, विंडोज शुरू हो जाएगा C:\My Folder\new app.exe बजाय।

सब कुछ सामान्य करने के लिए, हटाएं old app.exe कुंजी:

reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\old app.exe" /f

अपने वांछित परिणाम को पूरा करने के लिए बस इन आदेशों को अपनी स्क्रिप्ट में शामिल करें।


बस त्वरित प्रश्न (ओं), क्या होगा अगर हम जिस एप्लिकेशन को चलाना चाहते हैं वह C: \ Windows में नहीं है? यदि यह किसी अन्य हार्ड डिस्क पर या C के किसी अन्य फ़ोल्डर में है तो क्या होगा? क्या यह उन चीज़ों के लिए भी काम करता है जो वास्तव में अनुप्रयोग नहीं हैं, जैसे फाइलें?
GoodDay

@GoodDay आप इसे अपने इच्छित किसी भी स्थान पर इंगित कर सकते हैं, जब तक कि यह सभी उपयोगकर्ताओं के लिए सुलभ हो जो इसे चलाएंगे। आपको किसी ऐसी चीज की ओर इशारा करना होगा जो निष्पादन योग्य हो। यदि संदेह है, तो बस अपनी वांछित फ़ाइल के साथ एक त्वरित परीक्षण करें। चूंकि परिवर्तन तुरंत प्रभावी हो जाते हैं इसलिए आपकी सेटिंग्स का परीक्षण करना आसान है।
Twisty Impersonator

मुझे खेद है कि मुझे यह नहीं मिला, आपने लिखा: C:\Windows\old app.exe, यह इंगित करता है कि हम कम से कम `C: \ Windows` में काम कर रहे हैं। और जब मैं जांच करने के लिए रजिस्ट्रिट में गया, तो शायद मुझे कुछ याद आ रहा है, लेकिन मुझे वास्तव में वह सब कुछ नहीं मिल रहा है जिसकी मुझे तलाश है।
GoodDay

बेशक एक उदाहरण है। आप के लिए डेटा सेट कर सकते हैं डीबगर के लिए मूल्य C:\My Folder\MyScript.cmd यदि आप चाहते थे और यह काम करेगा। क्या उससे मदद हुई?
Twisty Impersonator

ठीक है, चलो एक उदाहरण बनाते हैं, मुझे लगता है कि यह मेरे लिए स्पष्ट हो जाएगा: मान लीजिए कि मैं जिस ऐप को इंटरसेप्ट करना चाहता हूं वह K: \ प्रोग्राम \ test \ old_app.exe में है, तो मैं क्या करूं?
GoodDay
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.