找回密码
 加入
搜索
查看: 3972|回复: 16

au3带参数运行theme文件为什么不行

[复制链接]
发表于 2009-3-5 08:44:05 | 显示全部楼层 |阅读模式
下面是我的源码

If $cmdline[0] <> 0 Then
   $filename = $cmdline[1]
ShellExecute($filename)
send("{enter}")
  Else   
    MsgBox(64, "注意", '请带参数运行此程序')
EndIf


现在我把程序编译成theme.exe文件,放到c:\windows\resoure\themes目录下
,想通过建立快捷方式并带参数运行对应的主题文件如图所示:


结果总是提示找不到tiger.theme文件,
不知道是哪里出错了,就是不能带theme文件参数,而直接用ShellExecute("tiger.theme")却可以运行,可是想带参数运行却不行了,请各位兄台帮忙看一下

[ 本帖最后由 zlmyongheng 于 2009-3-5 08:45 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-3-5 10:55:08 | 显示全部楼层
看你的参数是怎么加的

另外,请把起始位置也加上:c:\windows\resoure\themes

[ 本帖最后由 顽固不化 于 2009-3-5 11:13 编辑 ]
发表于 2009-3-5 12:00:30 | 显示全部楼层
If $cmdlineRaw <> '' then
 楼主| 发表于 2009-3-5 12:03:32 | 显示全部楼层
这个没有问题,我的是在雨林木风主题中看到theme.exe的,它的能运行
 楼主| 发表于 2009-3-5 12:21:35 | 显示全部楼层
如果用
If $cmdlineRaw <> '' then
还是一样提示找到相应的theme文件

[ 本帖最后由 zlmyongheng 于 2009-3-5 12:29 编辑 ]
 楼主| 发表于 2009-3-5 12:37:20 | 显示全部楼层
总感觉能找到theme的文件,却不能执行,不知道是怎么回事
发表于 2009-3-5 12:37:29 | 显示全部楼层
If $cmdline[0] <> 0 Then
   $filename = $cmdline[1]
MsgBox(64, "注意",  $filename)
ShellExecute($filename)
send("{enter}")
  Else   
    MsgBox(64, "注意", '请带参数运行此程序')
EndIf
看一下得到的文件名是否正确,还有路径。
 楼主| 发表于 2009-3-5 12:38:09 | 显示全部楼层
会不会是
ShellExecute($filename)
不支持变量啊
 楼主| 发表于 2009-3-5 12:44:15 | 显示全部楼层
因为换成:
ShellExecute("tiger.theme")
就能成功执行
发表于 2009-3-5 15:08:38 | 显示全部楼层
ShellExecute ( "文件名" [, "参数" [, "工作目录" [, "verb" [, 显示标志]]]] )


把工作目录写上试试:c:\windows\resoure\themes
 楼主| 发表于 2009-3-5 17:33:43 | 显示全部楼层
试过,还是一样,都把头搞大了
 楼主| 发表于 2009-3-6 07:39:20 | 显示全部楼层
如果按楼上下面的代码来写的话,我发现一个现象就是:如果我的快捷方式中theme中有空格得到的文件名就不正确,如Dz aero.theme 得到的结果是Dz而不是Dz aero.theme ,而如果没有空格如tiger.theme,得到文件名是tiger.theme,但不能执行,不知道是不是我们获取文件名的方式有错误,还是其它什么原因
If $cmdline[0] <> 0 Then
   $filename = $cmdline[1]
MsgBox(64, "注意",  $filename)
ShellExecute($filename)
send("{enter}")
  Else   
    MsgBox(64, "注意", '请带参数运行此程序')
EndIf
 楼主| 发表于 2009-3-6 07:41:52 | 显示全部楼层
而雨林木风的这个文件却都能得到正确结果,也能执行,照这样看,有可能是雨林木风的获取文件名的方式不同
发表于 2009-3-6 08:41:32 | 显示全部楼层
文件名中有空格时用引号括起来
发表于 2009-3-6 10:21:16 | 显示全部楼层

If $cmdline[0] <> 0 Then
   $filename = $cmdline[1]
        ShellExecute(@ScriptDir & '\' & $filename)
        WinWait('显示 属性')
        ControlClick('显示 属性', '主题是背景加一组声音', '[CLASSNN:Button3;ID:1]')
Else    
    MsgBox(64, "注意", '请带参数运行此程序')
EndIf

按你的实现形式,上面代码在我的破机测试通过,如果在你那不行,那就。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-23 06:22 , Processed in 0.083283 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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