找回密码
 加入
搜索
查看: 2785|回复: 5

[AU3基础] 如何自动补字(已解决)

  [复制链接]
发表于 2011-3-9 11:00:20 | 显示全部楼层 |阅读模式
本帖最后由 CCM 于 2011-3-9 23:10 编辑

想做一个新账户登入后,设定OLK信箱、OFFICE使用者信息、OFFICE存盘路径的工具。

目前做到OFFICE使用者信息,遇上一个问题,用户信息在注册表编辑器是以binary储存数据,且字符串间要补上00,请教以下程序该怎么修改。
$UI = StringToBinary(@username)
$UN = StringToBinary(@username)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo","UserInitials","REG_BINARY","" & ($UI))
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo","UserName","REG_BINARY","" & ($UN))
比方说目前登入账号是CCM转换出来是43434d如何能改成 430043004d00(需要能补上00区隔,不然开启WORD后,使用者信息处就变成乱码)

或有更好作法,请求指导,谢谢
发表于 2011-3-9 11:24:00 | 显示全部楼层
没明白楼主的意思,只好根据楼主的举例做。

$sText = '43434d'
$sRer = StringRegExpReplace($sText, '(\w{2})', '${0}00')
MsgBox(0, '', $sRer)
 楼主| 发表于 2011-3-9 13:52:16 | 显示全部楼层
感谢水木子版主

再详述我的问题

首先,登入计算机的账号不固定,因此我用@username来撷取登入账号,然后因为使用者信息在注册表编辑器是使用二进制来储存,因此我用StringToBinary(@username)把登入账号转成二进制。

假设目前登入账号是CCM,StringToBinary(@username)转换出来的二进制值是0x43434d,但正确的值必须改成430043004d00,0x要去掉,还要补上00。

水木子版主提供的指令我使用后,字符串会变成0x00430043004d00。想再请问水木子版主有没有办法把0x00这四个字去掉,或者用其它的方法来转换。

谢谢
发表于 2011-3-9 14:23:12 | 显示全部楼层
本帖最后由 骗子 于 2011-3-9 14:41 编辑

$sText = '43434d'
$sRer = StringRegExpReplace($sText, '(\w{2})', '${0}00')
$sRer = StringReplace($sRer, '0x00', '')
MsgBox(0, '', $sRer)
继续用空字符替换0x00
 楼主| 发表于 2011-3-9 16:42:58 | 显示全部楼层
谢谢各位的回答

我后来手动输入430043004d00,发现不行,得再补0变成430043004d0000才可以,所以这步骤反而麻烦。因此我改成删掉这两个机码,重启WORD时,再于提示讯息处送入@username完成使用者信息的设定。
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo","UserInitials")
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo","UserName")
sleep(1000)
ShellExecute(@ProgramFilesDir & "\Microsoft Office\OFFICE11\winword.EXE")
WinWaitActive("蚚誧俷靡")
Send("{LSHIFT}")
send(@username)
send("{TAB}")
send(@username)
sleep(2000)
send("{ENTER}")
ProcessClose("WINWORD.exe")
发表于 2011-3-9 18:33:25 | 显示全部楼层
好好学习....
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 12:29 , Processed in 0.106564 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表