V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  g00001  ›  全部回复第 4 页 / 共 21 页
回复总数  408
1  2  3  4  5  6  7  8  9  10 ... 21  
2021-07-13 12:35:38 +08:00
回复了 005008 创建的主题 程序员 从前端到全栈
编程界最怪异的事就是有作平、有水平的人通常不会去踩别人,踩别人的都是些没水平、没作品的家伙。
2021-07-07 10:49:51 +08:00
回复了 vevlins 创建的主题 程序员 为什么有些开源项目选择在 gitee 开源而不是 github?
gitee 搜一下很多翻墙软件的镜像:
https://search.gitee.com/?skin=rec&type=repository&q=winxray
赶紧封掉吧。
2021-06-28 11:08:15 +08:00
回复了 jujuxia 创建的主题 生活 我醉了 在北京买房,父母就觉得我不管他们了,不要他们了
言语之间对父母的冷血令人震惊。
在外打拼在外买房没有错,但父母对你的关爱 —— 就一定是想吸你的血?!
子欲养而亲不在才是人世间最悲痛的事,袁隆平写给母亲的信看哭天下人,你很忙你比袁隆平还忙是吧?!
2021-06-22 10:27:45 +08:00
回复了 feng32 创建的主题 程序员 如何在一段时间内逐渐降低 Windows 的音量?
仅仅是模拟按键可能不行,这个还要读取音量进行比对,
能直接控制计划任务会更好。用 aardio 简单实现了一下:

import win.ui;
/*DSG{{*/
var winform = win.form(text="定时自动降低音量";)
winform.add(
edit={cls="edit";left=29;top=69;right=728;bottom=430;db=1;dl=1;dr=1;dt=1;edge=1;multiline=1;z=2};
trackbar={cls="trackbar";left=22;top=20;right=722;bottom=50;dl=1;dr=1;dt=1;max=100;min=0;z=1}
)
/*}}*/

import sys.audioVolume;
var volumeCtrl = sys.audioVolume();
winform.trackbar.setRange(0,100);
winform.trackbar.pos = volumeCtrl.volume;

import win.taskScheduler
var taskScheduler = win.taskScheduler(winform);

var task;
task = taskScheduler.create("自动降低音量开始",function( arguments ){
if(volumeCtrl.volume<=10) return; //小于最低音量时取消任务
task.enabled = false;

winform.setInterval(
function(){

volumeCtrl.volume = volumeCtrl.volume - 5;

//小于最低音量时停止任务
if(volumeCtrl.volume<=10){
volumeCtrl.volume = 10;
task.enabled = true;
return 0;
}
},1000
)
})

//每天 10 点 11 分开始执行任务
task.time = {minute = 18 ; hour = 10 ;}

//启动计划任务
taskScheduler.start();

//用于同步显示系统音量
winform.setInterval(
function(){winform.trackbar.pos = !volumeCtrl.mute ? volumeCtrl.volume : 0;},2000
)

winform.show(true)
win.loopMessage();
2021-06-08 10:13:31 +08:00
回复了 darknoll 创建的主题 程序员 用过 Electron/CEF 这些,感觉不太行
Electron 不但是体积大,多进程架构交互很麻烦,以前有个 remote 稍微缓解了一点,现在又说 remote 有问题,remote 慢一万倍,用 remote 政冶不正确。如果是 Windows 平台(其实桌面软件非 Windows 平台的市场份额小到基本可以忽略),换个思路利用 aardio 可以在任意网页浏览器里调用本地函数,支持微信浏览器这些 。

第一步:在网页里引入 aardio.js ,JavaScrip 这边的代码:

import aardio from 'aardio';
aardio.test("这是网页调用 aardio 的参数",1122);

第二步:在 aardio 里加上代码:

import web.rpc.externalServer;
var externalServer = web.rpc.externalServer();

//导出网页可调用的函数
externalServer.external = {
test = function(...){
winform.edit.print("external.test 被网页调用",...)
}
}

非常简单 ,完整代码参考 aardio 自带范例( web 应用->rpc 目录),类似的 aardio 标准库还提供 chrome.app 可以调用系统自带的 Chrome( 兼容 Edge 等浏览器 ) 制作软件界面,方法跟上面类似,只要在网页引入 aardio.js 就可以。

aardio 里其他一些浏览器支持库
1 、web.sysView:基于 WIN10 系统自带的 WebView1,Chromium Edge 内核,好用体积小。
2 、web.view:基于微软 WebView2,共享运行库,最新 Chromium Edge 内核,非常好用,支持导出 COM 对象,比 Electron 那啥 remote 简洁太多了。
3 、web.form: 基于已经普及的 IE11 内核组件(系统组件,不受微软移除 IE 浏览器影响),支持 React,系统自带,占用体积为 0,最大的优势是 COM 接口非常简洁。
4 、web.sciter: 基于 Sciter JS , 支持新新的 ES6 语法,体积迷你,专用于 桌面 UI 浏览器组件,非常好用。
4 、web.layout: 基于 HTMLayout , 专用于 桌面 UI 浏览器组件,非常好用。
6 、web.blink: 基于 MiniBlink,精简的 Chromium 内核,体积非常小,提供了丰富的接口.
7 、web.kit: 基于精简版开源 WebKit( WKE ) , 全积比 MiniBlink 还要小。
8 、web.cef3: CEF3 的 ActiveX 组件。
9 、electron.app: 这个是对 Electron 封装了一层,所有使用 electron.app 的软件共享一个运行库,所以生成的 EXE 可以极小,并且可以将 Electron 作为子窗口嵌入原生界面,不必全部依赖 Electron 。

其实可以替代 Electron 的方案很多,不是每个软件都需要 Electron,或者说其实很多软件并不需要过于依赖浏览器,例如开源软件 wubiLex,功能非常多,界面也不错,但下载包体积只有惊人的 900KB,整个界面基于 aardio 中开源的 plus 控件实现。
换个玩法, Windows 命令行 + Linux 终端 封装为桌面软件
https://github.com/aardio/PDocker
2021-05-20 12:42:23 +08:00
回复了 shawckzh 创建的主题 程序员 微软将于明年 6 月停止对 IE11 的支持
IE 控件还会长期保留 —— Windows 上太多软件用到 IE 控件了,
新系统已经找不到 IE 浏览器了,必须用 IE 访问的网页,可以用 aardio 写几句代码调用 IE 控件打开:

import web.form;
var wb = web.form(winform);
wb.go("http://www.baidu.com")

微软现在提供了 WebView2 控件,基于最新的 Chromium 内核,并且跟 IE 控件一样可以在 JavaScript 里调用 COM 对象,比 Electron 方便太多了,用 aardio 调用 WebView2 的例子:

import web.view;
var wb = web.view(winform);

wb.external = {
methodWithParametersAndReturnValue = function(a,b){
return a + b;
}
}

wb.html = /*
<script> (async ()=>{
var n = await aardio.methodWithParametersAndReturnValue(123,2)
document.write("返回值:"+n)
})()</script>
*/
2021-05-15 11:57:51 +08:00
回复了 3dwelcome 创建的主题 分享发现 看了 Windows 的 GUID 生成算法,惊掉我下巴。
几乎每天都能看到这些:Windows 多么差劲,用 Windows 难道不浑身难受,用 Windows 惊掉下巴 …… 一个产品能做到天天被人讨论也真是难得,虽然 Windows 占领了桌面系统最大的市场,但为什么总有人喷 Windows 呢?!因为这些喷 Windows 的人都是精英 —— 精英们总是会有高人一等的看法,瞧不起不上档次的人间凡品
2021-05-12 11:49:09 +08:00
回复了 imn1 创建的主题 Windows windows 有没有这种自动移动文件的工具?
xcopy,robocopy 的响应速度都慢,会创建不必要的临时目录,大点的目录就无法忍受了。用文件监控的目的是可以实时响应,速度快占用资源小,而且可以隐藏窗口后台运行。
2021-05-11 23:35:15 +08:00
回复了 imn1 创建的主题 Windows windows 有没有这种自动移动文件的工具?
2021-05-11 23:32:56 +08:00
回复了 imn1 创建的主题 Windows windows 有没有这种自动移动文件的工具?
可以自己写一个,下面是我用 aardio 写的:

import fsys;
import fsys.dirWatcher;
import win.ui;
/*DSG{{*/
var winform = win.form(text="临视指定文件并移动目录")
winform.add(
editChange={cls="edit";left=15;top=17;right=740;bottom=449;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=1}
)
/*}}*/

var targetDir = "d:\dst" //目标目录
var watchDir = "d:\src" //监视的目录
var watchRule = ".+\.zip" //监视规则

var watcher = fsys.dirWatcher.thread(
function(filePath,action,actionText){
if(action==1/*_FILE_ACTION_ADDED*/
|| action = 5/*_FILE_ACTION_RENAMED_NEW_NAME*/){
var fileName = io.splitpath(filePath).file
if(fileName ? string.match(fileName,watchRule)){
var path = io.joinpath(watchDir,filePath);
fsys.move(path,io.joinpath(targetDir,filePath));
winform.editChange.print("已移动",filePath);
}
}
}, watchDir);


//退出停止监视文件
winform.onDestroy = function(){
if(watcher) watcher.close();
}

winform.show()
win.loopMessage();
2021-05-06 16:38:43 +08:00
回复了 BoringTu 创建的主题 JavaScript 为什么你们要选择 TypeScript?
别人用 Windows 是因为觉得用 Windows 浑身难受?
别人盗版 Windows 是因为盗版 Windows 浑身难受?
别人用 Windows 是因为不了解 Windows ?
Windows 占领桌面市场最大份额是因为 …… 是因为 …… 是因为 ……
大概明白你为什么反感 TypeScript 了,

对了,
即然你因为孩子忙到没时间用 Windows 娱乐( 浑身难受 ),
怎么有时间上 V2 忙活一天不去多陪陪孩子。
2021-05-06 15:50:08 +08:00
回复了 BoringTu 创建的主题 JavaScript 为什么你们要选择 TypeScript?
“你肯定是用 windows 的吧,你不觉得 windows 用起来浑身难受么。。” 看到这句惊到了,你自己用一下 Windows 就浑身难受可以理解,为啥其他用 Windows 就得跟你一起浑身难受呢?! Windows 是靠用一下就浑身难受占领了桌面系统最大的市场?!
2021-04-20 09:52:08 +08:00
回复了 fly2never 创建的主题 Windows 有哪些软件是 Windows 有, 而 Mac 没有替代品的?
aardio —— Windows 上仅 6.5 MB 的桌面软件快速开发工具,
例如上面说的 everything,用 aardio 要不了几句代码就可以仿一个。
WIN10 可以下个开源软件 wubiLex,
遇到不会的字不要用拼音,按 Ctrl + F2 反查,wubiLex 会显示图形反拆、字根反拆,并用虚拟键盘播放一遍按键动画,再按 Ctrl + F2 可以立即回到原来的输入位置。

多用用就会越来越熟练,五笔不用选字闭着眼睛都能打还是挺舒服的,如果不会就用拼音,久而久之不会的字就越来越多。
2021-04-14 11:51:44 +08:00
回复了 vitozyf 创建的主题 程序员 求解一个 VB 代码修改文件名的问题
VB 不会,用 aardio 试了一下提权以后可以改名,代码如下:

//RUNAS//
import fsys;
import fsys.acl;

//获取权限
fsys.acl.takeOwn("C:\Windows\INF\usbstor.inf")
fsys.acl.icacls("C:\Windows\INF\usbstor.inf","/grant","Administrators:(F)")

//先备份为 usbstor2.inf
string.save("C:\Windows\INF\usbstor2.inf",string.load("C:\Windows\INF\usbstor.inf") )

//移除系统属性
fsys.attrib("C:\Windows\INF\usbstor.inf",4/*_FILE_ATTRIBUTE_SYSTEM*/)

//删除文件实现改名效果
fsys.delete("C:\Windows\INF\usbstor.inf")
2021-04-11 13:05:30 +08:00
回复了 liuzhiyong 创建的主题 分享发现 7z vs rar
7z 制作绿色软件其实不需要 几 MB,
7z 解压组件只有 100KB,lzma 解压组件只有几十 KB,用来嵌入自己的软件很方便。

7z 因为开源,编程接口也更友好,举个实际的例子:
aardio 的 MPlayer 扩展库里下载解压 mplayer.7z 的代码就只有几句:

import process;
import sevenZip.decoder2.httpFile;
var exDir = sevenZip.decoder2.httpFile.download(
"https://jaist.dl.sourceforge.net/project/mplayerwin/MPlayer-MEncoder/r38151/"
+ ( process().isWow64() ? "mplayer-svn-38151-x86_64.7z":"mplayer-svn-38151.7z" )
,"正在下载 MPlayer 组件",io.appData("aardio/std/mplayer/"),,"mplayer.7z")


这个 mplayer.7z 尝试用 zip 重新打包体积增大了一倍以上( 26MB ),
不用代理的用户在国外网站下载 26MB 的 zip 还是比较吃力的。如果觉得用 zip 格式只是为了体贴极少数没安装流行解压工具的用户,却让大多数有能力解压的用户痛苦并浪费公共资源,那没多大意义。
1  2  3  4  5  6  7  8  9  10 ... 21  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2650 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 51ms · UTC 15:49 · PVG 23:49 · LAX 08:49 · JFK 11:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.