V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  g00001  ›  全部回复第 2 页 / 共 21 页
回复总数  408
1  2  3  4  5  6  7  8  9  10 ... 21  
微软自己写的很多程序,
都是往 ILSpy 里一拖源码就出来了,这是因为微软买不起 VMP ?!这是因为微软没你家公司有钱?!

我有说过这是坏事吗?!
源码一拖就出来,多好的事,就像楼上那位说的,人类命运共同体嘛!!!

别人的意思都没看懂,就骂起来了,戻气这么重?!
@KoMAsS121
我从来没有怀疑过你买得起 VMP ,
更没有把你的发言极端化。也没有与你探讨别人应不应该去加壳。
别人的公司有没有钱,加不加壳,不是你该去管,或者你该去嘲笑的事,管好你自己就行了。

我只是说了一下 C# 写的程序往 ILSpy 里一拖源码就可以导出来,这是一个纯技术问题,你是如何扯到别人公司有没有钱上面?!你的意思是伟大的 ILSpy 是专为穷人开发的?!

根本就没有人跟你争任何东西。
至于你是不是阴阳怪气,根本就没有人在乎,你不需要解释一大堆。
@FrankHB

aardio + Python 不是在降低门槛,
也不是要求别人会 Python 才能使用 aardio 。
aardio 支持十几种编程语言,不等于要会十几种编程语言。

至于你说的“你要提供一种新的方案当作选择没什么问题,但是没解决原有的问题还会有效添乱的话,那我自然不会有什么好话。”……

那么你在搜索引擎扒了 aardio 那么久,
没 Google 一下 Python + aardio 的文章?!
这是没有解决原来的问题?!
这是“添乱了”?!

aardio 写的录屏工具,780 KB ,没解决原来的问题吗?!
https://i.v2ex.co/5bUB49hl.png

aardio 写的桌入法工具,960 KB , 解决原来的问题吗?!
https://i.v2ex.co/Qpvgn8Vh.png

这些软件都是由 aardio 实现,没有用到 Python ,aardio 并不依赖 Python ,只是可选项。
这些软件都是开源的,你都说了人类命运共同体嘛,是不是?!

说实话你的帖子写得太长,我没仔细看,你似乎在表达 aardio 不适合你,不够这好那好 …… 没毛病,我又没说 aardio 比别的语言好,也没说 aardio 适合你。

任何国外的编程语言都比 aardio 好一万倍。
国产语言能好到哪里去?!本来也没人反对你啥。
@duke807 是的是的,就算 aardio 的文章在微信上是高赞,在知乎上是高赞,那都是没有意义的 …… 就算 aardio 作者用了 17 年开发了 aardio 给大家免费使用 …… 也都是没有意义的,把你 “恶心” 到了,这是最严重的问题,没人跟你争,你棒棒的。
@duke807
"恶心" 到你的 aardio 官网文章,在微信公众号上是高赞文章。
不过你 “恶心” 没错,请继续 “恶心”,支持并赞同你,没毛病。
Google 一下 Python + aardio 的文章有很多
https://www.google.com/search?q=python+aardio
谁喊打了?!你那个自称 Python 用户的遥月?!

知乎上尽挖坟挖到了那些没人关注的帖子?!
500 赞的介绍 aardio 的贴子你神奇地没找到?!
https://www.zhihu.com/question/453979660/answer/1841544999
这是你说的人人喊打吗?

又开始扯 aardio 不开源吗……
aardio 官网首页的回答这个问题的这篇文章你也选择性忽视了?!
https://mp.weixin.qq.com/s/VBV5px3IPrJR40kpEk5M-w
@FrankHB
觉得你很有趣,
说了一下 C# 写的软件可以导出源代码,你就上升到 “人类命运共同体” 吓我一跳。

提了一下国产的 aardio ,
你这就卖力地搜索 aardio 的所谓 “黑料”,
说实话我看得莫名其妙,你到底是想表达啥意思?!

你在知乎扒了这么久,不扒到别人在问为什么同是国产语言,aardio 在网上一直是好评居多?!这就是你所谓的“人人喊打了,蔚为奇观 ……” 是你的人类命运共同体这么跟你说的?!
@timpaik 你说的很对,这个主要是楼上那位转到额外的话题了。
跨平台有很多种,其实没有真正的完全跨平台,都是部分跨平台,还得生成不同平台的执行程序,开发中还是不得不面对各种专有平台的问题,在 Electron 群里就经常看到他们在纠结一些很初级的问题。

首先在事实上 macOS + Linux 的桌面市场份额小于过气的 Win8 。跨平台的方案通常会带来不必要的负担,像 Python 开发本来是很利索的,但因为有跨平台的负担,所以写桌面界面,不如 aardio 轻快。

如果考虑事实上的 “部分跨平台” ,将一些公共的代码做成组件,用 C++ 或 C# 写都可以,或者如果用 WebView2 这种网页套壳 —— 网页部分也可以做成公共组件。

那么如果说是这种部分跨平台的话,aardio 就非常方便了,aardio 可以调用十几种编程语言以及这些语言的组件,像 C# 组件 C# 函数,或者 C,C++ 函数这些都不用写中间代码,直接可以调,更不要说调网页有多方便了。
Google 一下 Python + aardio 的文章
https://www.google.com/search?q=python+aardio
不同的编程语言不一定非要互撕,也可以团结合作。
@FrankHB
呵呵,这么 low 的帖子居然能被你扒出来,那么不顺手扒一下别人怎么回复的吗?

Jacen
————————————————————————————————————
有一个现象无法解释,能学好其他编程语言的,学 aardio 都很快,
很多人告诉我几乎拿上手就会用,比任何编程语言都容易。

而说 aardio 难学的 —— 这些人几乎学不好任何编程语言,
做 aardio 这十几年我看到的喷 aardio 不好学,却能学好其他编程语言的 —— 我一个都没见到。

上次看到博客园的遥月长篇大论的喷 aardio ,然后还刷了几天 C# 的学习心得,其实我很期待他真的能学好一样其他的编程语言,但是一年过去了,他人间蒸发了,C#他学了十几年都没学会,可他就是愿意跪舔 C#。

如果 aardio 精心打磨了 17 年的教程你觉得还不方便让你入门。
如果 aardio 提供的系统而完善的使用手册、库函数手册 —— 你觉得不够容易。
如果 aardio 提供的大量篇幅短小的快速入门教程,从最简单的程序到一步步做出精美的界面,有图文,有视频,涉及到 aardio 的各个方面 —— 你又觉得不够系统。

那没有理由继续为难自己用 aardio 啊,为什么不换一个更好的呢?!更好的编程语言那么多。

如果你对编程教学、鉴别品评编程语言都很有心得,那为什么不对自己好一点,选一个好语言给自己?!

如果你对编程教学极有心得,那为什么不对自己好一点,把这些好的教学方式用到自己身上?!

不是不想改进,aardio 一直在努力倾听和前行,活跃更新了十几年。但是这些地图炮式的吐槽 —— 你自己都没办法用这些方法教好你自己,又怎么肯定用你的方式能教好其他更多的人?!

这是昨天一个用户发给我的感谢信:
------------------------------------------------
感谢 aardio 作者,我是刚开始用 aardio 写界面(实在不想用 pyqt 了),python 写数据处理业务,感受到了 aardio 的强大和奇妙。我想把 python 数据处理过程的信息反馈到前端界面中,《这回让我们把 Python 玩出花来》看完后,用了几分钟搞定!!!实在令人惊讶 aardio 的强大!!!再次感谢 aardio 作者的奉献!!!
------------------------------------------------

他才刚接触 aardio 几分钟而已,看了一个简单的教程就用 aardio 写出了自己想要的软件。
有不计其数的用户学不好其他编程语言,却学好了 aardio 。

luohexi
————————————————————————————————————
我是非专业的,疫情以来这两年就想做点文件处理的工具,主流软件都摸索了一遍,今天发现了 aardio ,学了一天就整出来了一个工具,正是我想要到效果。真是相见恨晚啦,太感谢作者大神了,中国人的思维太了不起了。功能强大而直观,不像所谓到那些主流语言弯弯绕太多。
有些作者可能事先并不知道这事。
前些天还看到有人说用 C# 写的软件写完了才知道别人可以轻松导出源码(包含工程文件),
有一个方法可以试试,用 aardio + C# 开发,操作简单不用花钱,可以阻止 ILSpy 还原代码,可以内存加载 C# 写的 DLL ,生成极小的独立 EXE 文件。

发个例子:
https://i.v2ex.co/W5pf4MRQ.jpeg

源代码;
import win.ui;
var winform = win.form(text="嵌入 .Net 控件")
winform.add(custom={cls="custom";left=25;top=25;right=736;bottom=274;db=1;dl=1;dr=1;dt=1;z=1})

import System.Data;
import System.Windows.Forms;
var Forms = System.Windows.Forms;

var dataGridView = Forms.CreateEmbed("DataGridView",winform.custom);
var dataTable = System.Data.DataTable("DT");

import System.Type;
dataTable.Columns.Add("名称");
dataTable.Columns.Add("计数",System.Type.GetType("System.Double"));
dataTable.Columns.Add("选择",System.Type.GetType("System.Boolean"));

//绑定数据源到视图
var dataView = System.Data.DataView(dataTable);
dataGridView.DataSource = dataView;
dataGridView.EditMode = 2;

//添加测试数据
var row = dataTable.NewRow();
row.ItemArray = {"王五",123, true}
dataTable.Rows.Add(row);

winform.show();
win.loopMessage();
@FrankHB 我是说了 C# 一拖源码就可以导出来,但应当没有 “纠结” 这事,源码一拖就出来多好的事!放心没有人想“刻意藏源码”,虽然现在不开源的桌面软件数量远远多于开源软件,但就像你说的人类命运共同体什么的 …… 就这样。

@KoMAsS121 赞同你说的没错,公司不缺钱可以用 C++ 开发,可以用汇编语言开发,不差钱任何问题都不是问题,C# 一拖源码就可以导出来只要有钱就不算缺点,正确得无懈可击。不差钱都没空上网争论哪个语言好。
macOS + Linux 的桌面市场份额小于过气的 Win8 。跨平台带来的回报不大,代价却很大,专有平台的优势与很多系统自带组件都不能利用起来。

而且 “桌面软件”是一个很大的概念,具体到是什么桌面软件适合的开发工具都不一样,像用 C# 开发的桌面软件,往 ILSpy 里一拖源码就可以导出来,这要有心理准备。现在 Electron 也是被滥用得太狠了,网页套壳的程序,那确实 Electron 、WebView2 这些都没问题。但是有很多软件并不一定适合用 Electron 之类开发,像录屏软件 Gif123 下载体积只有 720KB ,输入法工具 WubiLex 下载体积只有 960KB ,这种软件用 Electron 就只会增加体积但并不能消减开发成本。

不过如果喜欢在界面上弄很多动画,这最好还是用网页套壳,Electron 其实也过气了,在 Windows 上更好的替代是 WebView2 。
2022-03-06 07:19:49 +08:00
回复了 fengsien1999 创建的主题 PowerShell 现在 PowerShell 是不是没有什么用?
有些简单的事搞太复杂了也不一定好,
就像 GIF 截个屏吧,.Net 写的 ScreenToGif 一个 EXE 文件 158 MB ,复制个 GIF 都不行。

而 aardio 写的 Gif123 就几百 KB ,
一键复制 GIF ,可以粘贴到其他程序里不会变空白,变静态图像、无效图像。

如果不习惯 PowerShell ,
可以试试 aardio 里调用 PowerShell 会比较轻便。

一、aardio 导入 PowerShell Cmdlet 直接使用(内存嵌入、免安装):

import dotNet;
Cmdlets = dotNet.loadFile($"\PowerShell\AudioDeviceCmdlets.dll");
CoreAudioApi = Cmdlets.import("CoreAudioApi");
var mmDeviceEnumerator = CoreAudioApi.MMDeviceEnumerator()

二、aardio 执行 PowerShell 命令

import dotNet.ps;
var result = dotNet.ps.command("Get-Command",{Name="*Process"});

三、aardio 通过管道调用 PowerShell

import process.popen;
var prcs = process.popen.ps(`-Command "& {Get-Command -Name *Process}"`);
var result = prcs.read(-1);
很多软件复制 GIF 都有兼容性问题,
aardio 有个自带开源 GIF 录屏工具 录屏 + 预览 + 复制 很方便,复制的 GIF 在 Chrome ,QQ 这些里面都可以正常粘贴。

https://i.v2ex.co/6vHbxOos.jpeg
这个用什么编程语言写应当都不难,就是一个简单的下载。
不过很多安装包比较大,安装可以是静默自动安装,没个界面不太方便,最好用能开发图形界面的桌面开发工具,例如 aardio ,举几个例子:

用 aardio 自动安装 Node.js
-------------------------------
import nodeJs;
nodeJs.install();

用 aardio 自动安装 JRE
-------------------------------
import java.jre.v8;
import java.jre.v8ora;
import java.jre.v6;

用 aardio 自动安装 Go 语言
-------------------------------
import golang;
golang();

用 aardio 自动安装 Rust
-------------------------------
import process.rust;
process.rust.install();

用 aardio 自动安装 julia
-------------------------------
import julia;

用 aardio 自动安装 Ruby
-------------------------------
import process.ruby
import process.ruby.install();

用 aardio 自动安装 VS Code
-------------------------------
import process.code;
process.code.install();

用 aardio 自动安装 Electron
-------------------------------
import electron.runtime

用 aardio 自动安装 ChromDriver 自动匹配浏览器版本
-------------------------------
import chrome.driver

aardio 自带的 Python 运行库( 这个是自带的绿色版,不用安装)
-------------------------------
import py2 Python 2.7
import py3 Python 3.8
import py3.4 Python 3.4
import py3.6 Python 3.6
import py3.10 Python 3.10
2022-02-22 22:50:04 +08:00
回复了 louisyoungx 创建的主题 Python 一行代码动态加载 Python 库依赖
Python 做界面、生成 EXE 其实只要用 aardio + Python 可以省很多事。
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzA3Njc1MDU0OQ==&action=getalbum&album_id=2270340412479438855&scene=173&subscene=10000&sessionid=0&enterid=1645540841&from_msgid=2650932062&from_itemidx=1&count=3&nolastread=1#wechat_redirect

aardio 里的库一直是按需动态加载,生成 EXE 也是按需发布。
也可以用这种方式引用 Python 模块,例如:

import py3;
import py3.lib.numpy;
import py3.lib.matplotlib;
import py3.lib.tkinter;

而且这种是绿色 Python 运行时,不影响系统安装的 Python 环境,复制到哪台电脑都可以直接运行。
2022-01-24 18:09:22 +08:00
回复了 wweerrgtc 创建的主题 Windows 有什么好用的 Windows 自动化软件
首先要实现开机自动启动,静默获取管理权限(去掉确认对话框),用 aardio 实现:

import sys.runAsTask;
var task = sys.runAsTask("devTool","开机禁用设备");
task.register("/task");


得到管理权限以后,然后找出蓝牙设备并且禁用,aardio 代码:

import sys.device;
import process.devcon;
var devices = sys.device("{E0CBF06C-CD8B-4647-BB8A-263B43F0F974}" );
for( index,classGuid,deviceDesc,hardwareId in devices.each(8,0,1) ){
var ret = process.devcon("disable",hardwareId[1]).read(-1);
}

上面代码中的 "disable" 改成 "enable" 就是启用。

系统音量设为静音,aardio 代码:

import sys.audioVolume;
var volumeCtrl = sys.audioVolume();
volumeCtrl.mute = true;

如果想在关机前操作,aardio 代码:

import win.ui;
var winform = win.form(text="form")

winform.beforeSystemEndSesssion = function(){
//关机前要执行的操作写这里
}

winform.show();
win.loopMessage();
2021-11-11 17:26:14 +08:00
回复了 liuser666 创建的主题 C# 开发到一半忍不住吐槽一下 Windows 桌面开发
再强大再万能的东西都有他的局限。
例如万能的 Python 网上搜一下也有很多跑去用 Python + aardio 做桌面开发。

.Net 就是房车,复杂就是他的使命。
要简单和接口自由可以开 aardio 这种小自行车。

官网上有篇文章《看看短短几句 aardio 代码能做什么》,抠了几段过来:

aardio 调用原生 API
-----------------------------------
::User32.GetCursorPos({ INT x; INT y; });


aardio 调用 .Net
-----------------------------------

import console;
import dotNet;
var System = dotNet.load("System").import("System");
var uri = System.Uri("https://www.aardio.com")

console.log( uri.Host );
console.log( uri.GetHashCode() );


aardio 调用 Python
-----------------------------------
import console;
import py3;

var itertools = py3.import("itertools")
var permutations = itertools.permutations({"a","b","c"});
var pyList = py3.list(permutations);

for( item in pyList.each() ){
console.log(item);
}


将任何网络 API 自动导入 aardio
-----------------------------------
import web.rest.jsonLiteClient;
var http = web.rest.jsonLiteClient();

var countApi = http.api("https://api.countapi.xyz/hit{/domain}{/key}")
var data = countApi["key"].get();
2021-10-23 16:39:53 +08:00
回复了 yocoso 创建的主题 Node.js 操作系统用户名为中文时,使用 nodejs 的 exec 命令执行指令失败
Node.js 虽然强大,毕竟不是专为 Windows 设计,有时候这种坑是真不少,
用一段 aardio 代码解释一下 Node.js 为什么会有乱码:

import win.ui;
/*DSG{{*/
var winform = win.form(text="Node.js";right=754;bottom=457)
winform.add(
edit={cls="edit";left=21;top=19;right=727;bottom=426;edge=1;multiline=1;z=1}
)
/*}}*/

import nodeJs;
nodeJs.require("iconv-lite");

var testjs = /***
console.log("双方编码一致没乱码:")
console.log(process.argv);

const iconv = require('iconv-lite');
const { exec } = require('child_process');
exec('echo 中文', { encoding: 'binary' }, (err, stdout, stderr) => {
console.log("乱码了:",stdout);
stdout = iconv.decode(Buffer.from(stdout, 'binary'), 'cp936');
console.log("不乱码了:",stdout);
});
***/

var node = nodeJs.exec(testjs,"--log","测试 UTF-8 不会乱码 😀");
for( all,out,err in node.each() ){
winform.edit.print(all);
}

winform.show();
win.loopMessage();
1  2  3  4  5  6  7  8  9  10 ... 21  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.