侧边栏壁纸
  • 累计撰写 22 篇文章
  • 累计创建 14 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

aardio常用语句整合

空空如也
2023-04-21 / 0 评论 / 0 点赞 / 282 阅读 / 2,920 字 / 正在检测是否收录...

感谢风行者整理,原文件地址:风行者CSDN博客:

(一)获取目录路径,系统信息,时间日期

整合常用到的一些目录路径,系统信息,时间日期等,方便查看

(1)目录路径

import console
import fsys  //文件目录磁盘操作
var $dirs = {} //定义一个目录数组
 
$dirs[1] = fsys.getCurDir() //当前目录
$dirs[2] = fsys.getSpecial(0x25/*_CSIDL_SYSTEM*/) //系统目录
$dirs[3] = fsys.getTempDir() //临时目录
$dirs[4] = fsys.getSpecial(0/*_CSIDL_DESKTOP*/) //桌面目录
$dirs[5] = fsys.getSpecial(0x26/*_CSIDL_PROGRAM_FILES*/)
 
console.varDump($dirs)
console.pause()

(2)系统信息

import console
import sys
import win  
import inet.adapter
var $syss = {} 
 
$syss[1] = sys.getStartTime() //系统启动时间
$syss[2] = sys.getComputerName() //计算机名
$syss[3] = sys.getUserName() //当前登录用户名
$syss[4],$syss[5] = win.getScreen() //屏幕宽高
 
for adptInfo in inet.adapter.each() {  //遍历网卡
	console.log(adptInfo.ipAddressList.ipAddress) //每个网卡ip地址
}
 
console.varDump($syss)
console.pause()

(3)时间日期

import console
// time核心库
var $times = {} 
var $now = time.now() //当前时间
$times[1] = $now
$times[2] = $now.year //年
$times[3] = $now.month //月
$times[4] = $now.day	//日
$times[5] = $now.hour //时
$times[6] = $now.minute //分
$times[7] = $now.second //秒
$times[8] = $now.milliseconds //毫秒
$times[9] = $now.dayofweek //星期几
 
console.varDump($times)
console.pause()

(二)文件读写操作

整合一些文件读写的操作,方便查看

import win
// 字符串一次性保存到文件
string.save("e:\bb.txt",'你好\r\n') 
string.save("e:\bb.txt",'我是追加的文本\r\n' ,true) //加true追加文本
string.save("e:\bb.txt",'另起一行\r\n' ,true) //加true追加文本
 
//使用io写入文件
var $wtxt = io.open("e:\bb.txt","a+")
$wtxt.write("再写一行")
$wtxt.close()
 
var $str = string.load("e:\bb.txt") //一次过读取文件全部内容
win.msgbox($str)
 
 
//使用string.lines迭代,参数1是字符串内容,用于每行处理
for $line in string.lines($str) {
	win.msgbox($line)
}
 
//使用io.lines迭代,参数1是文件路径或文件对象,用于每行处理
for $line in io.lines("e:\bb.txt") {
	win.msgbox($line)
}
 
//使用table.array生成一个二维数组
var $sp = table.array(string.lines($str))
win.msgbox($sp)
 
//使用string.split分割字符串得到数组,建议使用这种方式
var $sp = string.split($str,'<\r\n>')
win.msgbox($sp)
 
io.remove("e:\bb.txt") //删除文件
if not io.exist("e:\bb.txt") win.msgbox("文件不存在了") //文件是否存在

(三)文件目录基本操作

整合一些文件目录创建,删除,移动,复制,改名,读取文件目录列表等操作

import fsys
import win
//创建当前目录下的新目录,清空目录重建,返回目录路径
$path = fsys.createDir(fsys.getCurDir()+"\新目录\",true)
if fsys.isDir($path) win.msgbox("是目录")
/*语句块内对文件或目录都有效{{*/
//移动
fsys.move($path,"e:\")
//复制
fsys.copy("e:\新目录",$path)
//改名
fsys.rename("e:\新目录","e:\目录")
//删除目录,支持非空目录,可以使用数组删除多个目录
fsys.delete({"e:\目录";$path})
/*}}*/ 
//搜索路径,返回目录下文件,目录数组
$list,$path = fsys.list("E:\aardio")
win.msgbox($list) 
win.msgbox($path)

(四)Ini文件操作

编写程序时经常会用到配置文件,而ini文件是最常用的。用作保存一些关键内容或窗口程序结束时保存相关控件信息。

/*
标准 INI配置文件结构如下:
[字段名]
关键字=值
*/
import win
import fsys.ini
//返回set.ini文件对象
var $ini = fsys.ini(fsys.getSpecial(0/*_CSIDL_DESKTOP*/)+"\set.ini")
 
//生成ini文件,写入ini内容
$ini.write("字段1","键名1","值1")
$ini.write("字段2","键名2","值2")
//字段2新增一个键值
$ini.write("字段2","键名3","新值")
 
//更改值,只需要重新写入相同字段,键名,新值
$ini.write("字段1","键名1","你好我是值1")
 
/*
键名为 null 删除指定的小节
值为 null 删除指定的键名
*/
//删除字段2的键名2
$ini.write("字段2","键名2")
 
//读取指定字段,键名所在的值
var $iRead = $ini.read("字段1","键名1")
win.msgbox($iRead)
 
//读取键,有时不只一个所以返回的是所有键的数组
var $ikeys = $ini.readKeys("字段2")
win.msgbox($ikeys,"字段2的键数组")
 
//读取所有字段名,返回字段名数组
var $iSecs = $ini.readSectionNames()
win.msgbox($iSecs,"所有字段数组")
 
for section in $ini.eachSection() { 
	for(k,v in section){
		/*k为键,为值,section为当前遍历到的小节*/
		win.msgbox(k+"="+v,section.name()/*字段名*/)
	}
}

(五)系统基本操作

整合一些常用系统基本操作:环境变量,剪贴板,系统音量设置,播放声音文件,系统关机,重启等操作

import win
 
//环境变量操作
var $sEnv = win.getenv("TEMP") //获取环境变量TEMP值
win.msgbox($sEnv)
 
win.setenv("MYVAR","这是一些文本!") //设置环境变量MYVAR的值
win.msgbox(win.getenv("MYVAR"))
 
//剪贴板操作
import win.clip
 
var $sData = win.clip.read() //读取剪贴板文本
win.msgbox($sData)
 
win.clip.write("一个新写符串写入到剪贴板") //写入新文本
win.msgbox(win.clip.read())
//播放本地声音文件,.wav或.mp3文件等
import fsys.media
//播放声音文件,0同步播放,等待直到声音完成才执行下一句代码
fsys.media.playSound("C:\Windows\Media\tada.wav",0) //默认第二参数是异步
win.msgbox("同步播放会等待完成后运行msgbox")
 
//重复播放,第二个参数指定重复播放次数
fsys.media.playRepeat("C:\Windows\Media\tada.wav",3)
win.msgbox("异步播放不会等待,会立刻运行msgbox")
 
 
//系统音量控制
import sys.audioVolume
var $audio = sys.audioVolume()
//设置系统音量为0,静音
$audio.volume=0
win.msgbox($audio.volume,"当前音量值")
 
//设置系统音量为100,最大音量
$audio.volume=100
win.msgbox($audio.volume,"当前音量值")
 
//以下系统命令慎用,代码注释掉,测试可取消注释
import sys
// sys.shutdown() 关机
// sys.sleep() 休眠
// sys.lock() 锁定
// sys.restart() 重启

(六)弹出窗口

通常在与用户交互的时,我们会弹出一些对话框。除了msgbox之外整合一些常用的弹出窗口。inputbox,托盘提示,信息框。

//弹出输入框
import win.inputBox
//返回输入框对象
var $input = win.inputBox()
$input.text = "你好"
$input.info.text ="请输入你的名字:"
$input.input.text = "输入框默认文本设置"
 
//初始化窗口设置选区
$input.onInitDialog = function(hwnd,message,wParam,lParam){
	$input.center() //居中显示
	$input.input.selectAll() //输入框文本全选
}
 
var $value = $input.doModal() //点取消返回null
if ($value) {
	win.msgbox($value)
}
 
 
//弹出托盘提示
import win.util.tray
$tray = win.util.tray($input) //参数1为窗口对象不能忽略
$tray.pop("我是托盘提示","你好")
$tray.delete()
 
//弹出一个信息框
import win.dlg.message
//参数二为true则显示确定,取消按钮
win.dlg.message($input).doModal("我是一个弹出信息框") 

(七)鼠标模拟

鼠标移动,点击,拖动模拟

import win
import mouse
 
//返回鼠标当前位置
var $x,$y = mouse.getPos()
win.msgbox($x+","+$y)
 
//从当前位置x+100,y+200移动(相对位置移动)
mouse.move(100,200)
 
//第三参数为true,按屏幕位置移动(绝对位置移动)
mouse.move(100,200,true)
 
//上面是直接设置鼠标位置,看不见轨迹
//moveTo移动鼠标位置可见轨迹
mouse.moveTo(300,400,true)
 
//默认步进8,2毫秒延时,改为步进2,100毫秒延时
mouse.moveTo(700,800,true,2,100)
 
 
//在当前位置点击
mouse.click()
 
//指定位置点击
mouse.click(300,500,true)
 
//双击
mouse.clickDb()
mouse.clickDb(300,500,true)
 
//右键点击
mouse.rb.click()
 
//鼠标中键向下滚动1000
mouse.mb.roll(-1000)
 
//拖动鼠标
mouse.drag(500,100)
 
//小例子
import process
//打开计算器并用鼠标拖动窗口
process.execute("calc.exe")
sleep(2000)
var $hwnd = win.find(,"计算器")
var $x,$y = win.getPos($hwnd,true)
mouse.move($x+50,$y+10,true)
mouse.drag(300,400,true)

(八)按键模拟

模拟发送按键,字符串,组合键等操作

 //键盘管理
import key
//发送按键,英文符号也会受影响,会受输入法影响
key.send('aardio',100)
 
//发送字符或字符串,所有字符可以发送,不受输入法影响 
key.sendString("你好abc,哈哈!",100)
 
//发送特殊按键
key.combine("enter")
 
//发送组合键ctrl+a
key.combine("ctrl","a")
 
/*小例子{{*/
import process
import key
 
//打开记事本
process.executeWaitInput("notepad.exe")
key.sendString("输入一些字符串")
 
//发送alt+f4关闭窗口
key.combine("ALT","F4")
 
//等待一秒,待确认保存窗口出现
key.delay(1000)
 
//发送不保存快捷键
key.combine("ALT","N") 
/*}}*/

(九)字符串基本操作

一些字符串读取,切片,倒序,分割等常用操作

import win.dlg.message
var $msg = win.dlg.message()
 
//返回字符串长度
var $str = "Hello 这是一行 有空格的 句子!"
 
$msg.great("长度为:"+string.len($str))
 
//字符串倒序排列
$msg.ok(string.reverse($str,true))
 
//转换成大写
$msg.smile(string.upper($str))
 
//转换成小写
$msg.smile(string.lower($str))
 
 
/*字符串截取{{*/
 
	//从左往右截取3个字符
	$msg.info(string.left($str,3,true))
	
	//从右往左截取3个字符
	$msg.ok(string.right($str,3,true))
	
	//自由截取范围1开头,-1结尾。下面是从2位置到4位置
	$msg.smile(string.slice($str,2,4,true))
 
	
	//去除前面3个字符,从第4个字符到最后一个字符,用-1表示从右往左
	$msg.smile(string.slice($str,4,-1,true))
	
	//去除后面3个字符
	$msg.smile(string.slice($str,1,-4,true))
/*}}*/
 
//去除所有首尾空白字符
$str = ' 你好,空 格 '
$msg.ok(string.trim($str))
 
//字符串拼接,跟+不一样可以连接null不会出错
$msg.ok(string.concat("你好","我是一个拼接的字符串"))
 
//拆分字符串生成字符串数组,不写第二参数,拆分每个字符
var $sp = string.split($str)
win.msgbox($sp)
//以多个字符串作分隔符拆分
$str = "以一个整体字符串ab为分隔符需要用<>括起"
$sp = string.split($str,"<ab>")
win.msgbox($sp)
 
//将一个字符串数组,以指字的分隔标记合并为一个字符串
$msg.great(string.join($sp,","))
 
//随机抽取其中字符串
$msg.ok("恭喜你中了"+string.random("特等奖","一等奖","二等奖","三等奖"))

(十)窗口快捷键,热键

经常会用到窗口快捷键,还有热键的设置。下面例子说明窗口热键的用法

import win.ui;
/*DSG{{*/
var winform = win.form(text="窗口控件快捷键例子";right=759;bottom=469)
winform.add(
button={cls="button";text="按钮(&N)";left=270;top=190;right=437;bottom=249;z=1}
)
/*}}*/
 
winform.button.oncommand = function(id,event){
	win.msgbox("我被调用了")
}
 
/*
//使用超级热键也可以
import key.hotkey
$key = key.hotkey(winform)
$key.reg(
	"ALT","N",
	winform.button.oncommand
)
*/
 
//使用窗口快捷键
import win.ui.accelerator
win.ui.accelerator({
	{ alt = true; vkey = 'N'#; oncommand = winform.button.oncommand } 
 
},winform);
 
 
winform.show();
win.loopMessage();
0

评论区