![]() |
Shellexcecute wird nicht ausgeführt
Hallo zusammen,
gibt es eine Einstellung unter Windows die die Ausführung eines Shellexcecute-Befehls unterdrücken kann? Folgender Befehl sollte den Standardbrowser mit der übergebenen Adresse starten. Funzt auf manchen Rechnern auf anderen Passiert garnix:-(
Code:
Er wird durch ein OnMousedown-Ereignis in einer Listviewkomponente ausgeführt.
tempchar := pchar('http://www.irgendeineAdresse.de');
Shellexecute( Application.MainForm.Handle, nil, tempchar , nil, nil, SW_SHOW); Wer weiss Hilfe? MfG Patrik |
Moin Patrik,
als erstes würde ich mal das Verb mit dazuschreiben
Delphi-Quellcode:
Bei nil sollte zwar, i.d.R., open automatisch genommen werden, aber sicher ist sicher ;-)
Shellexecute( Application.MainForm.Handle, 'open', tempchar , nil, nil, SW_SHOW);
Sollte das auch nicht gehen, schau Dir mal an, ob denn für HTTP überhaupt ein Verknüpfung vorhanden ist. Zu finden unter: HKEY_CLASSES_ROOT\http\shell\open\command |
Dankeschön,
das war das wonach ich gesucht habe! :-) patrik |
Hallo Chris,
war wohl ein wenig vorschnell von mir geschossen. Kann es noch eine andere Möglichkeit geben warum Shellexcecute net ausgeführt wird? Das Problem tritt hauptsächlich bei Systemen auf auf denen AOL installiert ist. Verändert die AOL-Software irgendwas was das Ausführen verhindert? :cry: Patrik |
Moin Patrik,
was steht denn in der Registry? (Pfad siehe oben) |
Hallo Chris,
das mit dem Registrierungspfad ist genau so wie du es beschrieben hast. Bin ein wenig knapp an Ideen:-( MfG patrik |
Moin Patrik,
was jetzt eventuell die AOL Software auf dem Rechner nacht weiss ich leider auch nicht. Ich kann also nicht beurteilen ob die hierbei eine Rolle spielt. Was passiert denn, wenn man bei den Rechnern, bei denen es nicht funktioniert direkt aus dem Favoritenordner eine HTTP Url doppelt klickt? |
Hallo Chris,
ganz nach dem Motto: "wenns net geht fang was neues an" hab ich das Codebeispiel von MathiasSimmack aus dem API-Forum genommen und versucht das zum laufen zu bekommen, aber es will net so recht. Er liest zwar die ie.exe richtig ein aber nix passiert:-(
Code:
Bitte Hilfe :?:
{ ... }
procedure checkReg; var reg : TRegistry; cmd : string; begin reg := TRegistry.Create(KEY_READ); with reg do try RootKey := HKEY_CLASSES_ROOT; if(OpenKey('http\shell\open\command',false)) then try cmd := ReadString(''); finally CloseKey; end; finally Free; end; ShellExecute(0, 'open', pchar(cmd), 'http://www.delphipraxis.net', nil, SW_SHOWNORMAL); end; Patrik Vielleicht hätte ich doch lieber Orgelbauer oder Kerzenschnitzer werden sollen! |
Hallo Chris,
problem hat sich erledigt! Habe anstatt der Shellexecute die RunProcess-Routine von Luckylucy genommen. Funzt wunderbar:-) Danke Patrik :bounce2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz