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

[系统综合] 【附代码】求把AutoIT的代码转换为VC2005代码

[复制链接]
发表于 2013-4-29 18:37:24 | 显示全部楼层 |阅读模式
从百度贴吧来到这里的新手

我想把AutoIT的代码转换成C++的,我是个C++菜鸟,这个我是当Demo用的,毕竟从HelloWorld开始不给力
代码在这里
Func ActOffice14()
Local $file,$Osarh,$result,$i,$Flag=1
Select
        Case @OSArch="X86"
        $Osarh= RegRead ( "HKLM\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" , "Path" ) 
                If @error=1 Then 
                $Flag = 2
                EndIf 
        Case @OSArch="X64"
                $Osarh= RegRead ( "HKLM64\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" , "Path" ) 
                        If @error=1 Then 
                        $Osarh= RegRead ( "HKLM64\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\InstallRoot" , "Path" ) 
                            If @error=1 Then                                                         
                                $Osarh= RegRead ( "HKLM\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" , "Path" ) 
                                        If @error=1 Then 
                                        $Osarh= RegRead ( "HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\InstallRoot" , "Path" )
                                                If @error=1 Then 
                                                $Flag = 2        
                                                EndIf                                                         
                                        EndIF         
                                EndIf        
                        EndIf 
EndSelect        
;执行激活命令
If $Flag <> 2 Then
RunWait(@ComSpec & ' /c net start osppsvc',"", @SW_HIDE)        
RunWait(@ComSpec & ' /c cscript "'&$Osarh&'"\ospp.vbs /remhst >> %windir%\actlog.log',"", @SW_HIDE)
RunWait(@ComSpec & ' /c cscript "'&$Osarh&'"\ospp.vbs /sethst:127.0.0.2 >> %windir%\actlog.log',"", @SW_HIDE)
Sleep(4000)
RunWait(@ComSpec & ' /c cscript "'&$Osarh&'"\ospp.vbs /act >> %windir%\actlog.log',"", @SW_HIDE)
;如果第一次失败则再尝试激活20次
For $i=1 To 20 Step 1
$file=FileOpen(@WindowsDir & "\actlog.log", 0) 
 While 1
   Local $line =FileReadLine($file)
   If @error = -1 Then ExitLoop
   $result = StringInStr($line, "<Product activation successful>")
   If $result <> 0 Then 
   $Flag=0 
   ExitLoop
   Else
   $Flag=1
   EndIF
 WEnd
   If $Flag=1 Then
 RunWait(@ComSpec & ' /c cscript "'&$Osarh&'"\ospp.vbs /remhst >> %windir%\actlog.log',"", @SW_HIDE)
 RunWait(@ComSpec & ' /c cscript "'&$Osarh&'"\ospp.vbs /sethst:127.0.0.2 >> %windir%\actlog.log',"", @SW_HIDE)
 Sleep(4000)
 RunWait(@ComSpec & ' /c cscript "'&$Osarh&'"\ospp.vbs /act >> %windir%\actlog.log',"", @SW_HIDE)
   Else
   $i=20
   EndIf
FileClose($file)
Next
RunWait(@ComSpec & ' /c echo [%time%] >> %windir%\actlog.log',"", @SW_HIDE)
EndIf
EndFunc
顺便提供一下命令行参数,把自身程序中RES文件提取到%Temp%并运行怎么实现

别忘了告诉TheSnow,我觉得AutoIT的中文汉化版的最新SVN,编译au3失败率较高,经常打开后显示没有脚本文件;还有编译出来的文件比官方版本大70-160KB(叫LZ我情何以堪);建议TheSnow提供单独编译器版,我爱用Notepad++
 楼主| 发表于 2013-4-29 18:43:13 | 显示全部楼层
顶,延续贴吧的习惯,本人百度ID Mouri_Naruto
发表于 2013-4-30 20:51:13 | 显示全部楼层
你这是想干啥
发表于 2013-5-2 10:42:04 | 显示全部楼层
这能转???怀疑中……
发表于 2013-5-10 17:21:29 | 显示全部楼层
真的可以嗎???...
 楼主| 发表于 2013-5-10 21:14:28 | 显示全部楼层
回复 3# zzbtlc


    移植我的工具
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-18 12:57 , Processed in 0.078310 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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