"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
1
2
| ShellExecute(0, 'open', 'IExplore.exe', 'www.google.com',
'', SW_SHOWMAXIMIZED); |
Verwijderd
het gaat om de standaard browser, niet om IE, als je netscape/opera/mozilla als standaard browser hebt ingesteld werkt dit uiteraard niet heOp donderdag 20 september 2001 12:03 schreef DiFool het volgende:
Ik heb geen IE 6.0 maar werkt dit niet?
code:
1 2ShellExecute(0, 'open', 'IExplore.exe', 'www.google.com', '', SW_SHOWMAXIMIZED);
Verwijderd
Staat dat niet in de registry op:
HKEY_CLASSES_ROOT\htmlfile\shell\open\command
Dat doe ik ook met de bovenstaande functie, maar ik wil de keuze hebben dat hij wel of niet in een nieuw venster komt.Op donderdag 20 september 2001 12:40 schreef cartman3380 het volgende:
Je moet gewoon het adres uitvoeren en niet IExplorer.exe.
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
Je moet het via DDE doen heb ff gezocht en op borland.com stond een perfecte sample heb em ff gebouwd en geprobeerd en hij werkt goed je kan hem hier downloaden ...
Sample Website in new window
Succes verder.
Thanks voor de hulp, ik zal er vanavond even beter naar kijken. Zit nu namelijk op school.Op donderdag 20 september 2001 14:05 schreef 0101-Run het volgende:
Hoi Jelmer,
Je moet het via DDE doen heb ff gezocht en op borland.com stond een perfecte sample heb em ff gebouwd en geprobeerd en hij werkt goed je kan hem hier downloaden ...
Sample Website in new window
Succes verder.
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
Note: Not all versions of Internet Explorer will respond with a new window.
Cogito Ergo Credo
Wat bedoel je precies, voorbeeld???Op donderdag 20 september 2001 22:55 schreef jopiek het volgende:
beste is gewoon executefile (fmxutils.pas) uit te voeren met de url als param... werkt over het algemeen prima...
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
ik dacht dat jij dat toch moest begrijpen als delphi diehard:Op donderdag 20 september 2001 23:26 schreef jelmervos het volgende:
[..]
Wat bedoel je precies, voorbeeld???
hier haal ik een url uit een db veld als je op een knop drukt en voer deze uit in de standaard browser...
var url : string;
url := Hoofdtabel.Fields[ofieldnumber].AsString;
if url <> '' then
ExecuteFile(url, '', '', sw_show);
Cogito Ergo Credo
Hiermee start je gewoon de URL op, en pakt Windows het programma wat aan http vast zit. Werkt wel goed, maar ik kan dan niet de keuze maken tussen wel of niet een nieuw venster van de browser. ExecuteFile komt op hetzelfde neer als ShellExecute toch?Op vrijdag 21 september 2001 08:01 schreef jopiek het volgende:
[..]
ik dacht dat jij dat toch moest begrijpen als delphi diehard:
hier haal ik een url uit een db veld als je op een knop drukt en voer deze uit in de standaard browser...
var url : string;
url := Hoofdtabel.Fields[ofieldnumber].AsString;
if url <> '' then
ExecuteFile(url, '', '', sw_show);
"The shell stopped unexpectedly and Explorer.exe was restarted."
Ja, zeker. Ziet er goed uit. Ga het zeker gebruiken als voorbeeld voor mijn eigen code.Op vrijdag 21 september 2001 11:34 schreef 0101-Run het volgende:
heb je die sample nog geprobeerd jelmer ??
"The shell stopped unexpectedly and Explorer.exe was restarted."
Ik zit steeds de oplossing te zoeken bij DDE:
1
2
3
4
| if DDEConv.SetLink('iexplore', 'WWW_OpenURL') then
if DDEConv.RequestData(URL + ',,0') <> nil then
if DDEConv.SetLink('iexplore', 'WWW_Activate') then
URLFired := DDEConv.RequestData('0,0') <> nil; |
Maar het vreemde is dat als er geen IE is geopend, hij er gelijk 2 opent. Is er wel een IE geopend dat werkt het perfect.
Wat ik dus wil is dat hij een URL (http://) in een nieuw venster opent van de standaard browser. Is deze nog niet gestart, dan starten. Iemand?
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
Nee, dat bedoel ik dus totaal niet.Op maandag 01 oktober 2001 12:23 schreef DiFool het volgende:
Bedoel je dat hij naar www.microsoft.com/windows/ie_intl/nl/download/ gaat? Dat is een feature van microsoft volgens mij
"The shell stopped unexpectedly and Explorer.exe was restarted."
Verwijderd
1
2
| if UrlFired = false then
WinExec(StrPCopy(@p, URL), SW_SHOWNORMAL); |
weg
Zoals DiFool eerder al aangaf ligt de oplossing in het Windows register. Niet in de class htmlfile, maar http. Door de volgende key uit te lezen, kun je achter het opstart comando komen dat gebruikt wordt als je alleen een url laat uitvoeren.Delphi schreef op 01 oktober 2001 @ 12:10:
Wat ik dus wil is dat hij een URL (http://) in een nieuw venster opent van de standaard browser. Is deze nog niet gestart, dan starten. Iemand?
1
| HKEY_CLASSES_ROOT\http\shell\open\command |
Misschien kan je bij het starten van de URL eerst deze waarde in het register aanpassen, en daarna terug zetten op de oude waarde. Maar ik weet niet of IE elke keer in het register kijkt, of dat alleen bij het opstarten van IE doet.
In het eerste geval gaat dit heerlijk werken, in het 2e geval niet.
Dan zou je met FindWindow kunnen zoeken naar een IE venster (caption = "* - Microsoft Internet Explorer" oid).
Als er nix gevonden is doe je ShelExec met de url.
Is er wel 1 gevonden, dan voer je IE.exe uit als het in een nieuw scherm moet komen, en als hij in een huidig scherm moet komen.....
tja. Dan moet je effe goed doorzoeken
If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router
Dit werkt als een tiet!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| procedure TForm1.Button1Click(Sender: TObject);
Function StartFile(Const FileNaam, Param : String) : Boolean;
Begin
Result := ShellExecute(GetDesktopWindow(), nil, PChar(FileNaam), PChar(Param), nil, SW_NORMAL) > 32;
End;
var Reg: TRegistry;
OldValue: Integer;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Internet Explorer\Main', False);
OldValue := Reg.ReadInteger('AllowWindowReuse');
If rbHuidig.Checked Then Reg.WriteInteger('AllowWindowReuse', 1)
else Reg.WriteInteger('AllowWindowReuse', 0);
StartFile('http://www.google.com', '' );
Sleep(1000);
Reg.WriteInteger('AllowWindowReuse', OldValue);
end; |
Iig met XP en IE 6
[ Voor 14% gewijzigd door Guillome op 04-02-2004 21:52 ]
If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router
Waarom zoveel code eromheen verzinnen als het gewoon een *instelling* van IE zelf is? Als de gebruiker het vervelend vindt, moet hij/zij die optie maar omzetten. Simpel genoeg toch? Het is ook niet aan jou als programmeur om te bepalen of een URL in een nieuw venster geopend wordt. Je opent gewoon een URL, meer niet.
[ Voor 25% gewijzigd door _Thanatos_ op 05-02-2004 01:40 ]
日本!🎌