Avatar billede pigbear Nybegynder
28. januar 2009 - 15:57 Der er 2 kommentarer

create af variabel af typen SHDocVw.WebBrowser

Hej,

Kan nogen sige mig hvordan jeg laver et objekt af typen SHDocVw.WebBrowser i runtime


følgende giver en fejl når jeg kalder navigate:

            textBox1.Text = "c:\test.html";
            SHDocVw.WebBrowser w = new SHDocVw.WebBrowser();
            object Zero = 0;
            object EmptyString = "";
            w.Navigate(textBox1.Text,
            ref Zero, ref EmptyString, ref EmptyString, ref EmptyString);

Jeg får følgende fejl besked:
hresult e_fail has been returned from a call to a com component

mvh

PigBear

NB: Hvis jeg placerer en webbrowser designtime på min windowsform, så virker det, men når det laves dynamisk giver det fejl. Jeg må lave det dynamisk idet det er i en website koden skal køre, og der findes webbrowser konponenten ikke i toolbar´en i visual studio
Avatar billede kalp Novice
28. januar 2009 - 16:00 #1
vil du bare downloade en hjemmeside eller hvad?
Benyt WebClient eller HttpWebRequest istedet.

Hvis du vil køre det der i ASP.NET
Avatar billede pigbear Nybegynder
29. januar 2009 - 00:48 #2
Hej,
Nej jeg skal ved hjælp af SHDocVw.WebBrowser få nemmere adgang til de html tags der er anvendt på en side.
Programmet loader nemlig noget html kode fra en database, og sender den til klienten.
Men inden den bliver sendt til klienten, vil jeg have fat på alle <text input values> for at udfylde textfelterne med nogle standardværdier. Det samme skal kunne lade sig gøre ved <select option> controller osv.
På den måde slipper jeg for at gennemsøge html koden og input værdierne, og jeg kan fx bruge følgende kode:

IHTMLDocument2 htmlDoc = (axWebBrowser1.Document) as IHTMLDocument2;
    IHTMLElementCollection elements = htmlDoc.all;

    foreach (IHTMLElement element in elements)
    {

        try
        {

            object input = htmlDoc.all.item(element.id, 0);
            HTMLInputElement ee = (HTMLInputElement)input;
     
            if (element.id.Contains("start_dato"))
                ee.value = "en default value som også er gemt i min db";

            if (element.id.Contains("slut_dato"))
                ee.value = "en default value som også er gemt i min db";



            object selinput = htmlDoc.all.item(element.id, 0);
            HTMLSelectElement se = (HTMLSelectElement)selinput;

            if (element.tagName == "SELECT")
            {
                IHTMLSelectElement select_;
                ee.value = "STK";
           
            }



Som du kan se så viser jeg til min webbrowser control som ligger på min form: (axWebBrowser1.Document) as IHTMLDocument2;, men jeg skal lave dette i min website og der kan jeg ikke finde en browser i min toolbox, og jeg må derfor create objektet i runtime, og det virker desværre ikke.

Tror du det kan laves med en webclient istedet for, eller har du en løsning på min runtime fejl ?

mvh

PigBear
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester