Téléchargement de fichier

cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009 - 12 janv. 2008 à 11:34
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009 - 13 janv. 2008 à 16:29
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

Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
12 janv. 2008 à 14:59
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
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 00:16
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.
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 00:17
poste ton code..

Neo_Fr
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 00:33
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
0

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

Posez votre question
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 00:43
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
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 00:49
D'accord, merci, j'essaye ça et je poste le résultat ^^
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 00:52
"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
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 00:55
Ta bien mit le code ds le main ou ds une fonction?
Tu peux pas mettre comme ca du code en vrac..

Neo_Fr
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 00:58
Je m'y suis pris comme avec le php en fait :x
C'est pour ça que j'ai besoin d'indications, merci encore
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 01:07
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
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 01:15
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
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
13 janv. 2008 à 01:40
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++ (@++)<!--
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 01:42
D'accord, merci
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 01:44
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
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 01:45
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++ =)
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 01:46
Je dispose de vc++ express ^^
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 01:51
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")
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 01:55
Ds les options du projet ds general a Jeu de caractere tu met:
utiliser le jeu de caracteres multioctets (MBCS)

Neo_Fr
0
cs_Sniperr Messages postés 45 Date d'inscription vendredi 2 septembre 2005 Statut Membre Dernière intervention 28 juin 2009
13 janv. 2008 à 02:01
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)
0
Neo_Fr Messages postés 653 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 10 novembre 2014 2
13 janv. 2008 à 02:04
#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
0
Rejoignez-nous