2013-03-21 10 views
11
$ie = New-Object -com internetexplorer.application 

हर बार जब मैं इस ऑब्जेक्ट के साथ एक नई वेबसाइट खोलता हूं (यानी जब भी स्क्रिप्ट चलता है) यह एक नई आईई विंडो में खोला जाता है और मैं यह नहीं करना चाहता हूं। मैं इसे एक नए टैब में खोला जाना चाहता हूं लेकिन वह भी पहले खोला आईई विंडो में। जब मैं अगली बार स्क्रिप्ट चलाता हूं तो मैं इस ऑब्जेक्ट का पुन: उपयोग करना चाहता हूं। मैं एक नई वस्तु नहीं बनाना चाहतामौजूदा आईई इंस्टेंस में ओपन टैब

तो क्या इंटरनेट एक्सप्लोरर के उदाहरणों की जांच करने और इसके उदाहरण का पुन: उपयोग करने के लिए कोई तरीका है ???

मैं एक समाधान के रूप में यह करने की कोशिश की:

सबसे पहले आप पहले से ही चल रहा है इंटरनेट एक्सप्लोरर उदाहरण के लिए संलग्न करने के लिए है:

$ie = (New-Object -COM "Shell.Application").Windows() ` 
    | ? { $_.Name -eq "Windows Internet Explorer" } 

तो फिर तुम नए URL पर जाएं। कहाँ है कि यूआरएल को खोलने पर झंडे पैरामीटर के माध्यम से नियंत्रित किया जाता है:

$ie.Navigate("http://www.google.com/", 2048) 

लेकिन इस नव निर्मित वस्तु $ie पर navigate विधि कॉल करने में सक्षम नहीं हूँ।

उत्तर

10

आप Start-Process उपयोग कर सकते हैं URL खोलने के लिए। यदि ब्राउज़र विंडो पहले से ही खुली है, तो यह एक टैब के रूप में खुल जाएगी।

Start-Process 'http://www.microsoft.com' 
+3

यह मानता है कि इंटरनेट एक्सप्लोरर डिफ़ॉल्ट वेब ब्राउज़र है। –

+0

मैं निश्चित रूप से निश्चित हूं कि 'स्टार्ट-प्रोसेस' यूआरएल को सिस्टम पर जो भी डिफ़ॉल्ट ब्राउजर है, उसे भेजता है। यह फ़ायरफ़ॉक्स के साथ मेरे डिफ़ॉल्ट ब्राउज़र के रूप में मेरे लिए काम करता है। – aphoria

+0

हां, यह डिफ़ॉल्ट ब्राउज़र, क्रोम, एफएफ, आईई या जो भी हो, में खुलता है। हालांकि सवाल आईई पर केंद्रित था, इसलिए मैं बस यह इंगित करना चाहता था कि आईई को डिफ़ॉल्ट ब्राउज़र पर सेट करना होगा। –

8

सबसे पहले आप पहले से ही चल रहा है इंटरनेट एक्सप्लोरर उदाहरण के लिए संलग्न करने के लिए है:

$ie = (New-Object -COM "Shell.Application").Windows() ` 
     | ? { $_.Name -eq "Windows Internet Explorer" } 

तो फिर तुम नए URL Navigate। कहाँ है कि यूआरएल को खोलने पर Flags पैरामीटर के माध्यम से नियंत्रित किया जाता है:

$ie.Navigate("http://www.google.com/", 2048) 

संपादित करें: मामले में 2 या अधिक आईई उदाहरणों (अतिरिक्त टैब के साथ ही अतिरिक्त उदाहरणों गिनती) चल रहे हैं ताकि गणना एक सरणी वापस आ जाएगी, आप सरणी से एक विशेष उदाहरण का चयन करना होगा:

$ie[0].Navigate("http://www.google.com/", 2048) 
+0

पर इस पाया ** लेकिन इस नव निर्मित वस्तु पर विधि नेविगेट फोन करने में सक्षम नहीं हूँ ,अर्थात। $ यानी ** – Rohit2194017

+0

पर आईई ऑब्जेक्ट नव निर्मित नहीं है। आप वास्तव में "नेविगेट विधि" को कॉल करने में सक्षम नहीं हैं? क्या आपको कोई त्रुटि मिलती है? क्या पहला आदेश किसी ऑब्जेक्ट को वापस करता है? 'यानी गेट टाइप()' और 'यानी अर्थात् आउटपुट क्या है Get-Member'? –

+0

पहला आदेश सफल रहा और उसने उसी प्रकार की वस्तु को वापस कर दिया, मैंने इसे पहले से ही सदस्य के साथ चेक किया है, सब कुछ ऑब्जेक्ट सृजन के साथ ठीक दिखता है लेकिन फिर भी नेविगेट फ़ंक्शन को कॉल करने में सक्षम नहीं है, यह एक त्रुटि दिखाता है नीचे दिया गया: विधि आमंत्रण विफल हुआ क्योंकि [System.Objec लाइन पर: 1 char: 14 + $ ie3.navigate <<<< ("www.google।कॉम ") + श्रेणीइन्फो: अमान्य ऑपरेशन + फुलली क्वालिफाइड एरर आईडी: विधि नॉटफाउंड – Rohit2194017

2

आप इस का उपयोग कर सकते हैं यदि Internet Explorer आपका डिफ़ॉल्ट ब्राउज़र नहीं है:

Function Open-IETabs { 
    param (
     [string[]]$Url 
    ) 
    begin { 
     $Ie = New-Object -ComObject InternetExplorer.Application 
    } 
    process { 
     foreach ($Link in $Url) { 
      $Ie.Navigate2($Link, 0x1000) 
     } 
    } 
    end { 
     $Ie.Visible = $true 
    } 
} 

मैं PowerShell.com

संबंधित मुद्दे