标签: aardio源码

aardio中electron怎么实现窗体透明背景?

electron中的实现方法在electron中实现窗体背景透明,只需在BrowserWindow时指定参数123456789101112mainWindow = new BrowserWindow({ height: 960, width: 1820, transparent: true, resizable: false, frame: false, webPreferences: { devTools: false, nodeIntegration: true, enablemotemodule: true }}) 然后设置网页的body背景色body{background:#ffffff00}和mainWindow.setIgnoreMouseEvents(true)并且需要开启aero主题! aardio中实现aardio中作者在electron.app的288行中,指定了backgroundColor=’#ffffff’;如果只按照electron中设置窗体背景透明是无效的(这个问题一度让我觉得aardio中的electron无法实现窗体背景透明,后来看了electron.app才发现这个设置),需要同时设置backgroundColor,在electon设置如下参数,就可以在aardio调用electron,而实现窗体背景透明,这样aardio就可以愉快地使用electron!毕竟很多html5的页面只有electron才正常显示!1234567891011121314151617181920212223242526theApp.start( //electron打开的第一个页面,必须指定应用程序目录下的aardio代码文件 indexUrl ="/res/main.html"; browserWindow = { title="electron程序标题"; transparent=true;//设置背景透明 resizable=false;//禁止改变大小 frame=false;//设置无边框窗口 backgroundColor=0;//设置背景颜色透明 icon="/wbc.ico";//指定图标 webPreferences = { //devTools = false;//禁止调试窗口 nodeIntegration=true;//允许使用nodejs enablemotemodule=true; webviewTag=true } } /* 可选用args字段指定Chrome命令行参数, 必须在main.js中创建窗口以前就导入aardio模块才会生效 */ args ={ icon="./wbc.ico" }); 最新版aardio,作者已经改进了,不用设置backgroundColor,直接设置transparent为true就可以设置背景透明了! 同时作者倡导的import electron.runtime;如果运行程序时没有electron,自动下载,但写的程序,使用者根本不想等待下载,所以正常应该在创建electron时事先指定下好的electron,打包后让使用者只下载一次。如把electron下载好后,放在程序目录,创建electron就这样 1var theApp = electron.app(,".\electron\electron.exe"); 当然你可以把electron.exe改成其他名字,如electron.dll,上面也相应的改动就行! 另一个问题,electron必须使用aardio提供的,应该改动过,不然aardio和electron无法进行交互!下面是使用aardio中的electron实现的赛博朋克的网页做为主界面的效果

实现GiteePages自动部署的aardio源码

问题的由来github提供开源项目管理,同时提供静态网站github page,但国内访问速度很慢,经常打不开,gitee码云在国内,提供和github一样的功能,但gitee page每次推送文件后,不会自动刷新(免费版),必须手动刷新!网上已有提供python自动刷新Gitee Pages的源码! python自动部署Gitee Pages源码 python环境要求python3 + selenium + chromedrive.exe。 先安装好python3(最好设置好国内镜像源,不然安装库,因墙的缘故可能失败) 再安装好selenium库pip install seleniumpip install Alert 下载chrome对应的chromedriver 2.python源码 123456789101112131415161718192021222324252627import timefrom selenium import webdriverfrom selenium.webdriver.common.alert import Alertoption = webdriver.ChromeOptions()#指定chrome浏览器option.binary_location=r'D:\Program Files\CentBrowser64\chrome.exe'#指定chromedriver和chrome版本要匹配driver = webdriver.Chrome(r'D:\Program Files\CentBrowser64\chromedriver.exe')driver.get('https://gitee.com/login')driver.maximize_window()time.sleep(2)user_login = driver.find_element_by_id('user_login')user_login.send_keys("gitee的用户名")driver.find_element_by_id('user_password').send_keys("gitee的登录密码")driver.find_element_by_xpath('/html/body/div[2]/div[2]/div/div[1]/div[2]/div[1]/form[1]/div/div/div/div[4]/input').click()time.sleep(2)driver.get('https://gitee.com/此处改为you_gitee_id/此处改为you_gitee_id/pages')driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[2]/div/form/div[6]').click()Alert(driver).accept()time.sleep(5)print("成功")driver.quit()fp = open("D:\log.txt", "a+")now_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())fp.write("部署时间:{0}\n".format(now_time))fp.close() 提供此代码的开源项目地址:https://github.com/witmy/my-giteepages上面的代码修改了一下,指定了chrome浏览器地址和chromedriver的地址,这样就不会运行不了!特别适合小白! aardio自动部署Gitee Pages的源码python的代码,如果是新手,安装python,然后直接运行上面的源码,成功的机率很小,因为Chrome driver是需要浏览器和driver版本匹配的!上面的python源码,如果你不熟悉python,基本上调试不会成功!不过不要紧,下面我讲的,小白也会的aardio教程,一步一步复杂粘贴就能实现,你不需要会python,不需要会aardio,一样可以编译一个自动更新gitee pages的执行文件!

单机游戏死亡阴影aardio内存修改器源码

aardio是专用于桌面软件快速开发的新一代混合型编程语言 – 具有动态语言轻便、灵活的特性,而且又可以同时支持静态类型开发,象静态语言那样使用。aardio可以直接支持原生DLL,即使是外部EXE进程中的函数,也可以使用一句代码声明为普通的aardio函数对象( 原生call支持 ),aardio支持非常多的标准调用约定,例如 stdcall,cdecl,thiscall,fastcall,regparm(n) 等调用约定都可以支持。aardio虽然小,但支持的接口很丰富、可以支持com静态动态双接口,象VBS一样原生支持com对象。 以下是使用aardio写的修改单机游戏死亡阴影3的游戏数据源码,仅供学习aardio使用!新建一个aardio代码文件,把下面代码复制到代码文件中,就可直接运行! 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import win.ui;import process; //声明变量hero3,jzvar hero3,jz;hero3=process.find("Heroes3.exe")if(hero3){ //把基址赋值给jz变量 jz=hero3.readNumber(0x82B0BC) }else { win.msgbox("请您先运行游戏")}/*DSG{{*/var winform = win.form(text="死亡阴影修改器";left=300;right=440;bottom=247;max=false;parent=...)winform.add(button={cls="button";text="修改";left=33;top=202;right=105;bottom=237;z=1})/*}}*/ bqm = { "水晶:";"水银:";"石头:";"金钱:";"木材:";"宝石:";"硫磺:" }py = { sj=Oxac;sy=Oxa0;st=Oxa4;jq=0xb4;mc=Ox9c;bs=0xb0;lh=Oxa8 }bjk = { "sj";"sy";"st";"jq";"mc";"bs";"lh" }tab = { } winform.button.oncommand = function(id,event){ for(i=1;#bjk;1){ if(winform["edit_"+bjk[ i ]].text != 0&&winform["edit_"+bjk[ i ]].text !=""){ table.push(tab,bjk[ i ]) } } for(i=1;#tab;1){ //win.msgbox(winform["edit_"+tab[ i ]].text,"死亡阴影修改器") hero3.writeNumber(jz+py[tab[ i ]],winform["edit_"+tab[ i ]].text) } tab={}} var topp = 5var bott = 25for(i=1;#bqm;1){ winform.add( ["edit_"+bjk[ i ]]={num=1;bottom=bott;text="999";left=50;top=topp;z=3;right=114;edge=1;cls="edit" }) winform.add( ["static"+i]={ bottom=bott;right=52;left=16;text=bqm[ i ];top=topp;z=1;transparent=1;cls="static"}) topp+=24 bott+=24} winform.show() win.loopMessage(); 其中的基址0x82B0BC,及偏移量为什么是这个数据,就需要你使用ce自己分析了! 对aardio不熟悉可以查看在线手机 aardio使用手册

aardio的listview自绘源代码

aardio的listview自绘源代码,在aardio新建一代码文件,复制下面的代码到代码文件中,直接运行就可以看到效果! 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100import win.ui;/*DSG{{*/var winform = win.form(text="listview中添加进度条演示";right=945;bottom=474)winform.add(button={cls="button";text="(点击这里随机更新一次第二行的进度值)";left=0;top=392;right=944;bottom=472;font=LOGFONT(h=-21);z=2};流程编辑框={cls="listview";left=0;top=0;right=946;bottom=384;edge=1;font=LOGFONT(h=-19;name='FontAwesome');fullRow=1;vscroll=1;z=1})/*}}*/ import win.fontAwesome;import win.graphics;import win.imageList;var imagelist = win.imageList(5,34);winform.流程编辑框.setImageList( imagelist,1/*_LVSIL_SMALL*/ );winform.流程编辑框.insertColumn("",30,,0x2/*_LVCFMT_CENTER*/) winform.流程编辑框.insertColumn("中断",80,,0x2/*_LVCFMT_CENTER*/) winform.流程编辑框.insertColumn("备注",300,,0x0/*_LVCFMT_LEFT*/) winform.流程编辑框.insertColumn("功能",100,,0x0/*_LVCFMT_LEFT*/)winform.流程编辑框.insertColumn("参数",300,,0x0/*_LVCFMT_LEFT*/)winform.流程编辑框.insertColumn("",30,,0x2/*_LVCFMT_CENTER*/)winform.流程编辑框.insertColumn("",1,,0x2/*_LVCFMT_CENTER*/)//自适应列宽度 winform.流程编辑框.adjust = function(cx,cy){ winform.流程编辑框.fillParent(5/*列序号*/);} winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';30;"直线运动";'{["速度"]=1000;["模式"]="相对运动";["距离"]="2380";["是否等待"]="否";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00d';'\uF05e';100;"直线运动";'{["速度"]=300;["模式"]="连续运动";["是否等待"]="是";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';200;"调用子程序";'{["调用子程序"]="连续读传感器";["是否等待"]="是";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';50;"调用子程序";'{["调用子程序"]="回字形对准算法";["是否等待"]="是";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';150;"直线运动";'{["速度"]=1000;["模式"]="相对运动";["距离"]="2380";["是否等待"]="否";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';120;"直线运动";'{["速度"]=1000;["模式"]="相对运动";["距离"]="2380";["是否等待"]="否";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00d';'\uF05e';10;"直线运动";'{["速度"]=300;["模式"]="连续运动";["是否等待"]="是";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';70;"调用子程序";'{["调用子程序"]="连续读传感器";["是否等待"]="是";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';260;"调用子程序";'{["调用子程序"]="回字形对准算法";["是否等待"]="是";}';'\uF01a'} } )winform.流程编辑框.addItem( { text={'\uF00c';'\uF1db';130;"直线运动";'{["速度"]=1000;["模式"]="相对运动";["距离"]="2380";["是否等待"]="否";}';'\uF01a'} } ) //自绘winform.流程编辑框.onnotify = function(id,code,ptr){ if( code == 0xFFFFFFF4/*_NM_CUSTOMDRAW*/ ){ var lvcd = winform.流程编辑框.getNotifyCustomDraw(code,ptr); if( lvcd.nmcd.dwDrawStage == 0x10001/*_CDDS_ITEMPREPAINT*/) return 0x20/*_CDRF_NOTIFYSUBITEMDRAW*/ elseif( lvcd.nmcd.dwDrawStage == 1/*_CDDS_PREPAINT*/ ){ return 0x20/*_CDRF_NOTIFYITEMDRAW*/; } elseif( lvcd.nmcd.dwDrawStage == ( 0x10001/*_CDDS_ITEMPREPAINT*/ | 0x20000/*_CDDS_SUBITEM*/) ){ //注意这里 iSubItem 的索引自0开始( 其他函数通常自1开始 ) var cvs = win.graphics.canvas(); // 创建一个画布 cvs.fromHDC(lvcd.nmcd.hdc); // 传入 hDC var nItem = lvcd.nmcd.dwItemSpec+1; var nSubItem = lvcd.iSubItem; var rc = owner.getItemRect(nItem,nSubItem); if(nSubItem == 3){ var RetRc = ::RECT(rc.left+1,rc.top+6,rc.right-tonumber(owner.getItemText(nItem,3)),rc.bottom-6); cvs.brush.color = 0x00ff00; cvs.fillRect(RetRc) } cvs.pen.color = 0xebebeb; // 定义画笔的颜色 cvs.drawEdge(rc); lvcd.update() cvs.destroy(); return 0/*_CDRF_DODEFAULT*/ } }}//演示更新进度winform.button.oncommand = function(id,event){ winform.流程编辑框.setItemText(tostring(math.random(10,280)),2,3);} winform.show() win.loopMessage();