我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1222|回复: 3

[技术文章] allegro 自动批量创建device文件

[复制链接]

该用户从未签到

710

主题

162

回帖

4552

积分

二级逆天

此广告位出租

积分
4552

终身成就奖优秀斑竹奖

QQ
发表于 2021-4-29 18:43:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
学习allegro,画一块板子时,老师给了个封装库,可惜里面没有device文件,导入第三方网标时却必须有。老师让一个一个的创建,太麻烦,随想办法搞了个自动创建的脚本。

思路如下:

一、allegro 中录制创建device文件的脚本;

file -> script ; record; 开始录制脚本

file -> Create Device;创建device文件

ctrl + s 保存,确定。

创建好的脚本位于 封装文件所在的目录。我创建好的:create_device_file.scr。

二、修改设置,将 allegro 中 脚本路径指向 上述脚本所在的文件夹。可提前将脚本移至想要设置路径的文件夹。

三、为脚本创建快捷键,方法有很多种,我是修改的env文件,设置了F9为快捷键。

alias F9 "replay create_device_file"

四、执行脚本。

脚本采用了批处理方式,依次打开脚本所在文件夹中的 封装文件,中间间接引用vbs脚本,模拟向程序发送 F9 + 回车 按键,让软件进行脚本创建,最后,kill掉软件进程来关闭软件,循环打开下一个封装文件,循环最后,删除vbs文件。脚本如下:

@for /f "delims=" %%i in ('dir /b *.dra') do (
>tmp.vbs echo set x=createobject^("wscript.shell"^)
>>tmp.vbs echo wscript.sleep 10
>>tmp.vbs echo x.run "%%i",1
>>tmp.vbs echo wscript.sleep 4000
>>tmp.vbs echo x.sendkeys "F9"
>>tmp.vbs echo x.sendkeys "{ENTER}"
>>tmp.vbs echo x.sendkeys "{ENTER}"
>>tmp.vbs echo wscript.sleep 4000
cscript //nologo tmp.vbs & del tmp.vbs
taskkill /f /im allegro.exe
)



需要注意,sleep时间,可根据自己电脑速度进行调整。F9快捷键也可根据自己的设置进行调整。
但是!特别要注意!软件运行过程中一定不能乱点鼠标,会造成键盘输入到其他地方,从而创建device文件失败!

本来不会写 批处理文件和vbs代码,都摘自网络,拼拼凑凑,居然可以运行!感谢每个分享的人!



2016-03-15更新,修改了软件退出方式,以改正生成过程中造成的上锁问题。

如果封装文件已经上锁,请删除文件夹下的.lck文件。

代码: 使用 taskkill 相当于外部将allegro进行强行结束,可能造成文件上锁。

2016-03-15版本修改为向软件发送exit命令,使其正常自动退出。
此广告位出租
回复

使用道具 举报

该用户从未签到

0

主题

812

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2021-4-30 09:19:44 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

812

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2021-4-30 09:20:20 | 显示全部楼层
回复

使用道具 举报

该用户从未签到

0

主题

812

回帖

0

积分

二级逆天

积分
0

终身成就奖

发表于 2021-4-30 09:21:34 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

每日签到,有金币领取。


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表