Téléchargement de fichier

Signaler
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009
-
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009
-
Bonjour,
J'aimerais créer un programme qui permettrait de télécharger un fichier à partir d'une url, qui sauvegarde le fichier dans c:\ et qui l'execute, puis en télécharge un deuxieme 20 secondes plus tard, l'enregistre également dans c:\ et l'éxécute.
Je n'ai absolument aucune idée de comment m'y prendre puisque je commence tout juste le C et la seule chose que j'arrive à faire c'est le classique "Hello world", si quelqu'un connait une source permettant de le faire ou est capable d'en faire une ça m'aiderait beaucoup, merci beaucoup !

31 réponses

Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Salut,
Pout télécharger ton fichier utilise URLDownloadToFile:
http://msdn2.microsoft.com/en-us/library/ms775123(VS.85).aspx

et pour l'excuter utilise ShellExecute:
http://msdn2.microsoft.com/en-us/library/bb762153.aspx

Neo_Fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

Je débute vraiment et je n'arrive pas à compiler mon code, j'ai toujours des erreurs :s.
Si quelqu'un connait une source correspondante à ma recherche cela m'aiderait beaucoup, merci.
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
poste ton code..

Neo_Fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

Le truc c'est que je n'ai encore pas de code, je démarre mon prog par ce téléchargement, en fait, j'aimerais juste tester cette fonction de téléchargement + éxécution dans un programme prévu uniquement dans cette optique pour ensuite pouvoir l'implanter dans d'autres programmes.
Merci encore de l'attention prêtée à ma requête
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Je vois pas ou tu bloques..
Tu dl ton fichier:
URLDownloadToFile(0, "http://xxx.fr/yyy.exe", "C:\\yyy.exe", 0, 0);

Et tu le lance:
ShellExecute(0, "open", "C:\\yyy.exe", 0, 0, SW_SHOWNORMAL);

Si tu cherches pas un peu sur msdn, ti arriveras pas..

Neo_Fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

D'accord, merci, j'essaye ça et je poste le résultat ^^
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

"Compiler: Default compiler
Executing  g++.exe...
g++.exe "C:\Dev-Cpp\Untitled3.cpp" -o "C:\Dev-Cpp\Untitled3.exe"    -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include"  -I"C:\Dev-Cpp\include\c++\3.4.2\backward"  -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32"  -I"C:\Dev-Cpp\include\c++\3.4.2"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib"
C:\Dev-Cpp\Untitled3.cpp:1: error: expected constructor, destructor, or type conversion before '(' token
C:\Dev-Cpp\Untitled3.cpp:1: error: expected `,' or `;' before '(' token
C:\Dev-Cpp\Untitled3.cpp:2: error: expected constructor, destructor, or type conversion before '(' token
C:\Dev-Cpp\Untitled3.cpp:2: error: expected `,' or `;' before '(' token

Execution terminated"

Code :
URLDownloadToFile(0, "http://www.google.fr/intl/fr_fr/images/logo.gif", "C:\\logo.gif", 0, 0);
ShellExecute(0, "open", "C:\\logo.gif", 0, 0, SW_SHOWNORMAL);

Je débute vraiment dans la programmation :x je maîtrise uniquement le php, donc désolé si ma requête pourrait paraître peu pertinente :/ Merci de votre aide
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Ta bien mit le code ds le main ou ds une fonction?
Tu peux pas mettre comme ca du code en vrac..

Neo_Fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

Je m'y suis pris comme avec le php en fait :x
C'est pour ça que j'ai besoin d'indications, merci encore
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Ds un projet C en mode console

#include <windows.h>
#include
#include <shellapi.h>

int main(void)
{
URLDownloadToFile(0, "http://www.google.fr/intl/fr_fr/images/logo.gif", "C:\\logo.gif", 0, 0);
ShellExecute(0, "open", "C:\\logo.gif", 0, 0, SW_SHOWNORMAL);
return 0
}

et ds les options du projet (ALT+P) tu va ds parameters et ds linker tu met
-lshell32
-lurlmon

Neo_Fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

J'ai fais comme indiqué, j'obtient l'erreur suivante à la compilation :
2 C:\Dev-Cpp\main.c urlmon.h: No such file or directory.
 C:\Dev-Cpp\main.c In function `main':
11 C:\Dev-Cpp\main.c syntax error before '}' token
 C:\Dev-Cpp\Makefile.win [Build Error]  [main.o] Error 1
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Met un ; après le return 0

Ouvre vite une livre de C. On ne peut pas commencer dans ce langage en se lançant tête baissée.

C++ (@++)<!--
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

D'accord, merci
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Je crois que tu va etre obligé de dl VC++ Express, il n'y a pas de urlmon.h et .lib ou .a sous Devcpp..

Neo_fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

Et concernant le "4 C:\Dev-Cpp\main.c urlmon.h: No such file or directory. ", yaurait-il une solution ? Merci pour l'aide apportée, lundi je part achetter un bon bouquin c++ =)
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

Je dispose de vc++ express ^^
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

Sous Vc++ :
.\Projet1.cpp(10) : error C2664: 'URLDownloadToFileW' : cannot convert parameter 2 from 'const char [48]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
.\Projet1.cpp(11) : error C2664: 'ShellExecuteW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

(J'ai ajouté les options du linker dans "additional options")
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
Ds les options du projet ds general a Jeu de caractere tu met:
utiliser le jeu de caracteres multioctets (MBCS)

Neo_Fr
Messages postés
45
Date d'inscription
vendredi 2 septembre 2005
Statut
Membre
Dernière intervention
28 juin 2009

LINK : warning LNK4044: unrecognized option '/lshell32'; ignored
LINK : warning LNK4044: unrecognized option '/lurlmon'; ignored
LINK : warning LNK4044: unrecognized option '/lshell32'; ignored
LINK : warning LNK4044: unrecognized option '/lurlmon'; ignored
Projet1.obj : error LNK2028: unresolved token (0A000013) "extern "C" struct HINSTANCE__ * __stdcall ShellExecuteA(struct HWND__ *,char const *,char const *,char const *,char const *,int)" (?ShellExecuteA@@$$J224YGPAUHINSTANCE__@@PAUHWND__@@PBD111H@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
Projet1.obj : error LNK2028: unresolved token (0A000014) "extern "C" long __stdcall URLDownloadToFileA(struct IUnknown *,char const *,char const *,unsigned long,struct IBindStatusCallback *)" (?URLDownloadToFileA@@$$J220YGJPAUIUnknown@@PBD1KPAUIBindStatusCallback@@@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
Projet1.obj : error LNK2019: unresolved external symbol "extern "C" struct HINSTANCE__ * __stdcall ShellExecuteA(struct HWND__ *,char const *,char const *,char const *,char const *,int)" (?ShellExecuteA@@$$J224YGPAUHINSTANCE__@@PAUHWND__@@PBD111H@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
Projet1.obj : error LNK2019: unresolved external symbol "extern "C" long __stdcall URLDownloadToFileA(struct IUnknown *,char const *,char const *,unsigned long,struct IBindStatusCallback *)" (?URLDownloadToFileA@@$$J220YGJPAUIUnknown@@PBD1KPAUIBindStatusCallback@@@Z) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
Messages postés
653
Date d'inscription
mardi 6 décembre 2005
Statut
Membre
Dernière intervention
10 novembre 2014
2
#pragma comment(linker, "/entry:_WinMain")
int WINAPI _WinMain(void)
{
URLDownloadToFile(0, "http://www.google.fr/intl/fr_fr/images/logo.gif", "C:\\logo.gif", 0, 0);
ShellExecute(0, "open", "C:\\logo.gif", 0, 0, SW_SHOWNORMAL);
ExitProcess(0);
}

et ds le linker c'est urlmon.lib et shell32.lib..

Neo_Fr