Welcher Header + ShelExecute
-
Moin,
Ich möchte mit Hilfe eines Programms eine URL mit dem Standradbrowser öffnen. Nach einigem Gesuche fand ich heraus dass ich dazu am besten die Funktion ShellExecute verwende.Jeodch liefert der Compiler immer:
»ShellExecute« wurde in diesem Gültigkeitsbereich nicht definiert
Meine Frage also, welche Headerdatei muss ich einbinden und/oder wo finde ich eine Übersicht über die Abhängingkeiten von Funktionen und Headern?
-
Allgemeines Vorgehen zum Suchen des Headers:
Mit Google suchen nach "c++ funktionsname". Wenn man was aus std:: sucht, besser nach "c++ reference funktionsname". Wenn man was aus der WinApi sucht, "msdn funktionsname".
http://lmgtfy.com/?q=msdn+ShellExecute
Unten steht dannMinimum DLL Version shell32.dll version 3.51 or later Custom Implementation No Header shellapi.h Import library shell32.lib Minimum operating systems Windows NT 3.1, Windows 95 Unicode Implemented as ANSI and Unicode versions.
also <shellapi.h>
-
Vielen Dank,
So ähnlich bin ich vorgegangen und dabei auch auf shellapi.h gestoßen.
Allerdings liefert der Compiler:
shellapi.h: No such file or directory
-
kajam schrieb:
Vielen Dank,
So ähnlich bin ich vorgegangen und dabei auch auf shellapi.h gestoßen.
Allerdings liefert der Compiler:
shellapi.h: No such file or directoryKomisch, die hab ich sogar auf WinXP mit MinGW.
Welcher Compiler? Welches Betriebssystem?
-
g++ unter Ubuntu 9.04
summe.cpp:4:22: Fehler: shellapi.h: No such file or directory summe.cpp: In function »int main()«: summe.cpp:25: Fehler: »ShellExecute« wurde in diesem Gültigkeitsbereich nicht definiert
-
kajam schrieb:
g++ unter Ubuntu 9.04
summe.cpp:4:22: Fehler: shellapi.h: No such file or directory summe.cpp: In function »int main()«: summe.cpp:25: Fehler: »ShellExecute« wurde in diesem Gültigkeitsbereich nicht definiert
Das erklärt alles. Die <shellapi.h> gehört zu Windows und ist auf normalen Betriebssystemen nicht üblich.
-
*Grummel*
Nochmals Danke.
Welche Alternative Mtehode bietet sich zum Ansteuern des Browsers an?System(http*) wollte auch nicht funktionieren.
-
Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich hab keine Ahnung. Und 5 Minuten googlen brachte mich der Erkenntnis auch gar nicht näher.
Ich habe den Thread mal nach linux verschoben, die wissen das bestimmt eher.
-
Dafür gibt es die BROWSER Umgebungsvariable.
edit: bzw. alternativ ruft man einfach das "Programm" x-www-browser auf und übergibt die URL als Parameter.
edit2:
Hmm, das scheint doch alles nicht so trivial zu sein.Also am besten macht man es wohl so: Man schaut, ob die BROWSER Umgebungsvariable gesetzt ist. Wenn ja, dann behandelt man die. Dann schaut man ob "x-www-browser URL" funktioniert. Wenn das auch nicht funktioniert, sollte man "xdg-open URL" ausprobieren.
edit3: Wobei xdg-open URL wohl reichen sollte, auf einem modernen Desktop System.
-
-
Herrlich
Die xdg-open Methode funktioniert wie geölt.
Ich kann mich nicht genug bedanken.