Windows में दो अनुप्रयोगों के बीच स्वचालित रूप से स्विच करने के लिए आवेदन [बंद]


4

क्या कोई एप्लिकेशन मौजूद है जो कंप्यूटर को टाइमर पर दो अलग-अलग अनुप्रयोगों के बीच स्विच (ध्यान केंद्रित करने के लिए) लाएगा? यह विंडोज 7 के लिए है।

मुझे इसकी जरूरत एक स्क्रीन के लिए है जो सार्वजनिक रूप से ग्राहकों के लिए प्रदर्शित होगी। मैं चाहता हूं कि स्क्रीन दो अलग-अलग अनुप्रयोगों के बीच स्विच करें, कहो, 30 सेकंड। मुझे लगता है कि वहाँ पर्याप्त कारोबार कर रहे हैं वहाँ इन दिनों ग्राहक का सामना करना पड़ता है कि इस तरह से कुछ सरल मौजूद होना चाहिए!

जवाबों:


10

हां, इसे AutoIt कहा जाता है ।

आप कुछ इस तरह का उपयोग करेंगे:

While 1 ;loop indefinitely
    WinActivate("notepad","") ;give focus to notepad
    Sleep(30000) ;sleep 30 seconds
    WinActivate("wordpad","") ;give focus to wordpad
    Sleep(30000) ;sleep 30 seconds
WEnd

WinActivate () सटीक या निकटतम मिलान शीर्षक के साथ विंडो पर ध्यान केंद्रित करता है, ऐसे मामलों में जहां दो फिट होते हैं, यह सबसे हाल ही में सक्रिय एक पर ध्यान केंद्रित करता है। नींद () मिलीसेकंड में है, इसलिए 30000 30 सेकंड है।


हां, मेरी खुद की ऑटि स्क्रिप्ट लिखना मेरी बैकअप योजना बनने जा रही थी और चूंकि आपने उदाहरण कोड प्रदान करके मुझे कुछ परेशानी से बचाया था, इसलिए मैं सिर्फ आपका उत्तर स्वीकार करूंगा। धन्यवाद!
ओवरलोड

एक जादू की तरह काम किया। मुझे दो पीडीएफ़ दस्तावेजों की तुलना करने की आवश्यकता थी और 500ms के एक चक्र का उपयोग किया। इसे आसानी से रोकने के लिए, मैं ESC बटन को HotKeySet("{ESC}", "Terminate")यहां समाप्त होने वाले फ़ंक्शन ( ) की तरह बाध्य करता हूं : autoitscript.com/autoit3/docs/functions/HotKeySet.htm
अलेक्जेंडर तौबेनकोर्ब


2

यदि ग्राहकों और स्क्रीन / एप्लिकेशन के बीच कोई इंटरैक्शन नहीं होगा, तो आपको बस कार्यक्रमों का स्क्रीनशॉट लेना चाहिए और फिर 30 सेकंड के टाइमर और अंतहीन दोहराने के साथ एक साधारण स्लाइड शो बनाना चाहिए।

आम तौर पर, कंपनियां जो ग्राहक का सामना करने वाले मॉनिटर का उपयोग करती हैं, जो विज्ञापन उद्देश्यों के लिए कार्यक्रम प्रदर्शित करती हैं, "लाइव" कार्यक्रमों का उपयोग नहीं करती हैं। आप इंटरफ़ेस को नियंत्रित करना चाहते हैं, और कुछ त्रुटि दिखाने का मौका देना चाहते हैं जो आप नहीं चाहते हैं। वे काम कर रहे कार्यक्रमों के स्क्रीन वीडियो रिकॉर्ड करेंगे, या स्थिर प्रदर्शन के लिए सरल स्क्रीनशॉट लेंगे।

अन्यथा, विशिष्ट डैशबोर्ड हैं जिनका उपयोग किया जाता है जो विशिष्ट जानकारी प्रदर्शित करते हैं, और ये आम तौर पर बीच में स्विच नहीं होते हैं। या, उन्हें ए / वी उपकरण का उपयोग करने के लिए स्विच किया जाता है ताकि प्रत्येक कार्यक्रम एक अलग कंप्यूटर पर चल रहा हो ताकि कम से कम, एक बार फिर, विफलता का मौका।


मुझे लगा कि, लेकिन दुर्भाग्य से अनुप्रयोगों में से एक को गतिशील रूप से वेब से सामग्री लोड करने के लिए स्विच किया जा रहा है (लगता है कि आरएसएस रीडर) इसलिए एक स्थिर छवि काम नहीं करेगी
ओवरलोड'

2

जब विंडोज बॉक्स से बाहर कर सकता है तो एक प्रोग्राम (जैसे AutoIt) क्यों स्थापित करें?

निम्नलिखित को एक फ़ाइल में सहेजें auto_switch.vbs:

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.SendKeys("%{TAB}")
Loop

30000Alt + Tab प्रेस के बीच मिलीसेकंड (इसलिए 30000 = 30 सेकंड) की संख्या को बदलें । इसे चालू करने के लिए डबल क्लिक करें।

यदि आप इसे रोकना चाहते हैं, तो आपको "wscript" नामक प्रक्रिया को मारने की आवश्यकता है।

यदि आप स्पष्ट रूप से नामित कार्यक्रमों के बीच स्विच करना चाहते हैं तो यह कोड "इनबॉक्स - माइक्रोसॉफ्ट आउटलुक" और "फ़ायरफ़ॉक्स" के बीच हर 30 सेकंड में फ्लिप करेगा:

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WScript.Sleep 30000
    WshShell.AppActivate("Inbox - Microsoft Outlook")
    ' WshShell.SendKeys "% r"
    WScript.Sleep 30000
    WshShell.AppActivate("Firefox")
    ' WshShell.SendKeys "% r"
Loop

यह ध्यान देने योग्य है कि यदि ऊपर दिए गए उदाहरण में अनुप्रयोग कम से कम हैं तो वे सक्रिय होने के बाद भी कम से कम बने रहेंगे।

साथ ही विंडो को रिस्टोर करने के लिए, 'सामने की तरफ को हटा दें WshShell.SendKeys। यह स्क्रिप्ट सक्रिय विंडो कर देगा और फिर तुरंत कुंजी संयोजन बहाल भेज Alt+ SpaceBar, r। यदि आप विंडोज के गैर-अंग्रेजी संस्करण का उपयोग कर रहे हैं, तो आपको इस शॉर्टकट को बदलने की आवश्यकता हो सकती है।


अच्छा लगा। बस जिज्ञासु (मैं विंडोज पर नहीं हूं): आपको आउटलुक के लिए "इनबॉक्स" शामिल करने की आवश्यकता क्यों होगी, लेकिन फ़ायरफ़ॉक्स के लिए पृष्ठ शीर्षक नहीं?
अर्जन

ईमानदार होने के लिए, मैंने उदाहरण के रूप में लिखने पर खिड़की के शीर्षकों के नाम की नकल की (और फ़ायरफ़ॉक्स एक खाली पृष्ठ दिखा रहा था)। Msdn.microsoft.com/en-us/library/wzcddbek(v=vs.84).aspx के अनुसार , AppActivateपहले एक सटीक विंडो शीर्षक से मिलान करने का प्रयास करेंगे और यदि यह नहीं हो सकता है, तो पहली विंडो के लिए जाना जाएगा उस तार से शुरू होता है।
रिचर्ड

ESET एंटीवायरस स्वचालित रूप से VBS / BadJoke रूप में इस स्क्रिप्ट में चिह्नित किये और मेरे मशीन पर इस स्क्रिप्ट को नष्ट कर दिया जब मैं इसे चलाने के लिए करने की कोशिश की
phury

@ मैं मान रहा हूं कि ESET AppActivateएक लूप के अंदर कॉल को पसंद नहीं करता है । स्क्रिप्ट को श्वेत सूची में लाने या किसी अन्य वायरस चेकर का उपयोग करने के बारे में मुझे यकीन नहीं है कि मुझे क्या सुझाव देना है, क्षमा करें।
रिचर्ड

-1

निम्नलिखित आपको उन्हें नाम दिए बिना 6 कार्यक्रमों के बीच स्विच करने की अनुमति देता है। मूल रूप से, {TAB}उन खिड़कियों की संख्या से 1 कम दर्ज करें , जिनके बीच आप स्विच करना चाहते हैं, और किसी भी बाहरी खुली खिड़कियां नहीं हैं।

6 विंडो तक काम करता है जहाँ तक मुझे पता है, शायद अधिक।

Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Do
  WScript.Sleep 1000
  WshShell.SendKeys("%({TAB}{TAB}{TAB}{TAB}{TAB})")
Loop
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.