Gå till innehåll

Automation av IE8 via vbscript funkar inte


ReadMe

Recommended Posts

Följande skript funkar utan problem i Windows XP och IE6:

Set oIE=CreateObject("InternetExplorer.Application")

oIE.visible=true

oIE.Navigate2("http://webmail.telia.com"'>http://webmail.telia.com")

Do While oIE.ReadyState <> 4

WScript.Sleep 100

Loop

oIE.document.logininfo.u.value="epostadress"

oIE.document.logininfo.password.value="lösenord"

oIE.document.logininfo.submitName.Click

I Vista och IE7 funkar det inte på grund av UAC, en ny instans av webbläsaren skapas när rad 3 exekveras. Man kan få skriptet att fungera om man antingen stänger av UAC (vilket jag inte vill) eller att man anger följande webbadresserna som betrodda; http://webmail.telia.com och https://webmail.telia.com

Jag installerade engelsk IE8 RC1 i min svenska Vista Business x64 i dag och skriptet beter sig ännu sämre i den. Varje användning av objektet oIE resulterar i en ny (osynlig) instans av webbläsaren. Vid raden Do While iIE.REadyState <> 4 blir det tvärstopp. Felmeddelandet med nr 80010108 visas.

Att stänga av UAC löser problemet. Det andra alternativet (att ange webbadresser som betrodda) fungerar inte!

Kan någon här förklara vad som skiljer IE7 och IE8 i detta avseende. Och hur löser man mitt scripting/automationsproblem?

Länk till kommentar
Dela på andra webbplatser

Svaret ser du kanske i Aktivitetshanteraren. ;) IE8 har flera processer igång, och en ny process startar troligen då du kör skriptet.

http://www.alltomxp.se/smatt-o-gott/intern...-nyheterna.html

Tack, jag kände redan till det du påpekar och det är inte svaret på min fråga. Jag skrev min inledande fråga just på grund av att flera nya instanser startas med skriptet, troligen tack vare ökad säkerhet i IE8. Min fråga står kvar; vad mera kan man göra i IE8 för att skriptet inte skall skapa nya instanser av IE8? UAC vill jag inte stänga av, och att ange betrodda platser löser inte längre mitt problem.

Edit: By the way; Ändra-knappen i detta forum verkar inte funka i IE8, det visas en tom meny i stället för de ordinarie valen Full redigering och Snabbredigering.

Länk till kommentar
Dela på andra webbplatser

Set oIE=CreateObject("InternetExplorer.Application")

oIE.visible=true

oIE.Navigate2("http://webmail.telia.com")

Do While oIE.ReadyState <> 4

WScript.Sleep 100

Loop

oIE.document.logininfo.u.value="epostadress"

oIE.document.logininfo.password.value="lösenord"

oIE.document.logininfo.submitName.Click

Vad jag kan se så vill du helt enkelt logga in på din webmail med rätt användarnamn och lösen automatiskt? Det finns ju redan en funktion för detta i dom flesta läsare där man trycker på ett trollspö så skrivs automatiskt rätt lösen och användarnamn in och man går till rätt sida. Men vill du absolut ha det som ett script som öppnar läsaren och går in på mailen så verkar denna koden inte alls så genomtänkt. Det är ju egentligen bara att öppna IE med ett argument i form av en adress, så går den dit. Vill du ha hjälp kan jag nog mixtra ihop något som fungerar, jag har ju IE8 betan.

Edit: By the way; Ändra-knappen i detta forum verkar inte funka i IE8, det visas en tom meny i stället för de ordinarie valen Full redigering och Snabbredigering.

IE är en skitläsare där utvecklarna är för lata för att läsa standarderna, vilket resulterar i att vissa sidor inte visas rätt.

Länk till kommentar
Dela på andra webbplatser

Vad jag kan se så vill du helt enkelt logga in på din webmail med rätt användarnamn och lösen automatiskt?

I detta exempel; ja.

Det finns ju redan en funktion för detta i dom flesta läsare där man trycker på ett trollspö så skrivs automatiskt rätt lösen och användarnamn in och man går till rätt sida.

Jag vill inte använda den funktionen du beskriver, det är skriptet som skall förse applikationen (IE) med fältvärden.

Men vill du absolut ha det som ett script som öppnar läsaren och går in på mailen så verkar denna koden inte alls så genomtänkt.

På vilket sätt menar du att jag skall skripta automation av IE? Powershell?

Det är ju egentligen bara att öppna IE med ett argument i form av en adress, så går den dit. Vill du ha hjälp kan jag nog mixtra ihop något som fungerar, jag har ju IE8 betan.

Att öppna IE med argument som öppnar en viss webbadress är trivialt, men om du också menar att argumenten användare och lösenord kan bifogas i ett sådant anrop, så är jag tacksam för din hjälp!

IE är en skitläsare där utvecklarna är för lata för att läsa standarderna, vilket resulterar i att vissa sidor inte visas rätt.

Tack för din åsikt, men det är off topic.

Ett förtydligande: Mitt skript är bara ett exempel på vad jag brukar göra (lösenord lägger jag normalt sett aldrig i skript!). Jag brukar ofta använda automation på IE (och andra applikationer) med hjälp av vbscript. Googla lite så skall du se att det finns miljontals skript där ute som använder automation.

Detta verkar i alla fall vara knepigt värre att använda automation med IE8 som, i än högre grad än IE7, startar upp nya instanser när den inte gillar det som skriptet vill utföra.

Min fråga är alltså fortfarande; vilka säkerhetsinställningar gäller i IE8 för att mitt skript skall fungera?

Länk till kommentar
Dela på andra webbplatser

Tack för din åsikt, men det är off topic.

Det är faktiskt ingen åsikt utan ett citat från utvecklarna själva. Kolla in det på channel9.msdn.com (Microsoft).

Man anser det vara för många papper för att läsa... lata idioter.

Länk till kommentar
Dela på andra webbplatser

Okej så du verkar vara fast besluten. Jag skulle då rekommendera dig att läsa dokumentationen:

http://msdn.microsoft.com/en-us/library/aa752094(VS.85).aspx

Som du ser finns där en hel drös frivilliga argument du missat. Bara att hugga in ;)

Den dokumentationen har jag redan läst och begrundat. Men som jag tidigare skrivit så är det inte enbart navigeringen som är problemet. Redan första referensen till oIE-objektet i mitt skript skapar en ny instans, vilket inte händer i IE7.

TAck för ditt engagemang men det verkar som om du inte har svaret på min ursprungliga frågeställning. Någon annan?

Länk till kommentar
Dela på andra webbplatser

Det är faktiskt ingen åsikt utan ett citat från utvecklarna själva. Kolla in det på channel9.msdn.com (Microsoft).

Man anser det vara för många papper för att läsa... lata idioter.

Din referens till åsikten är off topic i den här tråden.

Länk till kommentar
Dela på andra webbplatser

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...