新手的问题 知道一个url,比如:http://www.abc.com/files/xxx.exe,如何用vc编程实现把它下载到本地然后执行,要用winsock吗,给点指导性意见就行了,多谢。当然如果能给一个程序框架就更好了:) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HTTP下载,用WinInet系列函数或WinHTTP 给楼上的补充一点,下完了用WinExec()函数执行 xxx.exe程序==========广告签名============http://shop33712512.taobao.com淘宝店,专卖化妆品、自家蜂产品==========广告签名============ 再补充一点 WinExec is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function. 用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){} 谢谢各位。在用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 = "/",但是去掉这句就没有反应了,什么也不做,也不报错 CShockwaveflash, 这个类求教 谁会配置分布式编译incredibuild3_40??高分相送 急,在线等!关于VC弹出异常对话框 高手请进!!! 清高手指点:这种效果的按钮如何实现啊?? 没有对象可以添加变量吗?等待中 组件可以独立运行么 谁能给出程序员技能发展树 (急)继续求助,视图显示问题 VC调用MSSQL存储过程 CreateDispatch("Word.Application") 出错,请指教 正在做bittorrent文件解析器,遇到一个问题
==========广告签名============
http://shop33712512.taobao.com
淘宝店,专卖化妆品、自家蜂产品
==========广告签名============
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)
{
}
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 = "/",但是去掉这句就没有反应了,什么也不做,也不报错