Avatar billede lsgreg Nybegynder
09. juni 2000 - 10:13 Der er 1 kommentar og
2 løsninger

Automation og Internet Explorer

For at starte IE med en URL benytter jeg automation til IE.

Set TheBrowser = CreateObject("InternetExplorer.Application")
TheBrowser.Visible = True
TheBrowser.navigate "www.homepage.com"

Hver gang koden køres, starter en ny IE-proces. Hvordan undgår jeg at IE starter flere gange?
Avatar billede jtn Nybegynder
09. juni 2000 - 15:02 #1
Hej Isgreg

I et modul erklærer du:
Global TheBrowser As Object

Under f.eks en klik event på en knap:
Private Sub Command1_Click()

    On Error Resume Next
 
      ' tjek om IE allerede kører
  Set TheBrowser = GetObject(, "InternetExplorer.Application")
 
  If TheBrowser Is Nothing Then
      ' hvis den ikke kører så lav en ny instans
      Set TheBrowser = CreateObject("InternetExplorer.Application")
  End If

TheBrowser.Visible = True
End Sub


...GetObject var den funktion du drømte om tror jeg...
mvh
Jan
Avatar billede philiph Nybegynder
09. juni 2000 - 19:33 #2
jtn's svar er bestemt ikke forkert, men KAN virke utilsigtet hvis brugeren gør følgende:

Kører dit program, og klikker på knappen (åbner en IE).
Starter en ny IE udenfor dit programs kontrol.
klikker på knappen i dit program igen.
Det er nu helt tilfældigt hvilken af IE'erne den vælger at sende din URL til (der er regler for det, men det er på process niveau).

eller

Hvis der allerede når brugeren første gang klikker på knappen, er en/flere IE'er åben, overtages en tilfældig browser af dit program...

Hvis du nu tænker dig at du første gang laver en ny IE, ligemeget om der er en åben eller ej, så er du sikker på at du får fat i den samme næste gang.

Der er jo også spørgsmålet om hvad du skal gøre når du lukker formularen/programmet. Skal IE vinduet så lukkes (på samme måde som en help vindue), eller forblive åbent?

Det er altsammen et definitionsspørgsmål...
Philip
Avatar billede jtn Nybegynder
09. juni 2000 - 22:59 #3
Philip har fuldstændig ret, det var også det jeg oplevede da jeg legede videre med det bagefter.

Jeg ved ikke hvordan man skal få fat i den eksisterende instans af IE men jeg holder faktisk også mere af Philip's løsning: Opret en ny instans ved første gennemløb og kør videre med den.

/Jan
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
Kurser inden for grundlæggende programmering

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