मैं आईई के पता बार से यूआरएल निकालने की कोशिश कर रहा हूं। (विंडोज 7 पर आईई 8) निम्नलिखित सी # कोड का उपयोग कर।एक्सेस अस्वीकार कर दिया गया है - पता बार के हैंडल से यूआरएल (टेक्स्ट) प्राप्त करने का प्रयास करते समय
static string GetUrlFromIE()
{
IntPtr windowHandle = APIFuncs.getForegroundWindow();
IntPtr childHandle;
String strUrlToReturn = "";
//try to get a handle to IE's toolbar container
childHandle = APIFuncs.FindWindowEx(windowHandle, IntPtr.Zero, "WorkerW", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
//get a handle to address bar
childHandle = APIFuncs.FindWindowEx(childHandle, IntPtr.Zero, "ReBarWindow32", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
childHandle = APIFuncs.FindWindowEx(childHandle, IntPtr.Zero, "Address Band Root", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
childHandle = APIFuncs.FindWindowEx(childHandle, IntPtr.Zero, "Edit", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
strUrlToReturn = new string((char)0, 256);
GetWindowText(hwnd, strUrlToReturn , strUrlToReturn.Length);
}
}
}
}
return strUrlToReturn;
}
GetWindowText कॉल "एक्सेस अस्वीकार कर दिया गया है" अपवाद देता है। व्यवस्थापक विशेषाधिकारों के साथ ऐप चलाने पर, यह "सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता" फेंकता है।
कोई विचार?
धन्यवाद! SHDocVw एक शानदार संदर्भ है! हालांकि, मुझे लगता है कि मुझे GetText पद्धति से चिपकना होगा क्योंकि मुझे विंडोज़ - क्रोम, फ़ायरफ़ॉक्स, सफारी, ओपेरा के लिए लोकप्रिय ब्राउज़र में एक ही चीज़ करने की ज़रूरत है। मेरी योजना प्रत्येक ब्राउज़र के लिए अपने एड्रेस बार हैंडल से यूआरएल निकालने के लिए एक कस्टम विधि लिखना था। – Sameet