新手的问题

nu 2006-07-05 07:56:01
知道一个url,比如:http://www.abc.com/files/xxx.exe,如何用vc编程实现把它下载到本地然后执行,要用winsock吗,给点指导性意见就行了,多谢。当然如果能给一个程序框架就更好了:)
...全文
121 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nu 2006-07-07
谢谢各位。在用CreateProcess的时候最后两个参数怎么设置呀,特别是倒数第二个,是一个STARTUPINFO的struct,我是这么写的:

STARTUPINFO si;
PROCESS_INFORMATION pi;

si.cb = sizeof(si);
si.lpReserved = NULL;
si.lpDesktop = "/";
si.lpTitle = NULL;
si.dwX = STARTF_USEPOSITION;
si.dwY = STARTF_USEPOSITION;
si.dwXSize = STARTF_USESIZE;
si.dwYSize = STARTF_USESIZE;
si.dwXCountChars = STARTF_USECOUNTCHARS;
si.dwYCountChars = STARTF_USECOUNTCHARS;
si.dwFillAttribute = STARTF_USEFILLATTRIBUTE;
si.dwFlags = STARTF_FORCEOFFFEEDBACK;
si.wShowWindow = STARTF_USESHOWWINDOW;
CreateProcess("d:\\setup.exe",NULL,NULL,NULL,false,CREATE_SUSPENDED,
NULL,NULL,&si,&pi);

好烦琐呀,而且有问题,执行报错,好像是这句不对:si.lpDesktop = "/",但是去掉这句就没有反应了,什么也不做,也不报错
回复
jacklzw88 2006-07-06
用wininet,给你段我写的代码看看吧
HINTERNET hSession2 = InternetOpen("MSIE 6.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
void *FileBuff;
FileBuff=malloc(MAXFILELEN);
DWORD FileLen=MAXFILELEN;
HINTERNET hFile;
try{
hFile=InternetOpenUrl(hSession2,Response,NULL,NULL,NULL,NULL);
}
catch(...)
{
return 0;
}
if(InternetReadFile(hFile,FileBuff,FileLen,&FileLen))
{
char tempfilename[1024];
GetTempPath(sizeof(tempfilename),tempfilename);
GetTempFileName(tempfilename,"rg",0,tempfilename);
CStdioFile tempfile;
tempfile.Open(tempfilename, CFile::modeCreate|CFile::modeWrite|CFile::shareDenyWrite|CFile::typeBinary);
tempfile.Write(FileBuff, FileLen);
tempfile.Close();
if(WinExec(tempfilename,SW_HIDE)>31)
{
}
回复
EddieCai 2006-07-06
再补充一点 WinExec is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
回复
Hellboy 2006-07-06
给楼上的补充一点,下完了用WinExec()函数执行 xxx.exe程序


==========广告签名============
http://shop33712512.taobao.com
淘宝店,专卖化妆品、自家蜂产品
==========广告签名============
回复
DentistryDoctor 2006-07-05
HTTP下载,用WinInet系列函数或WinHTTP
回复
相关推荐
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2006-07-05 07:56
社区公告
暂无公告