2011-12-09 18 views
5

मेरे पास मेरा एप्लिकेशन है जो विशिष्ट ब्राउज़र के साथ वेब ब्राउज़र को ट्रिगर करता है। मेरे प्रोग्राम समाप्त होने के बाद मैं खोले गए वेब पेज/टैब को बंद करना चाहता हूं ..प्रत्येक टैब के पीआईडी ​​के साथ इंटरनेट एक्सप्लोरर टैब का यूआरएल कैसे प्राप्त करें?

पैरामीटर ए के साथ एक EXE फ़ाइल को कॉल करके। प्रक्रिया का नाम बी। स्ट्रिंग यूआरएल

विस्तृत समस्या How to kill firefox child process/tab from Java/C++

मैं सी # तरीका इस्तेमाल किया में मौजूद ...

मैं सभी टैब की प्रक्रिया आईडी मिल करने में सक्षम हूँ ..

foreach (Process theprocess in processlist) { 
    if (theprocess.ProcessName == "iexplore") { 
     Console.WriteLine("Process: {0}\tID: {1}\tWindow name: {2}", 
      theprocess.ProcessName, theprocess.Id, theprocess.MainWindowTitle 
     ); 
    } 
} 

वर्तमान में मैं प्रक्रिया के केवल विंडो शीर्षक प्राप्त कर सकता हूं .... और IE8 में मुख्य प्रक्रिया का केवल एक विंडो शीर्षक दिखाई देता है ..

Prov मेरे पास प्रत्येक टैब की बोलियां हैं, टैब के यूआरएल को कैसे ढूंढें ... और केवल उस टैब को मार दें ??

मैं Access is denied - when trying to get the url (text) from address bar's handle

SHDocVw का उपयोग करने से यह मदद मिली; । ।

foreach (इंटरनेट एक्सप्लोरर यानी नई शैलविंडोज़ क्लास() में कंसोल। राइटलाइन (यानीInst.LocationURL);

उत्तर

8

IE7 और बाद के संस्करणों में, कोड के नीचे होगा केवल उस टैब को मार दें जिसमें उसके यूआरएल में मिलान स्ट्रिंग है।

foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindows()) 
    { 
     String url = ieInst.LocationURL; 
     if (url.Contains("google")) 
     { 
      ieInst.Quit(); 
     } 
    } 

कोई विशिष्ट टैब केंद्रित करने के लिए कोड है:

foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindows()) 
    { 
     String url = ieInst.LocationURL; 
     if (url.Contains("google")) 
     { 
      int val = ieInst.HWND; 
      IntPtr hwnd = new IntPtr(val); 
      ShowWindow(hwnd, SW_MAXIMISE); 
      SetForegroundWindow(hwnd); 
     } 
    } 
+0

महान जानकारी, लेकिन क्यों आप अपने आप से बात कर रहे हैं? : ओ/ –

+2

कोज़ evryon इसे देखा और कोई शरीर जवाब दिया :) जब तक मैं खुद को समाधान और साझा टैट भी मिला: पी –

+2

इस कोड का उपयोग दो त्रुटियों फेंक देगा। "ShellWindowsClass()" के बजाय "ShellWindows()" का उपयोग करना चाहिए। –

3

प्रत्येक आईईएक्सप्लोरर उदाहरण का यूआरएल प्राप्त करने का एक तरीका है !!

एक संदर्भ जोड़ें "माइक्रोसॉफ़्ट इंटरनेट नियंत्रण" परियोजना में।

कोड का टुकड़ा

**foreach (SHDocVw.InternetExplorer ieInst in new SHDocVw.ShellWindowsClass()) 
     { 
      System.Console.WriteLine(ieInst.LocationURL); 
     }** 

exe ​​और Interop.SHDocVw.dll उत्पन्न है

यह काम करेंगे ... :)

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