零基礎(chǔ)學(xué)編程:10 分鐘寫(xiě)個(gè)下載軟件(下載編程的軟件)
先說(shuō)要求:
1、不超過(guò) 10 句代碼。
2、無(wú)任何復(fù)雜步驟,不需要手動(dòng)下載配置任何東西。
3、一鍵生成獨(dú)立 EXE 文件,打包后僅 2MB 多。
4、調(diào)用強(qiáng)大的下載組件 aria2 ,自動(dòng)優(yōu)化配置,自動(dòng)設(shè)置 UPnP 端口轉(zhuǎn)發(fā)。
5、調(diào)用漂亮且容易使用的 AriaNg 實(shí)現(xiàn)前端界面。
首先,打開(kāi) aardio 創(chuàng)建空白工程:
粘貼以下代碼到 main.aardio 文件:
import win.ui;var winform = win.form(text="aria下載器");//啟動(dòng) aria2 import process.aria2;process.aria2().startServer(); //創(chuàng)建瀏覽器import web.view;var wb = web.view(winform); //打開(kāi)網(wǎng)頁(yè)前端import web.ariaNg; wb.go( web.ariaNg.defaultUrl );//顯示主窗口winform.show(3);win.loopMessage();
點(diǎn)擊『保存 Ctrl S』按鈕:
然后按『運(yùn)行 F5 』按鈕,就可以自動(dòng)配置好擴(kuò)展庫(kù),并且啟動(dòng)程序。
運(yùn)行效果:
按 F7 發(fā)布為 EXE 文件。
注意 aria2 要小寫(xiě),Aria2 是錯(cuò)的。aardio 兼容 64 位 或 32 位 aria2 ,可以任意替換不需要更改代碼。
關(guān)于發(fā)布 EXE,說(shuō)一件小事。
因?yàn)橛杏脩?hù)問(wèn)小狼毫不支持 ImTip 的事,我就去看了一下發(fā)現(xiàn)小狼毫項(xiàng)目主頁(yè)的最新版已經(jīng)解決了這個(gè)問(wèn)題。
本想下載試一下,但下載時(shí)誤報(bào)被干掉了。然后下載到信任目錄,安裝時(shí)又報(bào)安裝的 EXE 是病毒,太累就沒(méi)再弄了。
網(wǎng)上可以看到很多不同編程語(yǔ)言開(kāi)發(fā)的軟件都大量出現(xiàn)類(lèi)似的誤報(bào)問(wèn)題。就不說(shuō)別的,著名的界面庫(kù) Sciter 官網(wǎng)上下載 Sciter.dll 好幾次都被當(dāng)病毒干掉,這還只是 DLL 文件,何況你是 EXE ?
這個(gè)問(wèn)題困擾了很多開(kāi)發(fā)者,但解決這個(gè)問(wèn)題并不難。
容易讓人迷惑的地方:
不同編程語(yǔ)言生成的 EXE 出現(xiàn)誤報(bào)的規(guī)律可能不同,例如 C 寫(xiě)個(gè)空白程序可能真沒(méi)誤報(bào) —— 就好比一個(gè)人不穿衣服自然沒(méi)人懷疑他口袋里有什么。
現(xiàn)在有很多基于虛擬機(jī)的語(yǔ)言生成 EXE 自然不能去對(duì)比 C 寫(xiě)的裸 EXE,誤報(bào)會(huì)更早出現(xiàn) —— 但這并不是壞事。
無(wú)論什么編程語(yǔ)言,只要實(shí)現(xiàn)了一定的功能,只要有了那么一點(diǎn)點(diǎn)用戶(hù)量,不會(huì)需要太久,誤報(bào)就來(lái)了。
舉個(gè)實(shí)際的例子,如果你用 C 寫(xiě)個(gè) WubiLex,ImTip 你還能不去過(guò)白,不發(fā)生誤報(bào)嗎?這是不可能的!
但 aardio 寫(xiě)的 WubiLex ,即使有開(kāi)機(jī)自啟、管理權(quán)限、替換系統(tǒng)文件這些功能 —— 仍然可以通過(guò)系統(tǒng)殺毒軟件的檢測(cè),安全無(wú)誤報(bào)。
這很簡(jiǎn)單。
可以看看 aardio 開(kāi)始頁(yè)的教程,提交過(guò)白操作非常簡(jiǎn)單。
提交以后還誤報(bào)?改點(diǎn)代碼再提交一下,基本都能過(guò)。
一般只要過(guò)系統(tǒng)自帶的殺毒軟件就足夠了。
不要介意在掃毒平臺(tái)上看到某個(gè)很少人用的殺毒軟件的出現(xiàn)誤報(bào)了,除了程序員自己,或者這些掃毒平臺(tái),普通用戶(hù)很少有動(dòng)力折騰這些殺毒軟件了。
在軟件主頁(yè)寫(xiě)很長(zhǎng)的誤報(bào)聲明,卻不去做一下簡(jiǎn)單的提交清除誤報(bào),這基本上只會(huì)把普通用戶(hù)嚇跑。
如果只是自用那就更簡(jiǎn)單,aardio 生成 EXE 會(huì)自動(dòng)設(shè)置信任路徑,不會(huì)有這些問(wèn)題。