上位机开发笔记 » 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://htmlayout.cn/t/21342

import win.ui; /*DSG{{*/ var winform = win.form(text="external 接口";right=1014;bottom=523) winform.add() /*}}*/    io.open()   import aaz.winThreadTask; impor
«  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
登 录
信息栏
公 告:

专注分享

谢绝纯提问

谢谢合作!
本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站