Avatar billede coltau Juniormester
21. juni 2021 - 11:04 Der er 2 løsninger

Delphi 7 / SHDocVw_TBL.pas

Jeg vedligeholder et ERP program skrevet i Delphi 7. (Don't ask why) Baggrunden på mainform kan sættes op til at være Browser. Vi har fået dannet en TBL-fil der importerer SHDocVw.dll fra System32.

Vi har et eksempel på at en bestemt hjemmeside ikke kan vises. Vi får ikke fejl i programmet der vises blot en hvid side. (Vi har ikke fundet andre sider der ikke kan vises)

En webudvikler har fortalt mig at vores "browser" kalder hjemmesider som en IE7.
"GET / HTTP/1.1" 200 96198 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"

Jeg får fejlen på min Win7 til trods for at jeg har IE11.

Skal jeg re-importerer SHDocVw.dll for at "opdatere" - altså få dannet en ny TBL-fil som så understøtter IE11?
Avatar billede arne_v Ekspert
21. juni 2021 - 15:41 #1
Altdå du har en COM komponent SHDocVw som du importerer til Delphi og bruger.

Og den virker på de fleste sider men fejler på en bestemt side?

At User-Agent header bliver sat til IE7 betyder ikke noget for komponentens evner til at vise det den får tilbage.

Men hvis den side returnerer ingen ting hvis den detekterer IE7, så passer det jo med det observerede.

Så først skal du checke om den side fejler med IE7 header. Der er masse af værktøjer til at spoofe browser.
Avatar billede coltau Juniormester
15. september 2021 - 12:43 #2
Du må undskylde det sene svar men på baggrund af det du skrev fandt vi en løsning på problemet.
Hvis man bruger SHDocVw.dll i et Delphi 7 program (Bedre kendt som TWebBrowser) Så vil den/WINDOWS som udgangspunkt vælge at emulere IE7. Selvom man har IE11 installeret.

Den eneste måde man kan får den til at emulere IE11 er at angive sin .exe-fil i registreringsdatabasen med denne REG-fil.

Det løste problemet. (Men det er en kortvarig løsning - IE forsvinder jo)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"MyProgram.exe"=dword:00002af9

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"MMyProgram.exe"=dword:00002af9
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