搜索
查看: 3908|回复: 12

aria下载器

[复制链接]

3

主题

7

帖子

66

积分

一级会员

Rank: 2

积分
66
发表于 2018-4-24 13:08:43 | 显示全部楼层 |阅读模式
这边利用网上的aria的界面代码,整合web.blink.form,做了个简单的客户端,方便平时下载

资源:
    1. aria示例 http://bbs.aardio.com/forum.php? ... 2045&highlight=aria
    2. WEBUI   https://github.com/mayswind/AriaNg


链接: https://pan.baidu.com/s/1NfPgDTWAMhhWOuUMtOlmZQ 密码: mxhd

aria.png
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-4-24 15:21:18 | 显示全部楼层
感谢分享,非常好的例子。

如果想拖动窗口改变大小时显示内容,
可以设置 winform.disableDragFullWindow = false; 就可以了,

但是这样是会出现网页背景被擦除的过程,如果希望显示完美的一点,最好是弄一个九宫格的背景图。
直接放一个custom控件不能解决问题还会捣乱。窗口一般不要设置内部裁剪,这样虽然显示流畅了,但是会出现有时候某些控件不刷新的问题,
例如最大化,再还原,按钮全不见了,因为内部裁剪模式下,他是不负责子窗口重绘的。
这个功能通常用于一些负责整个窗口绘制的控件,例如浏览器一般会用到。

窗口拖动在新版可以写简单一点:
winform.onMouseDown = function(wParam,lParam){
    winform.hitCaption()   
}

标题栏可以拖长一点,加上双击标题栏放大窗口,
我注意到大家做的很多界面都没有处理这个小细节。
winform.titleBar.oncommand = function(id,event){
   
if( event == 0x1/*_STN_DBLCLK*/ )
        winform.btnMax.oncommand();
}
还有一个问题,aria如果指定固定端口,作为客户端软件来说不是很合适,可能会出现端口冲突,
所以我们最好是用 aardio分配一个空闲端口,再用JS调用aardio获取这个端口。

import web.blink.form;
var wb = web.blink.form(winform.custom);

wb.external = {
    getDefaultRpcPort =
function(){
        
return tostring(ws.rpcPort);
    }
    getDefaultRpcSecret =
function(){
        
return ws.token;
    }  
};

wb.go(
"/html/index.html");

另外,软件退出时,aria进程并没有退出。
prcs.close() 只是释放进程句柄,并没有关闭进程。
对于aria2来说,更合适的是调用他的shutdown指令,让他自己关闭。
//关闭窗口前关闭aria2
winform.onClose = function(hwnd,message,wParam,lParam){
    winform.show(
false);//先隐藏窗口,别让用户觉得卡
   
    ws.connect(
"ws://127.0.0.1:" + ws.rpcPort + "/jsonrpc");
   
if( ws.rpc.waitForConnected(,2000) ){
        ws.aria2.shutdown();
    }
   
    prcsAria2c.close();
}

还有一个问题是,你的工程目录文件有点问题,
1、可以右键点工程目录,在菜单中点击“同步本地目录”
2、aria.exe所在的目录,在属性中设置内嵌资源为false

html如果要嵌入EXE,还要加上 import web.blink.portable;
当然用 wsock.tcp.simpleHttpServer 也可以,修改后的源码如下:

aria下载器.改为生成单个EXE文件.7z (2.13 MB, 下载次数: 2838)
回复

使用道具 举报

3

主题

7

帖子

66

积分

一级会员

Rank: 2

积分
66
 楼主| 发表于 2018-4-24 19:31:10 | 显示全部楼层
Jacen.He 发表于 2018-4-24 15:21
感谢分享,非常好的例子。

如果想拖动窗口改变大小时显示内容,

多谢Jacen指导,收获颇多。                                                                     
回复

使用道具 举报

15

主题

39

帖子

272

积分

二级会员

Rank: 3Rank: 3

积分
272
发表于 2018-4-24 23:28:08 | 显示全部楼层
{:3_48:}{:3_48:}
回复

使用道具 举报

6

主题

50

帖子

370

积分

二级会员

Rank: 3Rank: 3

积分
370
发表于 2018-4-25 23:36:20 | 显示全部楼层
最小化后,再还原,一片蓝色,custom区域不出来,要点击一下最大化,重绘下,
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-4-26 00:44:18 | 显示全部楼层
人生方程式 发表于 2018-4-25 23:36
最小化后,再还原,一片蓝色,custom区域不出来,要点击一下最大化,重绘下,
这个原因是因为zjldh在主窗体设置了内部裁剪,原因我在2楼已经讲了,你可以下载我修改后的源码试一下。
回复

使用道具 举报

6

主题

50

帖子

370

积分

二级会员

Rank: 3Rank: 3

积分
370
发表于 2018-4-26 00:54:01 | 显示全部楼层
Jacen.He 发表于 2018-4-26 00:44
这个原因是因为zjldh在主窗体设置了内部裁剪,原因我在2楼已经讲了,你可以下载我修改后的源码试一下。

嗯,就是下载你上传的源码                                                                       
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-4-26 20:00:56 | 显示全部楼层
人生方程式 发表于 2018-4-26 00:54
嗯,就是下载你上传的源码

更新 web.blink 再试一下看
回复

使用道具 举报

0

主题

3

帖子

32

积分

新手入门

Rank: 1

积分
32
发表于 2018-4-26 20:43:21 | 显示全部楼层
win7 64位 切换语言乱码
回复

使用道具 举报

0

主题

3

帖子

32

积分

新手入门

Rank: 1

积分
32
发表于 2018-4-27 13:18:39 | 显示全部楼层
每次启动都是乱码,点击ariang设置里的重置设置后,显示就正常了。。
回复

使用道具 举报

6

主题

50

帖子

370

积分

二级会员

Rank: 3Rank: 3

积分
370
发表于 2018-4-28 12:58:00 | 显示全部楼层
Jacen.He 发表于 2018-4-26 20:00
更新 web.blink 再试一下看

嗯,更新了blink,最小化正常了,是bink版本问题,下次遇到问题,我会注意先更新版本,就是现在启动的时候是乱码,win7 64位 重置后正常。
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-4-28 16:25:41 | 显示全部楼层
这个乱码问题跟win7没有关系,之前测试的时候是没有乱码的,
miniblink新版里什么操作系统都会显示为乱码。但是用chrome打开也不能正常显示中文界面,AriaNg的文档里有说明不能通过本地文件加载语言包。

用 wsock.tcp.simpleHttpServer 转换为服务端地址就可以显示为中文界面了。
import wsock.tcp.simpleHttpServer;
wb.go( wsock.tcp.simpleHttpServer.startUrl(
"/html/index.html") )
但是这样又会出现一个问题,一直无法连接aria2,我试了一下换webkit也无法连接成功。后来试了一下调用miniblink的enableCspCheck(false)就可以正常连接了。

所以打开网页的代码要更改为:
wb.enableCspCheck(false);

import wsock.tcp.simpleHttpServer;
wb.go(wsock.tcp.simpleHttpServer.startUrl(
"/html/index.html"));
2楼的源码压缩包我已经更新了,大家遇到这些小问题,也可以尝试自己去分析查找一下原因,毕竟开源是为了让更多人参与到技术分享中来。

回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2018-8-7 18:09:02 | 显示全部楼层
修正下载过程中断线的问题:
http://bbs.aardio.com/forum.php?mod=viewthread&tid=22045
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-15 14:54 , Processed in 0.078125 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表