Wie man IE8 / 9 aktive Reiter HTML-Quellcode von C # erhalten
-
27-09-2019 - |
Frage
Ich versuche, ein Programm in C # in Visual Studio zu erstellen, die HTML-Quellcode eines aktuellen geöffnet erwerben würde (oder ausgewählte oder alle) Registerkarte (s) im Internet Explorer 8 / (bevorzugt) 9. Ich bin müde des Kopierens von - browser-> Quelle anzeigen, alt + a, alt + c, Programm -> alt + v Jeder bekam eine Idee, wie es zu lösen?
Lösung
Nun, es gibt keine einfache Lösung für diese denke ich, Vielleicht sollten Sie Kopieren und Einfügen fortzusetzen. Auf jeden Fall ist es das, was ich fand das Surfen im Internet: ( http: //www.experts -exchange.com/Microsoft/Development/Q_23767759.html )
{ // used spy++ to get the names of these guys
// get the handle to the IE toolbar
childHandle = FindWindowEx(IEwindowHandle, IntPtr.Zero, "WorkerW", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
//get the handle to the address bar on IE
childHandle = FindWindowEx(childHandle, IntPtr.Zero, "ReBarWindow32", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
// get a handle to comboBoxEx32
childHandle = FindWindowEx(childHandle, IntPtr.Zero, "ComboBoxEx32", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
// get a handle to combo box
childHandle = FindWindowEx(childHandle, IntPtr.Zero, "ComboBox", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
//get handle to edit
childHandle = FindWindowEx(childHandle, IntPtr.Zero, "Edit", IntPtr.Zero);
if (childHandle != IntPtr.Zero)
{
// now to get the URL we need to get the Text - but first get the length of the URL
int length = SendMessage(childHandle, WM_GETTEXTLENGTH, 0, 0);
length += 1; // because the length returned above included 0
StringBuilder text = new StringBuilder(length); // need stringbuilder - not string
int hr = SendMessage(childHandle, WM_GETTEXT, length, text); // get the URL
strURL = text.ToString();
}
}
}
}
Nun, da Sie die URL zugegriffen haben, senden Sie eine HTTP-GET-Request Sie die Seite Quelle im Klartext erhalten.