无忧启动论坛
标题: 无浏览器情况下巧妙利用命令行工具INetGet在线下载安装360极速浏览器X且自动静默安装 [打印本页]
作者: sairen139 时间: 2022-12-20 21:56
标题: 无浏览器情况下巧妙利用命令行工具INetGet在线下载安装360极速浏览器X且自动静默安装
本帖最后由 sairen139 于 2023-7-5 15:49 编辑
无浏览器情况下巧妙利用命令行工具INetGet在线下载安装360极速浏览器X且自动静默安装
pe或者Ramos等内存系统如果直接集成现代高版本浏览器特别是基于chrome内核的浏览器,一般会增加不少体积!
那么有没有不增加体积的前提下也能让pe等系统用上这些体量巨大的浏览器呢?有的,那就是在线下载并安装浏览器。
我以双核的360极速浏览器X为例说明一下该方法,就是利用一个160kb的小小小小的命令行下载工具INetGet在进pe桌面之后再行下载并安装360极速浏览器X就行了!
具体方法的语句如下:
@echo off&mode con: cols=77 lines=1&title 360chromeX
if not exist "%ProgramFiles%\360chromeX.exe" INetGet --agent=Chrome/109.0.0.0 https://down.360safe.com/cse/360csex_setup.exe "%ProgramFiles%\360chromeX.exe"
if exist "%ProgramFiles%\360chromeX.exe" Start /wait "" "%ProgramFiles%\360chromeX.exe" --silent-install=3_1_1 -homepage = "https://www.Baidu.com/"
del /f /q "%ProgramFiles%\360chromeX.exe"
如果不想安装到系统盘而是静默安装到别的盘比如D盘程序文件夹请参考下述的语句:
--silent-install=3_1_1 --install-path="D:\program files\360"
开机Wi-Fi自动秒连360极速浏览器X桌面下载静默安装(自动首开笔点https://www.bidianer.com/导航站)字母分区图标办公三件套支持保存成PDF文件SageThumbs支持bmp和gif和jpg和png和psd五种缩略图和所有格式图片右键菜单设置功能完美版BOOT的语句如下:
@echo off&mode con: cols=77 lines=1&title 360chromeX
if exist "%ProgramFiles%\360chromeX.exe" Start /wait "" "%ProgramFiles%\360chromeX.exe" --silent-install=3_1_1 -homepag= "https://www.Baidu.com/"
start X:\Users\Default\AppData\Local\360ChromeX\Chrome\Application\360chromeX.exe --disable-infobars --autoplay-policy=no-user-gesture-required --disable-background-networking "https://www.bidianer.com/"
del /f /q "%ProgramFiles%\360chromeX.exe"
解释说明下上述语句里的参数:
--disable-infobars:Chrome Option取消显示信息栏--autoplay-policy=no-user-gesture-required : 防止谷歌浏览器阻止自动播放视频、音频,允许默认播放
--disable-background-networking : 去掉 Chrome浏览器显示的无法更新提示框
--kiosk : 强制全屏(ALT+F4可关闭)
用了以上的命令,基本可以实现一个静默启动的终端显示屏,用于远程控制终端机显示一些多媒内容是相当棒的。
实践了两天找到最好的360极速浏览器X无缝替换的方法,将本文bat建立一个快捷方式到桌面上改名为360 极速浏览器.lnk,这样双击该lnk下载安装360极速浏览器X的时候会自动替换掉该lnk自身,很完美的方法!(如果只需要看下载进度可以直接把桌面上的快捷方式lnk设置成最小化窗口运行这样最素净眼不见心不烦)
有些网站文件比如wps需要验证证书,下载前就有几秒钟的可以去掉的等待时间,对这种需要验证证书的可以直接加--insecure 这个参数忽略证书校验,可以大大节省时间!
具体就是类似下面的语句
inetget.exe --insecure %&url% %&sDir%\%&sName%
-
62B0DF0C-9152-472F-945D-04F5B9F9370B.jpeg
(2.89 MB, 下载次数: 188)
pe进桌面后在线下载并静默安装360极速浏览器X
-
62A6B140-B003-4C19-BD51-8A6667426083.jpeg
(2.53 MB, 下载次数: 159)
双核360极速浏览器X作为pe的备用浏览器以备不时之需!
-
360截图20221222093041383.jpg
(337.44 KB, 下载次数: 171)
360极速浏览器登陆web网页版微信等很好用!
-
FBB725AD-3F1D-4310-A192-8E76F6A9A333.jpeg
(169.03 KB, 下载次数: 177)
百分浏览器在线下载静默安装
-
-
无浏览器情况下巧妙利用INetGet在线下载安装360极速浏览器X且自动静默安装.zip
161.54 KB, 下载次数: 43, 下载积分: 无忧币 -2
无浏览器情况下巧妙利用INetGet在线下载安装360极速浏览器X且自动静默安装
-
-
位置更分散自由的360极速浏览器X在线下载且自动静默安装zip.zip
160.68 KB, 下载次数: 8, 下载积分: 无忧币 -2
位置更分散自由的360极速浏览器X在线下载且自动静默安装
-
-
百分浏览器在线下载且自动静默安装.zip
159.43 KB, 下载次数: 13, 下载积分: 无忧币 -2
百分浏览器在线下载且自动静默安装.zip
-
-
最终完美版先ren快捷方式名称360chromeX.bat.TXT
635 Bytes, 下载次数: 11, 下载积分: 无忧币 -2
最终完美版先ren快捷方式名称360chromeX.bat.TXT
作者: sairen139 时间: 2022-12-20 21:57
本帖最后由 sairen139 于 2022-12-21 07:58 编辑
占用体积比360极速浏览器X小一半多的七星浏览器(也是基于chrome内核的双核浏览器)在线下载自动安装打开语句如下
@echo off&mode con: cols=77 lines=1&title 7Starchrome
if not exist "%ProgramFiles%\7Star\7Star.exe" INetGet https://qixing123.com/down/ "%ProgramFiles%\7Star\7Star.exe"
if exist "%ProgramFiles%\7Star\7Star.exe" start /wait 7Star.exe /S
del /f /q 7Star.exe
-
-
七星浏览器在线下载且自动安装打开.zip
159.42 KB, 下载次数: 13, 下载积分: 无忧币 -2
七星浏览器在线下载且自动安装打开
作者: 2010sya 时间: 2022-12-20 22:54
前面用的aria2c,这次用的Inetget,不错。。。
作者: htmlc4 时间: 2022-12-20 23:18
其实Windows本身就自带curl
作者: 1801403 时间: 2022-12-20 23:54
本帖最后由 1801403 于 2022-12-20 23:56 编辑
谢谢分享,在有些无浏览器的系统中终于可以很方便的下载浏览器了。
作者: 2010sya 时间: 2022-12-21 01:41
特意又试了下,不成功,cmd窗口一闪就没了……。
作者: dxhjh 时间: 2022-12-21 06:58
谢谢分享
作者: sairen139 时间: 2022-12-21 07:26
你的pe或者系统里有没有下面几个依赖文件cryptnet.dll和ncryptprov.dll和ncryptsslp.dll和winnlsres.dll及最后一个dll它的语言文件winnlsres.dll.mui
除此之外cmd黑窗口模式还要mode.com和ureg.dll两依赖文件呈现单行进度效果更佳。
作者: 9zhmke 时间: 2022-12-21 08:14
确实好,那么用迅雷也可以,或者用VBS也可以:
- Dim WshShell,objFSO,ver,ie,reg,windir,objWMIService,Shell,objRegistry,Newip(20),Name:define("定义一些环境")'
- '========================程序按顺序运行========================
- [姓名]=inputbox("请输入你的名字:")
- if [姓名]="" then [姓名]="没名宝"
- [网址]="https://down.360safe.com/cse/360csex_setup.exe"
- [存放]="C:\Users\Administrator\Desktop\浏览器软件.exe"
- [下载] [网址],[存放]
- [运行] [存放]
- [延时] 0.5
- [显示] "好了,演示到此为止"
- '========================程序结束自动退出========================
- '凡用单引号开头的表示注释、用方括号[]包含的是变量名或指令,可用指令如下:
- ' [延时]秒数
- ' [发送]发送键盘字符内容,除字符外,可用键:DEL、UP、DOWN、END、LEFT、RIGHT、ENTER、ESC、HOME、TAB等,按键必须使用{}扩发起来
- ' [关闭程序]/[运行]/[程序在运行] 程序名
- ' [等有空]等待CPU和硬盘都不忙的时候
- ' [等网络]等网络通后再继续
- ' [重启]/[关机]
- ' 各种参数:[屏宽][屏高][开机时间][剪贴板]
- ' [显示]([信息])
- ' 鼠标:[鼠标][左键][双击](横坐标,纵坐标)
- sub define([定义运行环境中使用的各种名字])
- Set WshShell=WScript.CreateObject("WScript.Shell")
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- Set Shell=CreateObject("Shell.Application")
- my_dir=left(wscript.scriptfullname,instrrev(wscript.scriptfullname,"")-1) & ""
- end sub
- Function [等有空]'忙则等
- Dim vName,IDE,cPPP,sNow,A,B,R1,W1,R2,W2,read,write
- do
- Set objWMIService=GetObject("winmgmts:\\.\root\cimv2")
- Set IDE = objWMIService.ExecQuery("Select * from Win32_DiskDrive WHERE InterfaceType='IDE'")
- Set cPPP = objWMIService.ExecQuery("SELECT * FROM Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE Name<>'_Total'")
- DskPs=WshShell.ExpandEnvironmentStrings("%SystemDrive%") '取系统驱动器
- Set A = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk Where Name = '"& DskPs &"'")
- For Each B In A
- R1 = B.DiskReadBytesPersec: W1 = B.DiskWriteBytesPersec
- If RA0 = "" Then RA0 = B.DiskReadBytesPersec Else RA1 = R1 End If
- If WA0 = "" Then WA0 = B.DiskWriteBytesPersec Else WA1 = W1 End If
- Next
- CPU_busy=GetObject("winmgmts:\\.\root\cimv2:win32_processor='cpu0'").LoadPercentage
- WScript.Sleep(300)
- Set A = objWMIService.ExecQuery("Select * from Win32_PerfRawData_PerfDisk_LogicalDisk Where Name = '"& DskPs &"'")
- For Each B In A
- R2 = B.DiskReadBytesPersec
- W2 = B.DiskWriteBytesPersec
- Next
- Set A = Nothing
- read=R2-R1:write=W2-W1 'msgbox "半秒实时读取:" & read & "/s 实时写人:" & write
- Hard_busy = int((read + write*2)/1000)
- Set IDE=nothing
- Set cPPP=nothing
- loop while CPU_busy >5 or Hard_busy > 3000
- End Function
- Function [发送](code)'让SendKeys可以发送中文
- WshShell.Run "cmd.exe /c echo " & code & "| clip.exe", vbHide
- WScript.Sleep 120
- WshShell.SendKeys "^v{BS}"
- WScript.Sleep 160
- End Function
- Function [按键](code)'让SendKeys可以发送中文
- [等有空]
- code=trim(ucase(code))
- code=replace(code,"SHIFT+","+")
- code=replace(code,"CTRL+","^")
- code=replace(code,"ALT+","%")
- WshShell.SendKeys code
- WScript.Sleep 30
- End Function
- Function [运行](ProcessName)'运行程序
- WshShell.Run ProcessName, 1
- End Function
- Function [延时](code)'延时秒
- WScript.Sleep code*1000
- End Function
- Function [关闭程序](ProcessName) '关闭程序
- Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
- Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '" & ProcessName & "'")
- For Each objProcess in colProcessList
- objProcess.Terminate()
- Next
- End Function
- Function [程序在运行](ProcessName) '程序是否在运行
- Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
- Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = '" & ProcessName & "'")
- [程序在运行]=0
- For Each objProcess in colProcessList
- [程序在运行]=1
- exit for
- Next
- End Function
- Function [下载](http_url,savefile) '下载软件
- if objFSO.FileExists(savefile) then objFSO.deletefile savefile,true '删旧的
- Set post=CreateObject("Msxml2.XMLHTTP")
- post.Open "GET",http_url,0 '发送请求
- on error resume next
- post.Send()
- if Err.Number<>0 then
- [下载]=[下载] & "出错:" & Err.Description
- else
- Set aGet = CreateObject("ADODB.Stream")
- aGet.Mode = 3
- aGet.Type = 1
- aGet.Open() '等文件下载
- wscript.sleep delay_time*2
- aGet.Write(post.responseBody)'写数据
- aGet.SaveToFile savefile,2
- if Err.Number<>0 then
- [下载]=[下载] & "出错:" & Err.Number & Err.Description
- else
- if objFSO.GetFile(savefile).size=url_size then
- ok=ok+1 '计一个数,最终好检查
- [下载]="软件下载正确:" & string(80,"-") & "第" & ok & "个."
- BHok.WriteLine replace(BHok_text & [下载] & ":" & ok,"-","")
- else
- [下载]=[下载] & ",下载的大小错:" & objFSO.GetFile(savefile).size & "应为" & url_size
- end if
- end if
- on error goto 0
- end if
- if Err.Number<>0 then Err.clear
- End Function
- Function [等网络]() '网络已通
- dim Mark
- Mark=0
- While Mark=0
- Set mc=GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
- For Each mo In mc
- Mark=mo.IPEnabled
- If Mark=True Then
- wscript.sleep 500
- Exit For
- End If
- Next
- wscript.sleep 300
- Wend
- [等网络]=1
- set mc=nothing
- End Function
- Function [重启]()
- Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
- Set colOperatingSystems = objWMI.ExecQuery ("Select * from Win32_OperatingSystem")
- For Each objOperatingSystem in colOperatingSystems
- ObjOperatingSystem.Reboot()
- Next'重启结束
- End Function
- Function [关机]()
- Set colOperatingSystems = GetObject("winmgmts:{(Shutdown)}").ExecQuery("Select * from Win32_OperatingSystem")
- For Each objOperatingSystem in colOperatingSystems
- ObjOperatingSystem.Win32Shutdown(8)
- Next
- End Function
- Function [开机时间]() '取已开机时间多少分钟
- Start=0
- Set WMIstart = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
- Set colLoggedEvents = WMIstart.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' And EventCode = '6005' Or EventCode = '6006'")
- For Each objEvent In colLoggedEvents
- If Not IsNull(objEvent.TimeWritten) Then
- Set SWDT = CreateObject("WbemScripting.SWbemDateTime")
- SWDT.Value = objEvent.TimeWritten
- [开机时间] = int(DateDiff("s",SWDT.GetVarDate(True),now())/60)
- exit for
- End If
- Next
- Set WMIstart=nothing
- Set colLoggedEvents=nothing
- Set SWDT=nothing
- End Function
- Function [屏宽]() '取屏幕最高分辨率宽度
- Set colItems = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_VideoController", "WQL",wbemFlagReturnImmediately + wbemFlagForwardOnly)
- For Each objItem In colItems
- [屏宽]=objItem.CurrentHorizontalResolution
- Next
- End Function
- Function [屏高]() '取屏幕最高分辨率宽度
- Set colItems = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_VideoController", "WQL",wbemFlagReturnImmediately + wbemFlagForwardOnly)
- For Each objItem In colItems
- [屏高]=objItem.CurrentVerticalResolution
- Next
- End Function
- Class SetMouse
- private S
- private xls, wbk, module1
- private reg_key, xls_code, x, y
- Private Sub Class_Initialize()
- Set xls = CreateObject("Excel.Application")
- Set S = CreateObject("wscript.Shell")
- reg_key = "HKEY_CURRENT_USER\Software\Microsoft\Office\$\Excel\Security\AccessVBOM" 'vbs 完全控制excel
- reg_key = Replace(reg_key, "$", xls.Version)
- S.RegWrite reg_key, 1, "REG_DWORD"
- xls_code = _
- "Private Type POINTAPI : X As Long : Y As Long : End Type" & vbCrLf & _
- "Private Declare Function SetCursorPos Lib ""user32"" (ByVal x As Long, ByVal y As Long) As Long" & vbCrLf & _
- "Private Declare Function GetCursorPos Lib ""user32"" (lpPoint As POINTAPI) As Long" & vbCrLf & _
- "Private Declare Sub mouse_event Lib ""user32"" Alias ""mouse_event"" " _
- & "(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)" & vbCrLf & _
- "Public Function getx() As Long" & vbCrLf & "Dim pt As POINTAPI : GetCursorPos pt : getx = pt.X" & vbCrLf & _
- "End Function" & vbCrLf & "Public Function gety() As Long" & vbCrLf & _
- "Dim pt As POINTAPI: GetCursorPos pt : gety = pt.Y" & vbCrLf & "End Function"
- Set wbk = xls.Workbooks.Add:Set module1 = wbk.VBProject.VBComponents.Add(1):module1.CodeModule.AddFromString xls_code
- End Sub
- '关闭
- Private Sub Class_Terminate
- on error resume next
- xls.DisplayAlerts = False:wbk.Close:xls.Quit
- on error goto 0
- End Sub
- '可调用过程
- Public Sub getpos( x, y):x = xls.Run("getx"):y = xls.Run("gety"):End Sub
- Public Sub move(x,y):wscript.Sleep 50:xls.Run "SetCursorPos", x, y:wscript.Sleep 300:End Sub
- Public Sub wheel_y(y) '鼠标滚轮上或下滚动y距离
- 'for wheel=1 to (y/10)
- wscript.Sleep 30
- 'xls.Run "mouse_event", &H800, 0, 0, (y/10), 0
- xls.Run "mouse_event", &H800, 0, 0, y, 0
- wscript.Sleep 30
- 'next
- wscript.Sleep 300
- End Sub
- Public Sub wheel_x(x) '鼠标滚轮上或下滚动x距离
- 'for wheel=1 to (x/10)
- wscript.Sleep 30
- xls.Run "mouse_event", &H800, 0, 0, x, 0
- wscript.Sleep 30
- 'next
- wscript.Sleep 300
- End Sub
- Public Sub clik(keydown)
- wscript.Sleep 80
- Select Case UCase(keydown)
- Case "LEFT"'点左键
- xls.Run "mouse_event", &H2 + &H4, 0, 0, 0, 0
- Case "RIGHT"'点右键
- xls.Run "mouse_event", &H8 + &H10, 0, 0, 0, 0
- Case "MIDDLE"'点中键
- xls.Run "mouse_event", &H20 + &H40, 0, 0, 0, 0
- Case "LDOWN"'按下左键
- xls.Run "mouse_event", &H2, 0, 0, 0, 0
- Case "RDOWN"'按下右键
- xls.Run "mouse_event", &H8, 0, 0, 0, 0
- Case "MDOWN"'按下中键
- xls.Run "mouse_event", &H20, 0, 0, 0, 0
- Case "LUP"'弹起左键
- xls.Run "mouse_event", &H4, 0, 0, 0, 0
- Case "RUP"'弹起右键
- xls.Run "mouse_event", &H10, 0, 0, 0, 0
- Case "MUP"'弹起中键
- xls.Run "mouse_event", &H40, 0, 0, 0, 0
- Case "DBCLICK"'双击
- xls.Run "mouse_event", &H2 + &H4, 0, 0, 0, 0
- xls.Run "mouse_event", &H2 + &H4, 0, 0, 0, 0
- End Select
- wscript.Sleep 300
- End Sub
- End Class
- Function [左键](str) '在特定位置点鼠标左键
- dim mouse_x,mouse_y,mouse_delay,clik_arg
- str=split(str,",")
- mouse_delay=0
- for clik_arg=0 To UBound(str)-LBound(str)
- if clik_arg=0 then mouse_x=str(0)
- if clik_arg=1 then mouse_y=str(1)
- if clik_arg=2 then mouse_delay=str(2)
- next
- Set mouse=New SetMouse
- wscript.Sleep 50
- mouse.move mouse_x,mouse_y
- wscript.Sleep 50
- [等有空] '忙则等
- mouse.clik "LEFT"
- wscript.Sleep 50 + mouse_delay
- Set mouse=nothing
- End Function
- Function [左键](mouse_x,mouse_y) '在特定位置点鼠标左键
- Set mouse=New SetMouse
- wscript.Sleep 50
- mouse.move mouse_x,mouse_y
- wscript.Sleep 50
- [等有空] '忙则等
- mouse.clik "LEFT"
- wscript.Sleep 50
- Set mouse=nothing
- End Function
- Function [双击](mouse_x,mouse_y) '在特定位置双击鼠标
- Set mouse=New SetMouse
- wscript.Sleep 50
- mouse.move mouse_x,mouse_y
- wscript.Sleep 50
- [等有空] '忙则等
- mouse.clik "DBCLICK"
- wscript.Sleep 50 + mouse_delay
- Set mouse=nothing
- End Function
- Function [鼠标](mouse_x,mouse_y) '鼠标移动
- Set mouse=New SetMouse
- wscript.Sleep 50
- mouse.move mouse_x,mouse_y
- wscript.Sleep 50
- Set mouse=nothing
- End Function
- Function [剪贴板]() '取剪贴板中的内容
- Dim Word:Set Word = CreateObject("Word.Application"):Word.Documents.Add
- [剪贴板]=""
- on error resume next
- Word.Selection.PasteAndFormat(wdFormatPlainText):Word.Selection.WholeStory:
- on error goto 0
- [剪贴板] = Word.Selection.Text
- Word.Quit False
- Set Word =nothing
- End Function
- Function [显示]([信息])
- msgbox [信息]
- End Function
复制代码
作者: wsr_my_lover 时间: 2022-12-21 08:49
谢谢分享
作者: 旁观者清 时间: 2022-12-21 08:50
谢谢分享。
作者: 2010sya 时间: 2022-12-21 08:53
本帖最后由 2010sya 于 2022-12-21 09:02 编辑
aria2c那个,在系统下很好!
===
这个在系统/PE下都不行。。。
-
无标题.png
(52.01 KB, 下载次数: 158)
作者: sairen139 时间: 2022-12-21 09:03
估计缺依赖文件,你可以把第一行删掉,然后最后一行加pause看问题出在哪?
作者: ppmjb2005 时间: 2022-12-21 09:11
多谢分享,学习了
作者: 2010sya 时间: 2022-12-21 09:13
这样。。。
-
-
新建文本文档.txt
2.16 KB, 下载次数: 8, 下载积分: 无忧币 -2
作者: sairen139 时间: 2022-12-21 09:29
Failed to open the sink, unable to download file!
看到上面这个提示了,你可以单独在cmd命令窗口测试一下INetGet能否成功下载。
作者: sairen139 时间: 2022-12-21 09:52
INetGet - Lightweight CLI front-end to the WinINet API
Please visit http://muldersoft.com/ for news and updates!
Introduction
INetGet is a simple command-line interface to the WinINet API. In other words, it is a program for downloading files via the HTTP (Hypertext Transfer Protocol) or FTP (File Transfer Protocol) protocols. It provides full support for HTTPS (HTTP over TLS) as well as IPv6.
This program provides a similar functionality as the well-known WGet and cURL tools. However, in contrast to those, INetGet is based directly on the "native" Windows Internet programming interface (WinINet). This comes at the advantage that INetGet is very small and lightweight, as it uses the HTTP(S) and FTP services provided by the operating system, instead of having to implement these protocols on its own. There are no external dependencies (e.g. OpenSSL or GnuTLS), except for standard system libraries that are present on every Windows system anyway. Still, advanced features, such as HTTPS and IPv6, are supported. Furthermore, since INetGet is based on the Windows crypto libraries, it uses the Windows certificate store. This means that, in contrast the aforementioned tools, you do not need to provide and maintain your own certificate bundle for HTTPS. Certificate updates as well as security fixes for the underlying cryptographic routines are automatically provided, via Windows Update. On the downside, you will have to trust Microsoft's protocol implementations. And the availability of some features depends on the Windows version.
See here for more details:
http://blogs.technet.com/b/askpe ... e-hood-wininet.aspx
System Requirements
INetGet works on Windows Vista or any later Windows version. Windows XP should work too, but is not recommended these days! The 32-Bit version of INetGet runs on all 32-Bit and 64-Bit Windows versions, while the 64-Bit version of INetGet requires a 64-Bit Windows version.
IPv6 support requires Internet Explorer 7 or later. Note that all supported Windows versions (Vista or later) already meet this requirement. Windows XP requires manual update to IE7 in order to enable IPv6 support.
As far as HTTPS support is concerned, all relevant Windows versions (XP or later) support TLS 1.0 as well as the deprecated SSL 2.0 and SSL 3.0 protocols. Support for TLS 1.1 has finally been introduced in Windows 7. And support for TLS 1.2 has been introduced in Windows 8.
See here for more details:
http://blogs.msdn.com/b/kaushal/ ... ols-on-windows.aspx
Command-Line Usage
The basic command-line syntax of INetGet is extremely simple:
INetGet.exe [options] <target_address> <output_file>
Parameters
The following required parameters must always be included:
* <target_address>
Specifies the target Internet address (URL) to be downloaded, given in the <scheme>://[<username>[:<password>]@]<hostname>[:<port>]/[<path>][?<query>] format.
The scheme (protocol) and the hostname components of the URL must always be specified! The path component as well as the port number and the query string are optional.
Also, the username and the password components are optional too, but you can not set a password without username. Last but not least, do not forget the trailing / if the given the path is empty!
Only the http, https and ftp protocols are currently supported. The hostname can be specified either as a domain name or as an IP address. The standard IPv4 and IPv6 notations are supported.
If the port number is absent, a default port number will be assumed. This results in port #21 for FTP, port #80 for HTTP and port #443 for HTTPS.
The special URL string - may be specified in order to read the target address from the stdin stream. When reading the URL from stdin, INetGet assumes that the string is passed in UTF-8 encoding.
Examples:
* A minimal URL:
http://www.example.com/
* URL including path and query string:
http://www.google.com/search?q=drunkship+of+lanterns
* URL that has the hostname specified as an IPv4 address and that contains a port number:
http://173.194.112.137:8080/
* URL that has the hostname specified as an IPv6 address:
http://[2a00:1450:4001:804::1005]/
* URL that has a username and a password specified:
http://alice:jelly22fi$h@localhost/top_secret.doc
* <output_file>
Specifies the output file, where the downloaded file will be written to. If the given path specification is not fully-qualified, then the relative path will be resolved starting from the "current" directory.
The given path must point to an existing and writable directory, otherwise the download fails. If the specified file already exists, the program will try to overwrite the existing file!
The special file name - may be specified in order to write all received data to the stdout stream. Furthermore, the special file name NUL may be specified in order to discard all data that is received.
Options
The following options may be included, in an arbitrary order:
* --verb=<verb>
Specifies the HTTP method (alias “verb”) to be used in the HTTP request. This can be one of the standard methods GET, POST, PUT, DELETE or HEAD. By default, the GET method is used.
* --data=<data>
Append additional data to the HTTP request. The given data is expected to be in the application/x-www-form-urlencoded format, i.e. the standard format that used by HTML forms.
You can specify - as the argument in order to read the data from the stdin stream. Note that you probably want to specify either --verb=POST or --verb=PUT too when using this option.
* --no-proxy
Instructs the WinINet API to resolve the host name locally, i.e. not use a proxy server. If this option is absent, the system's default proxy server settings will be used to resolve the host name.
* --agent=<str>
Overwrite the default user agent string that will be sent by INetGet in the HTTP request. This string typically starts with the Mozilla/5.0 prefix, followed by system and program information.
* --no-redir
Do not follow HTTP redirects. If this option is absent, INetGet automatically follows the address given in the response's Location field, when a HTTP redirect (e.g. status 302) is received.
* --insecure
Do not cause HTTPS requests to fail, if the server's TLS/SSL certificate is invalid (e.g. already expired or wrong DN) or cannot be validated (e.g. unknown issuer). Use this with extreme care !!!
* --refer=<url>
Includes the given referrer address in the HTTP request. If this option is absent, INetGet does not generate a Referer field in the request.
* --notify
Triggers a standard system "notification" sound as soon as the process has completed. The type of the sound depends on whether the download has completed successfully or failed.
* --time-cn=<n>
Specifies the connection timeout, in seconds. You can specify fractional values. Specify infinite to disable the timeout. If this option is absent, the system defaults will be used.
* --time-rc=<n>
Specifies the receive (and send) timeout, in seconds. You can specify fractional values. Specify infinite to disable the timeout. If this option is absent, the system defaults will be used.
* --timeout=<n>
This option is a shorthand for setting both, --time-cn=<n> and --time-rc=<n>, at the same time. You can specify fractional values. Specify infinite to disable the timeouts.
* --retry=<n>
Specifies the maximum number of times that INetGet will retry to connect to the server, if the connection could not be established yet. By the default, INetGet will retry at most two times.
* --no-retry
Do not retry to connect to the server, if the connection could not be established the first time. Setting this option is equivalent to specifying --retry=0.
* --force-crl
If specified, causes the connection to fail in case that the certificate revocation list (CRL) could not be retrieved. This is more secure, but also means that HTTPS connections may fail more often.
By default, INetGet does check for certificate revocations. However, if the CRL can not be retrieved for some reason (and thus the revocation check is impossible), it will skip the check.
* --set-ftime
If specified, INetGet will change the "Creation" and the "LastWrite" time-stamp of the output file to the value that was returned in the Last-Modified field of the HTTP response header.
This option is typically (though not necessarily) used in conjunction with the --update option. If the server did not include a Last-Modified field, this option does nothing.
* --update
If specified, update mode is enabled. In this mode, INetGet will only re-download the file and replace the output file, iff the server provides a newer version. Otherwise, the existing file is kept.
Update mode is implemented by reading the "LastWrite" time-stamp of the existing output file. If successful, a corresponding If-Modified-Since field is added to the HTTP request.
The server should reject the request with status 304 (Not Modified), if no newer version is available. If the specified output file does not exist, INetGet will downloaded the file unconditionally.
* --range-off=<n>
Specifies the start address (offset) of the byte range to be download. If this option (or --range-end) is set, then INetGet will include a "Range" header in the HTTP request.
By default, INetGet does not include a "Range" header in the request, which means that the complete file will be download. Use this option if you want to download a file partially.
Warning: Whether support for partial downloads (aka "resume support") is available, this totally depends on the individual download server!
* --range-end=<n>
Specifies the end address of the byte range to be download. If this option (or --range-off) is set, then INetGet will include a "Range" header in the HTTP request.
By default, INetGet does not include a "Range" header in the request, which means that the complete file will be download. Use this option if you want to download a file partially.
Warning: Whether support for partial downloads (aka "resume support") is available, this totally depends on the individual download server!
* --keep-failed
If specified, INetGet will retain an incomplete output file, if the download has failed or it has been aborted. Otherwise, INetGet tries to delete the incomplete file, if something went wrong.
* --config=<cf>
Loads additional INetGet options from the specified configuration file. Several configuration files can be specified, in which case the "pipe" (|) symbol must be used as a file name separator.
* --help
If this option is present, INetGet will print the "help screen" to the console and then exit immediately.
* --verbose
Enables verbose logging, i.e. writes additional status information to the console. This is intended for debugging purposes and does not normally need to be specified.
Exit Codes
If the download completed successfully, INetGet returns a zero (0) exit code. Otherwise, if something went wrong (connection to server failed, file not found, etc), it return a non-zero (1) error code.
Note that only HTTP status codes in the 2xx range will be considered a successful transfer. If the server returns a different status code, e.g. in the 4xx or 5xx range, the transfer has failed.
Examples
Here are some basic examples that show the command-line usage of INetGet:
* Download a simple HTML document:
INetGet.exe http://www.warr.org/buckethead.html output.html
* Send request with query string:
INetGet.exe http://www.google.com/search?q=drunkship+of+lanterns output.html
* Send request with "POST" method and form data included:
INetGet.exe --verb=POST --data="foo=hello&bar=world" http://muldersoft.sourceforge.net/test.php output.txt
* Request with user login and port number specified:
INetGet.exe http://alice:jelly22fi$h@localhost:8080/secret.html output.html
* Read the URL from stdin and write the response to stout:
echo http://www.warr.org/buckethead.html | INetGet.exe - - | findstr Sacrifist
Configuration Files
INetGet supports reading options from a configuration file. Configuration files can be loaded explicitly by using the --config=<cf> option on the command-line. In addition, INetGet will implicitly load a configuration file that is located in the same directory as the INetGet executable file and that has the same basename as the NetGet executable, but with a .cfg file extension. So, e.g., if the INetGet executable file is called INetGet.exe, then the configuration file called INetGet.cfg (and located in the same directory) will be loaded implicitly, if existing.
Configuration files support the same options that can be specified on the command-line. Furthermore, the option syntax for configuration files is the same as on the command-line, except that configuration files do not require or support the -- option prefix. This means that, e.g., instead of --agent=Foo, the configuration file has to contain agent=Foo. Finally, INetGet expects that there is exactly one option per line in the configuration file. Any lines starting with a "hash" (#) symbol are considered to be comments and will be ignored. Blank lines are ignored too.
Note: If a configuration file is loaded implicitly, this occurs before processing the options given on the command-line. Consequently, you can use the implicitly-loaded configuration file to set up some default options, which then may be overwritten on the command-line.
Anti-Virus Notes
Occasionally, it may happen that your so-called "anti-virus" software mistakenly detects malware (virus, trojan horse, worm, etc.) while you are trying to run the legitimate INetGet application. This is called a false positive and the file actually is not malware! Instead, this is a defect (bug) in your particular anti-virus software! In case that you encounter this kind problem, we highly recommend using VirusTotal.com, Virscan.org or a similar web-service to check the file in question with multiple anti-virus engines. Unless the majority of the anti-virus engines detect malware, it can safely be assumed that the file is indeed clean. Also, please take care with heuristic scan results, such as "suspicious", "generic" or "packed". Those results are not confirmed malware detections – they are highly speculative and (almost certainly) do not indicate a real infection.
An important fact to consider is that, for the developer of a legitimate application, it is impossible to know why a specific "anti-virus" software is defaming her application as malware. That is because anti-virus programs generally are commercial ClosedSource software – and the anti-virus companies do not publish their source codes or reveal their algorithms. Moreover, a zillion of different so-called "anti-virus" programs exist nowadays. Therefore, the application developer can not know what is going on "behind the scenes" in a particular anti-virus software. Consequently, any assumptions on the reasons that trigger the false positive would be nothing but pure speculation! Even worse, anti-virus software is updated frequently, so the reasons why the so-called "anti-virus" software is defaming our application as malware may change constantly.
At this point, it should be clear that implementing workarounds for defective anti-virus software is not a viable option for application developers. Since the false positive is a defect (bug) in the particular "anti-virus" software, it can be fixed only by the developer of the anti-virus software. For this reason, it is important that you, the (paying) customer, contact the support team of the anti-virus company and report the serious problem that exists in their software! Most anti-virus companies provide ways to report false positives in a standardized way, e.g. by means of a webform or an e-mail portal. So please refer to the anti-virus developer's web-site for help and support. Also, when reporting false positives, please be self-confident: As a paying customer, you can demand that false positives get fixed in a timely manner. Otherwise, just get your money back!
Last but not least: Keep in mind that INetGet is free software. This means that source codes of INetGet are freely available to everybody! Thus, in case that you do not trust the provided pre-compiled binaries of INetGet, you may compile your own binaries directly from the source code…
Download
Pre-compiled binaries of INetGet are available from the official download mirrors:
* https://github.com/lordmulder/INetGet/releases/latest
* https://bitbucket.org/muldersoft/inetget/downloads
* http://sourceforge.net/projects/muldersoft/files/INetGet/
* https://www.assembla.com/spaces/inetget/documents
Source Codes
The source codes of INetGet are available from the official Git repository:
* git clone https://github.com/lordmulder/INetGet.git INetGet-src (Browse)
* git clone https://bitbucket.org/muldersoft/inetget.git INetGet-src (Browse)
* git clone https://gitlab.com/muldersoft/INetGet.git INetGet-src (Browse)
* git clone https://git.assembla.com/inetget.git INetGet-src (Browse)
Help & Support
For bug reports, feature requests and patch submissions, please refer to the issue tracker on our GitHub project site:
https://github.com/lordmulder/INetGet/issues
License
INetGet is Copyright © 2015-2018 LoRd_MuldeR <MuldeR2 at GMX dot de>. Some rights reserved.
This software is released under the GNU General Public License (“GPL”), version 2.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
See also:
http://www.gnu.org/licenses/gpl-2.0-standalone.html
作者: 我不要名Offici 时间: 2022-12-21 09:53
谢谢分享
作者: wsr_my_lover 时间: 2022-12-21 10:23
谢谢分享
作者: lanmeizhuangyua 时间: 2022-12-21 10:31
多谢楼主分享
作者: YJZM 时间: 2022-12-21 10:39
感谢分享
作者: 2010sya 时间: 2022-12-21 13:57
没看到下载进度。
请问INetGet完整命令是?
作者: sairen139 时间: 2022-12-21 14:06
INetGet https://down.360safe.com/cse/360csex_setup.exe "%ProgramFiles%\360chromeX\360chromeX.exe"
作者: sairen139 时间: 2022-12-21 14:08
INetGet复制到system32文件夹里,然后在cmd命令行窗口输入
作者: 2010sya 时间: 2022-12-21 14:23
本帖最后由 2010sya 于 2022-12-21 14:26 编辑
好像还是“Failed to open the sink”?
-
批注 2022-12-21 142219.png
(251.57 KB, 下载次数: 161)
作者: sairen139 时间: 2022-12-21 14:30
试试这个
-
-
download.exe
123.12 KB, 下载次数: 3, 下载积分: 无忧币 -2
试试这个
作者: sairen139 时间: 2022-12-21 14:32
复制download.exe到system32
,然后cmd窗口运行download https://down.360safe.com/cse/360csex_setup.exe看能不能下载
作者: 2010sya 时间: 2022-12-21 14:32
好像这里有问题:
The specified output file could not be opened for writing:
No such file or directory.
作者: sairen139 时间: 2022-12-21 14:41
INetGet https://down.360safe.com/cse/360csex_setup.exe 360chromeX.exe
改成上面这样更简单的语句能下载吗?
作者: yigeren 时间: 2022-12-21 17:25
这个直接下载谷哥浏览下载器ChromeSetup.exe,打开安装会提示错误,aria2c下载完可以正常安装
作者: sairen139 时间: 2022-12-21 18:02
七星浏览器不推荐,原因是内核版本有些低是chrome62的版本
-
78012631-14D9-4C43-B2AC-F18445E968D1.jpeg
(2.44 MB, 下载次数: 125)
chrome62的老内核版本360极速浏览器高多了是95内核chrome目前国内最高版本
作者: 2010sya 时间: 2022-12-21 19:04
我也是。。
作者: 2010sya 时间: 2022-12-21 19:06
我再看看
作者: sairen139 时间: 2022-12-22 11:39
验证了一下,这个"%ProgramFiles%\360chromeX\"文件夹必需预先存在就能成功下载,它不会创建该文件夹。你试试是不是我说的这个原因
作者: thanks123 时间: 2022-12-22 15:32
谢谢分享
作者: 2010sya 时间: 2022-12-22 18:35
文件夹全路径是多少
作者: sairen139 时间: 2022-12-22 19:05
就是要下载exe文件到一个已经存在的文件夹里,哪怕系统盘根目录也是OK的
作者: Bruce65 时间: 2022-12-23 02:47
它运行良好,安装了360浏览器没有问题!
我尝试使用google chrome,但它显示"msi"错误。
故障是我的winpe"msi"集成到wine中。 我想我错过了什么!
有人可以告诉我在哪里可以找到有关如何正确地将"msi"支持添加到winpe的详细信息?
谢谢!
作者: KeviNPKW 时间: 2022-12-23 03:01
感谢感谢
作者: sairen139 时间: 2022-12-23 10:12
@echo off&mode con: cols=77 lines=1&title 360chromeX
if not exist "%ProgramFiles%\360chromeX.exe" INetGet https://dl.google.com/update2/in ... andaloneSetup64.exe "%ProgramFiles%\360chromeX.exe"
if exist "%ProgramFiles%\360chromeX.exe" Start /wait "" "%ProgramFiles%\360chromeX.exe" /S
del /f /q "%ProgramFiles%\360chromeX.exe
改了个谷歌浏览器的你可以试试看
作者: yigeren 时间: 2022-12-23 11:25
能下载,但软件不能安装,提示未知的安装程序错误
作者: xinge1011 时间: 2022-12-23 13:34
学习
作者: yigeren 时间: 2022-12-23 20:39
加入--agent参数可以了
作者: sairen139 时间: 2022-12-24 07:31
那请你把能浏览器成功下载且安装的语句发出来
作者: yigeren 时间: 2022-12-24 11:29
昨天测试不严谨,发现不是加参数--agent的问题,而是需要在命令提示符窗口下运行才可以,在命令提示符窗口下载完谷歌浏览下载器可以打开正常安装,如果是以脚本文件运行,打开下载器会提示安装错误,这个很奇怪
附谷歌浏览下载器地址:
https://dl.google.com/tag/s/appg ... ers/ChromeSetup.exe
作者: sairen139 时间: 2022-12-24 21:53
百分浏览器5测试版chrome内核更高,所需依赖文件为d3d9.dll和d3d10warp.dll和dxva2.dll和UIAutomationCore.dll
作者: sairen139 时间: 2022-12-25 08:06
目前pe里360浏览器X不需要补依赖文件,其次需要依赖文件从少到多的为chrome浏览器、七星浏览器、百分浏览器
作者: yigeren 时间: 2022-12-25 15:41
本帖最后由 yigeren 于 2022-12-25 15:43 编辑
找到方法了,可以在线下载安装谷歌浏览器了,无需放那个1M多的下载器在PE内核里
我再测2天看看
作者: sairen139 时间: 2022-12-26 15:15
好的,期待你能成功找到好方法分享给我们
作者: yigeren 时间: 2022-12-27 11:52
方法来了:
可能只适合少数Win10PE,因为需要能运行VBS脚本文件,把弄好的脚本文件上传来你们试试
PS:下载安装的是Chrome浏览器64位版本,需要32位的,自己换下地址即可
-
-
INetGet-Chrome.rar
436 Bytes, 下载次数: 18, 下载积分: 无忧币 -2
Chrome-VBS
作者: 无极丶心悦 时间: 2022-12-27 12:13
这就很强大了
作者: fjice 时间: 2022-12-27 14:02
谢谢分享
作者: sairen139 时间: 2022-12-27 18:27
不知道bat或者cmd脚本能不能解决下载64位谷歌浏览器的问题?
作者: yigeren 时间: 2022-12-27 20:55
bat,cmd包括PECMD都测试过了,都不行,就只有VBS才可以
我的PE本身都会加入简单的VBS组件,所以不会额外增加文件到PE内核里,不然为了下载谷歌浏览器,再额外补充VBS组件就不划算了,还不如直接放个谷歌下载器在PE内核就完事了.
作者: sairen139 时间: 2022-12-27 21:30
好的,感谢提供测试的相关信息
作者: sairen139 时间: 2023-2-25 22:43
本帖最后由 sairen139 于 2023-2-26 12:42 编辑
最终完美版先ren快捷方式名称360chromeX.bat.TXT
@echo off&mode con: cols=77 lines=1&title 360chromeX
ren "X:\Users\Default\Desktop\浏览器.lnk" "360 极速浏览器X.lnk"
if not exist "%ProgramFiles%\360chromeX.exe" INetGet --insecure https://down.360safe.com/cse/360csex_setup.exe "%ProgramFiles%\360chromeX.exe"
if exist "%ProgramFiles%\360chromeX.exe" Start /wait "" "%ProgramFiles%\360chromeX.exe" --silent-install=3_1_1
Start X:\Users\Default\AppData\Local\360ChromeX\Chrome\Application\360chromeX.exe --disable-infobars --autoplay-policy=no-user-gesture-required --disable-background-networking "https://www.bidianer.com/"
del /f /q "%ProgramFiles%\360chromeX.exe"
-
-
最终完美版先ren快捷方式名称360chromeX.bat.TXT
635 Bytes, 下载次数: 2, 下载积分: 无忧币 -2
最终完美版先ren快捷方式名称360chromeX.bat.TXT
作者: sairen139 时间: 2023-8-14 16:50
@echo off&mode con: cols=77 lines=1&title 360chromeX
if not exist "%ProgramFiles%\360chromeX.exe" INetGet --agent=Chrome/109.0.0.0 https://down.360safe.com/cse/360csex_setup.exe "%ProgramFiles%\360chromeX.exe"
if exist "%ProgramFiles%\360chromeX.exe" Start "" "%ProgramFiles%\360chromeX.exe" --silent-install=3_1_1 -homepage = "https://www.Baidu.com/"
以上黑窗口时间最短,但不能自动打开需要去点击桌面图标才能打开浏览器。
作者: yyz2191958 时间: 2023-8-14 22:06
感谢分享
作者: kokozzz123 时间: 2023-8-15 09:06
无忧论坛上的不少pe所使用的方法是在pe里预制一个谷歌浏览器的installer程序(也就几m),然后用快捷方式指向installer程序,方法更便捷,就是不能加自定义参数
作者: utrue 时间: 2023-8-16 08:59
很给力!
作者: 2010yuhongxi 时间: 2023-9-5 14:17
感谢分享
作者: zyy 时间: 2023-10-2 22:48
谢谢分享,备用
作者: hdxzd 时间: 2023-10-3 15:43
感谢分享
作者: huang1987 时间: 2023-11-22 18:11
谢谢分享
欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) |
Powered by Discuz! X3.3 |