अपने GUI को प्रदर्शित किए बिना एक विंडोज एप्लिकेशन चलाएं


3

क्या कोई GUI विंडो प्रदर्शित किए बिना विंडोज एप्लिकेशन चलाने का एक तरीका है?

मेरे पास एक 3rd पार्टी विंडोज एप्लीकेशन है जिसमें कोई कमांड लाइन पैरामीटर नहीं है या इसके GUI को दबाने के लिए स्विच नहीं है। मुझे इसे पृष्ठभूमि में शुरू करने की आवश्यकता है, और केवल उस 3 पार्टी ऐप द्वारा प्रकाशित डेटा एक्सचेंज एपीआई का उपयोग करके, इसके साथ केवल प्रोग्रामेटिक रूप से बातचीत करें।

मैंने हिडन चेक बॉक्स के साथ टास्क शेड्यूलर में एक टास्क बनाने की कोशिश की, लेकिन फिर भी जब मैं मैन्युअल रूप से कार्य शुरू करता हूं, तो ऐप की विंडो प्रदर्शित हो रही है। मुझे लगता है कि एप्लिकेशन को स्टार्टअप के बाद ध्यान केंद्रित करने के लिए लाने के लिए प्रोग्राम किया गया है।

मुझे विंडोज 7 के लिए इस समाधान की आवश्यकता है।

धन्यवाद।


3rd पार्टी ऐप का नाम क्या है?
साइमन

1
इसका स्थानीय स्तर पर उपलब्ध व्यावसायिक ईआरपी उत्पाद है। यहां नाम अप्रासंगिक होना चाहिए।
AllSolutions

क्या आपको इसके लिए एक हल करने योग्य समाधान मिला? मेरे पास दो हैं जो ठीक काम करने चाहिए, लेकिन यदि आपके पास नीचे दिए गए उत्तरों में से दो के लिए एक कार्यशील समाधान है, तो मेरा उत्तर (s) आपके लिए बहुत उपयोगी नहीं होगा। एक विंडोज़ देशी और दूसरा ओपन सोर्स ऐप समाधान का उपयोग कर।
दलाल रस आईटी

वैसे भी, आप :)
AllSolutions

जवाबों:


3

शायद आप लक्ष्य एप्लिकेशन के लिए विंडो (एस) को खोजने और छिपाने के लिए पावरशेल के माध्यम से Win32 एपीआई का उपयोग कर सकते हैं।

उदाहरण कोड:

$definition = @"    
      [DllImport("user32.dll")]
      static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

      [DllImport("user32.dll")]
      [return: MarshalAs(UnmanagedType.Bool)]
      static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

      public static void Show(string wClass, string wName)
      {
         IntPtr hwnd = FindWindow(wClass, wName);
         if ((int)hwnd > 0)
            ShowWindow(hwnd, 1);
      }

      public static void Hide(string wClass, string wName)
      {
         IntPtr hwnd = FindWindow(wClass, wName);
         if ((int)hwnd > 0)
            ShowWindow(hwnd, 0);
      }
"@

add-type -MemberDefinition $definition -Namespace my -Name WinApi

[my.WinApi]::Hide('Notepad', 'Untitled - Notepad')

आर्यदेव के उत्तर का स्रोत कोड "पॉवरशेल आईएसई के साथ एक विंडो छिपाएं?" StackOverflow पर।


मैंने एक Stackoverflow जवाब में कुछ जानकारी और संदर्भ एकत्र किए हैं । साथ ही अगर इसका C # से संबंधित है तो यह ठीक हो जाता है। शुद्ध और win32 समाधान।
क्लीजर्स

0

VBScript के माध्यम से अपने एप्लिकेशन को चलाने का प्रयास करें, उदाहरण wmplayer.exe का उपयोग करता है (नीचे दी गई पंक्ति को .vbs फ़ाइल के रूप में सहेजें)।

CreateObject("WScript.Shell").Run """C:\Program Files (x86)\Windows Media Player\wmplayer.exe""", 0 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.