上位机开发笔记 » terrorist
terrorist

用户名:terrorist

注册于:2021-02-15

主题数: 21     回贴数: 21

网站:

介绍:

最后活动于2022-07-09
回复了主题  › 微软Azure文本转语音下载器

思路值得学习

«  2022-07-09
回复了主题  › IDE 文件切换助手

更新了,加入了线程池用于打开/切换文件, 界面相应速度接近 0 毫秒

«  2022-07-09
创建了主题  › IDE 文件切换助手



当打开的代码文件很多,而且有些文件的名字一样,切换起来就迷糊了

这个文件切换助手可以加载一些相关联的代码文件,例如子类父类关系

«  2022-07-08
回复了主题  › 发布 redis 扩展库

找到一个 redis 7.0.2 的  x64 服务端


https://github.com/zkteco-home/redis-windows

«  2022-06-30
创建了主题  › hp socket 网络库如何构造 extra 用户数据包含不定长字符串的方法

如何装一个不定长的字符串? 就是指针, 并且要控制指针的释放,所以要用动态指针

import util.metaProperty;

namespace aaz.libhpsocket.app.userData;

«  2022-06-30
创建了主题  › 发布 bilibili 扩展库, hp socket ssl websocket 的使用

可以用来获取B站的直播弹幕,顺便演示了 hp socket 网络库中 ssl websocket 的使用


«  2022-06-30
回复了主题  › 去除对字节数组进行 raw.conver 后产生的多余的结束符

回复#1 @lup1 :

感谢纠正

«  2022-06-16
创建了主题  › B 站弹幕解析 class header{ int packetLen; word headerLen; word version; int opCode; int magicNumber; }unpack = function(pData){  var ret = ..raw.convert(pData, header()) var packetLen = ..raw.swap(ret.packetLen, "int") var 
«  2022-06-16
创建了主题  › 去除对字节数组进行 raw.conver 后产生的多余的结束符 import web.json import console // 一个字节数组 class struct{ ctor( str ){ this.str = str }; BYTE str[5] } var obj = struct("aaa")    console.log( "str 长度:", #obj.str ) // 打印 3 // 写入指针,再取出来 var ptr = raw.buffer(obj) var obj2 = raw.convert(ptr, struct()) console.
«  2022-06-15
«  2022-06-06
«  2022-06-05
回复了主题  › 发布 emitter 扩展库,用于多个对象互相通信

实列一: 匿名组

import console import aaz.emitter class cls{ ctor(){ // 参数为空,创建匿名事件组,仅限对象自己使用 this = ..aaz.emitter() }; go = function(param){ // 触发事件 this.emit("go", param) return true;  } } var obj = cls() // 订阅事件 obj.on("go",function(param){
«  2022-06-02
创建了主题  › 发布 sciterEx 扩展库, 增加一种定义本机函数的方法

增加一种定义本机函数的方法


扩展库源码

http://https://github.com/btx638/aaz-aardio/tree/master/aaz/sciterEx

«  2022-05-31
创建了主题  › 发布 emitter 扩展库,用于多个对象互相通信

库地址: https://github.com/btx638/aaz-aardio/tree/master/aaz/emitter


创建类

emitter()  参数为空,创建匿名组,对象自己内部使用

emitter("组名")  加入特定的通讯组,多个对象互相通讯

«  2022-05-30
创建了主题  › sciter 运行本机耗时函数

用的是 winThreadTask  库

https://chengxu.xyz/t/21342

import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=1014;bottom=523) winform.add() /*}}*/    io.open()   import aaz.winThreadTask; import 
«  2022-05-29
回复了主题  › 发布 winThreadTask 扩展库, 用于创建线程并且接收返回值

测试出一个解决方案,要先把 proc 复制一份

var procCopy = proc.clone()

完整如下:

import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=1014;bottom=523) winform.add() /*}}*/    io.open()   import thread.command; im
«  2022-05-29
回复了主题  › 发布 winThreadTask 扩展库, 用于创建线程并且接收返回值

想利用这个库实现在 web.sciter 里面执行耗时函数,执行完毕后运行一个回调函数, 为什么以下代码会报错呢 ?

import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=1014;bottom=523) winform.add() /*}}*/  io.open() import thread.command; import web.sciter; import web.sciter.debug var wb
«  2022-05-29
创建了主题  › 发布 winThreadTask 扩展库, 用于创建线程并且接收返回值 import thread.command; import win.guid; namespace aaz; class winThreadTask{ ctor(){ var thCmd = ..thread.command() }; create = function(func, onEnd, ...){ var guid = tostring(..win.guid.create()); thCmd[guid] = function(...){ onEnd(...); thCmd[gui
«  2022-05-28
创建了主题  › sciter 全局事件应用: 后端向前端发布事件

全局事件可用于来自应用程序的本机端(此处为“后端”)的

«  2022-05-19
创建了主题  › sciter 表格组件例子,演示了组件之间的事件订阅和触发 import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add() /*}}*/ import web.sciter import web.sciter.debug var wb = web.sciter( winform ) wb.attachEventHandler( web.sciter.debug ); wb.html = /** <!doctype html&
«  2022-05-04
回复了主题  › 谷歌浏览器自动化之百度搜图

模拟一个等待函数

var js = /** const sleep = (time) => {    return new Promise(resolve => setTimeout(resolve, time)) } async function sleepAsync(time) {    await sleep(time) } sleepAsync(%s) **/ var wait = function(ms){ return cdp.Runtime.evaluate(
«  2022-04-30
回复了主题  › 谷歌浏览器自动化之百度搜图

截图淘宝首页


import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=623;bottom=103) winform.add( btnScreenshot={cls="button";text="截图";left=440;top=16;right=576;bottom=48;z=3}; edUrl={cls="edit";text
«  2022-04-30
创建了主题  › 谷歌浏览器自动化之百度搜图 import win.ui; /*DSG{{*/ var winform = win.form(text="百度搜图";right=287;bottom=103) winform.add( button={cls="button";text="运行";left=88;top=48;right=216;bottom=88;z=1} ) /*}}*/ //io.open() import aaz.chrome.dp; var cdp, err = aaz.chrome.dp() if(!cdp){     winfor
«  2022-04-29
创建了主题  › sciter 触发 JS 类组件的自定义事件的示例 import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=199;bottom=239) winform.add( button={cls="button";text="Button";left=32;top=144;right=128;bottom=184;z=1} ) /*}}*/ import web.sciter import web.sciter.debug;  var wb = web.sciter( winfor
«  2022-04-27
回复了主题  › sciter 资源打包和加载的步骤

开发时可以载入没打包的资源

import web.sciter if(_STUDIO_INVOKED){ import web.sciter.inspector } var wb = web.sciter(mainForm) if(_STUDIO_INVOKED){ import web.sciter.debug;  wb.attachEventHandler( web.sciter.debug ); wb.go("/sciter dev/main.html") } else { wb
«  2022-04-26
创建了主题  › sciter 资源打包和加载的步骤

使用 packfolder.exe - 它会将文件夹与

«  2022-04-26
回复了主题  › sciter.js 嵌入 web.view

把自定义控件改为 richedit ,然后调整大小也是出现穿透桌面的情况,代码如下

import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=927;bottom=559) winform.add() /*}}*/ import web.sciter; var wbSciter = web.sciter( winform );   // doc: \sciter-js-sdk-main\demos\usciter\re
«  2022-03-22
创建了主题  › sciter.js 嵌入 web.view import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=927;bottom=559) winform.add() /*}}*/ import web.sciter; var wbSciter = web.sciter( winform ); import web.view;  namespace web.sciter.behavior.webview{   onAttach = function (scOwner) { 
«  2022-03-22
创建了主题  › 谷歌 brotli 解压缩简易版

一,库源码:

namespace aaz.libbrotli{ _dll := ..raw.loadDll($"~\lib\aaz\libbrotli\.res\libbrotli.dll",,"cdecl") decompress = function(str){ var state = _dll.BrotliDecoderCreateInstanceP(0, 0, 0); var availableIn = {int value=#str}; var nextIn = {ptr v
«  2022-02-05
回复了主题  › 对 thread.semaphore 中的一段源码有疑惑,请指教 if( !max || max <=0 ) error("@参数2 最大计数值必须大于0"); if(initCount <= 0) error("@参数3 初始计数值必须大于0"); elseif(initCount > max) error("@参数3 初始计数值不能大于最大计数值"); elseif(initCount === null) initCount = max; if(targ1 == "string"){ // 尝试打开 this.handle = OpenSemaphore(
«  2022-01-13
登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap