Ouvrir une URL en C mais avec tout OS...

Fran6web Messages postés 18 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 2 mars 2008 - 23 févr. 2006 à 22:08
dbotton Messages postés 15 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 23 novembre 2006 - 16 sept. 2006 à 21:22
Bonjour, j'ai un petit problème avec mon code... Je voudrais ouvrir une page internet (URL) avec mon code mais malheureusement les seules réponses trouvées correspondent seulement pour windows...

Voici ce que j'ai trouvé:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(int argc, char *argv[])
{

system("start http://www.cppfrance.com");
return 0;
}

ou:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main(int argc, char *argv[])
{

ShellExecute(NULL, NULL, "http://www.siteduzero.com/", NULL, NULL, SW_SHOWNORMAL);
return 0;
}

Malheureusement se ne sont pas des solutions portable pour Linux et Mac... Avez-vous la solution?

Youpi yadi

9 réponses

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
24 févr. 2006 à 08:20
La fonction system n'est pas portable?

YOYO, @+.
YOYO
0
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018
24 févr. 2006 à 09:03
Le system je doute qu'il ne soit pas portable,mais en effet le ShellExecute ne l'est pas je crois.
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
24 févr. 2006 à 09:08
Ah c'est bien ce qu'il me semblait. On est donc déjà 2 à penser que system est portable et bien entendu ShellExecute pas du tout.
En attente d'autres confirmations pourquoi pas.

YOYO, @+.
YOYO
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
24 févr. 2006 à 10:37
Je confirme que ShellExucute n'est pas portable mais bien propre à l'API Win32.

@+
Arnotic,
Admin CS,
http://dev.winsysdev.com
MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fran6web Messages postés 18 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 2 mars 2008
24 févr. 2006 à 10:44
system n'est pas portable du tout! Il est aussi propre à dos...

Mais sinon au lieu d'avoir un code qui marche pour tout OS, vous n'auriez pas un code qui pourrait faire ce que je cherche pour Linux?

Youpi yadi
0
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
24 févr. 2006 à 11:19
Qu'entends-tu par portable exactement ?
On dirait que tu voudrais que les arguments soient exactement les mêmes sous win et linux je me trompe ?
Parce que sous Linux la fonction system existe aussi et elle a la même action.
Seulement comme elle exécute ce que tu lui mets en arguments en ligne de commande, forcément le DOS est différent d'Unix.

YOYO, @+.
YOYO
0
zaibacker Messages postés 97 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 24 janvier 2018
24 févr. 2006 à 11:20
Je crois que tu peux utiliser aussi bien l'un que l'autre à condition de marquer sous linux #ifndef __WIN32__ ou quelquechose du genre mais j'en suis pas sur. En tout cas moi j'utilise la bibliothèque wxwidgets qui me fourni la fonction wxExecute. Cette bibliotheque est par contre compatible Windows/unix. Si je fais wxExecute(wxT([),wxexec_async,null/ http://www.cppfrance.com),wxEXEC_ASYNC,NULL]); ca marche très bien chez moi.
0
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006
24 févr. 2006 à 17:30
system est portable : voir
http://c.developpez.com/faq/cpp/?page=divers#DIVERS_system

si non :
les fonctions de type exec*() et spawn() définies dans les headers / pour les systèmes UNIX/POSIX (Notez qu'elles sont aussi disponibles avec un underscore préfixé à leur nom sous Visual C++)

Bonne soiré
0
dbotton Messages postés 15 Date d'inscription dimanche 30 novembre 2003 Statut Membre Dernière intervention 23 novembre 2006
16 sept. 2006 à 21:22
Une petite question à ce sujet (ouverture d'url, plus que portabilité)... J' ai fait quelques applications en VB où, pour ouvrir une url, j'utilisais un composant Microsoft Internet Transfer Component, avec un objet Inet.
 
Pour VC++, les deux possibilités ici proposées (System et ShellExecute) sont séduisantes puisque je n' ai encore trouvé aucune autre solution (peut-être pas suffisamment cherché, ou pas au bon endroit Toutefois), mais ca serait encore mieux si je pouvais transmettre (comme avec Inet en VB) un username et password que le serveur web (dans mon cas:  serveur web intégré de type Apache d'une caméra IP) puisse demander et interpréter, et ce de facon transparente, sans voir s'ouvrir une fenêtre d'Internet Explorer.
un truc du genre de
   Inet.UserName = "user"
   Inet.Password = "password"

Croyez-vous ca possible ? Je suppose qu'il doit y avoir une solution, mais passe-t'elle par "System" ou "ShellExecute", ou par une autre solution ?
Merci d'avance pour votre aide.
0
Rejoignez-nous