2009-02-17 7 views

उत्तर

2

बैच फ़ाइल से, नहीं। यदि आप एक विंडो को सक्रिय करना चाहते हैं तो आपको SetActiveWindow() का उपयोग करना होगा। यदि आप विंडोज प्रोग्रामिंग के साथ गंदे नहीं बनना चाहते हैं लेकिन फिर भी विंडोज़ और सरल सामान को सक्रिय करना चाहते हैं, तो मैं अत्यधिक Autoit की जांच करने की सलाह देता हूं। आप इस कार्यक्रम को अपने बैचफाइल से हमेशा कॉल करने के लिए कॉल कर सकते हैं।

8

nircmd ऐसा करेगा, हालांकि इसमें थोड़ा स्क्रिप्टिंग शामिल है।

TITLE %SOME_UNIQUE_VALE% 
nircmd win activate %SOME_UNIQUE_VALE% 

चाल करना चाहिए:

nircmd win activate "titleofwindow" 

आप मूल रूप से cmd खिड़की आप को क्रियान्वित कर रहे हैं के शीर्षक पता करने की जरूरत

इस प्रकार (आप विंडोज में शीर्षक आदेश के माध्यम से इस सेट कर सकते हैं) ।

नोट करें कि कुछ मैलवेयर उपकरण एनआईआरसीएमडी निष्पादन योग्य (इसे बहुत ही तैनाती की आवश्यकता नहीं है क्योंकि यह बहुत शक्तिशाली है) इससे आपको समस्याएं हो सकती हैं।

+0

http://www.nirsoft.net/utils/nircmd.html – ryeguy

+0

चियर्स - इस पर ब्लॉक किया गया है मेरा शुद्ध कनेक्शन (इसलिए नोट) – ShuggyCoUk

+0

किसी कारण से, मुझे शीर्षक निर्दिष्ट करने की आवश्यकता है: nircmd सक्रिय शीर्षक शीर्षक "TITLE" –

1

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

-3

नाम से खिड़की पर स्विच करने का एक और त्वरित तरीका Ctrl + Shift + Esc के माध्यम से है, जो कार्य प्रबंधक खोलता है। फिर प्रक्रिया का चयन करने के लिए विंडोज़ शीर्षक के पहले कुछ अक्षर टाइप करें, फिर एंटर दबाएं।

+0

यह एक बहुत अच्छी युक्ति है! बस एक समस्या ... यह जो भी टैब हाल ही में खुला था, के साथ खुल जाएगा।यदि यह "एप्लिकेशन" टैब था, तो अच्छा, लेकिन यदि यह एक और टैब है, तो आपको कीस्ट्रोक के एक और विस्तृत सेट की आवश्यकता होगी ... ऐसा लगता है कि आप 'Ctrl + Shift + Esc' करते हैं, जो कार्य प्रबंधक लॉन्च करेगा । 'Shift + Tab' टैब बार का चयन करेगा। बाएं तीर को मारने से अनुप्रयोग टैब में कुछ बार परिणाम आते हैं (और चूंकि यह लूप नहीं करता है और यह सबसे अधिक छोड़ दिया जाता है, तो आप अच्छे होते हैं।) 'टैब' सूची में वापस जाने के लिए, विंडो का नाम टाइप करें , और 'एंटर' दबाएं। – ArtOfWarfare

+0

अगर कोई सोचता है कि मैं सोचने के लिए पागल हूं कि उपयोगी है, तो स्वचालित कीस्ट्रोक स्वचालित करना बहुत आसान है और इसमें बहुत कम बाहरी लाइब्रेरी निर्भरताएं हैं। अकेले पायथन अकेले कीस्ट्रोक स्वचालित करने के लिए पर्याप्त है। दूसरी ओर, माउस निर्देशांक पढ़ना और स्वचालित करना, बहुत मुश्किल है। तो स्वचालन समाधान जो कीबोर्ड इनपुट के अलावा कुछ भी नहीं कर सकते हैं। इसके अलावा, बाएं तीर को कई बार मारना एक बार घर पर मारने के साथ बदला जा सकता है। – ArtOfWarfare

2

cmd प्रॉम्प्ट विंडो को सामने दिखाने के लिए एक और तरीका फ़ाइल 1.bat को दूसरी फ़ाइल 2.बैट फ़ाइल को कॉल करने के लिए कमांड के साथ समाप्त करना है, इसके बाद बाहर निकलने के आदेश के बाद।

उदाहरण file1.bat

.... 
[your code here] 
start C:\file2.bat 
exit 

यह file1.bat बंद कर देता है और एक दूसरे .bat फ़ाइल जहाँ आप अपने कोड के साथ जारी रख सकते हैं खोलता है का उपयोग कर। यह दूसरा .bat कमांड प्रॉम्प्ट अन्य विंडोज़ के सामने खुल जाएगा

0

मुझे एक ही समस्या थी और मुझे एक साधारण सी # कंसोल एप्लिकेशन विकसित करना पड़ा जो खिड़की के सामने लाता है। विंडोज़ शीर्षक शीर्षक का उपयोग तर्क के रूप में किया जाता है।

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Runtime.InteropServices; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 

     [DllImport("USER32.DLL", CharSet = CharSet.Unicode)] 
     public static extern IntPtr FindWindow(String lpClassName, String lpWindowName); 

     [DllImport("USER32.DLL")] 
     public static extern bool SetForegroundWindow(IntPtr hWnd); 
     [DllImport("User32.dll")] 
     private static extern bool IsIconic(IntPtr handle); 
     [DllImport("User32.dll")] 
     private static extern bool ShowWindow(IntPtr handle, int nCmdShow); 
     const int SW_RESTORE = 9; 
     public static void bringToFront(string title) 
     { 
      // Get a handle to the Calculator application. 
      IntPtr handle = FindWindow(null, title); 

      // Verify that Calculator is a running process. 
      if (handle == IntPtr.Zero) 
      { 
       return; 
      } 
      if (IsIconic(handle)) 
      { 
       ShowWindow(handle, SW_RESTORE); 
      } 

      Console.WriteLine("Founded "); 
      SetForegroundWindow(handle); 

     } 

     static void Main(string[] args) 
     { 

      if (args.Length > 0) 
       bringToFront(args[0]); 
      else 
       Console.WriteLine("specify program window title"); 

     } 
    } 
} 

मेरी बैच स्क्रिप्ट के कोड तो

कार्यसूची/FI "IMAGENAME eq program.exe" करने के लिए कुछ इसी तरह है | "Program.exe" लगता है अगर errorlevel 1 (program.exe) और (BringToFront.exe "कार्यक्रम Window शीर्षक")