如何弹出删除确认对话框
用AU3删除文件时如何弹出系统自带的删除确认对话框?(如下图)上图所示为使用千千静听“从磁盘删除”功能弹出的删除文件确认对话框。 #include <WinAPIEx.au3>
$sTemp = @ScriptFullPath & '.bak'
FileCopy(@ScriptFullPath, $sTemp)
_WinAPI_ShellFileOperation($sTemp, '', $FO_DELETE, $FOF_ALLOWUNDO) 顶a版
还要加个#Include <APIConstants.au3> 顶a版
还要加个#Include
kyniel 发表于 2012-6-18 10:38 http://www.autoitx.com/images/common/back.gif
我的Au3版本是 3.3.6.1,不用加 #Include <APIConstants.au3> 呢~ 我的Au3版本是 3.3.6.1,不用加 #Include呢~
afan 发表于 2012-6-18 10:45 http://www.autoitx.com/images/common/back.gif
其实真的很烦au3这种频繁更改一些windows常量所放之处
远不如像别的语言一样,直接放在编译器里好
并且好像IsDeclared函数也不好使(不知那里错了)
Global Const $iTmp = 5
MsgBox(0,0,IsDeclared($iTmp));这里为什么返回是1?
;If Not IsDeclared($iTmp) Then Global Const $iTmp = 10 ;这句根本不管用了,所以经常要手工注释掉au3文件里重复定义的常量 其实真的很烦au3这种频繁更改一些windows常量所放之处
远不如像别的语言一样,直接放在编译器里 ...
happytc 发表于 2012-6-18 12:14 http://www.autoitx.com/images/common/back.gif
IsDeclared 参数弄错了…Global Const $iTmp = 5
MsgBox(0, 0, IsDeclared('iTmp')) 回复 6# afan
关键后面的这句:If Not IsDeclared('iTmp') Then Global Const $iTmp = 10
为什么不管用,害得都去手工注释掉
Global Const $iTmp = 5
If Not IsDeclared('iTmp') Then Global Const $iTmp = 10 回复afan
关键后面的这句:If Not IsDeclared('iTmp') Then Global Const $iTmp = 10
为什么不 ...
happytc 发表于 2012-6-18 12:27 http://www.autoitx.com/images/common/back.gif
你注释错了,应该注释声明那句
;Global Const $iTmp = 5
If Not IsDeclared('iTmp') Then Global Const $iTmp = 10 你注释错了,应该注释声明那句
;Global Const $iTmp = 5
If Not IsDeclared('iTmp') Then Global ...
afan 发表于 2012-6-18 12:30 http://www.autoitx.com/images/common/back.gif
不是这个意思,而是如何可以重复申明常量/变量:经常遇到这种情况,就是一个au3文件里已经申明过一个常量了,而在另外一个au3文件由于不知道是否别的#inlcude文件里已经申明过了,就来个判断,经常象下面:
If Not IsDeclared("NIM_ADD") Then Global Const $NIM_ADD = 0x00000000
看上去很美,但根本不管用。 看上去很美,但根本不管用 ...
happytc 发表于 2012-6-18 12:47 http://www.autoitx.com/images/common/back.gif
管用是肯定的,不管用是因为你使用方法不正确。
能写两个脚本来证明不管用吗? 回复 10# afan
啊,你还没有明白我的意思呀
不用写两个脚本,就是只要前面已经申明过了,后面再申明,肯定报错呀
Global Const $iTmp = 5
If Not IsDeclared('iTmp') Then Global Const $iTmp = 10
其实不管上面if条件是否成立都会报错的,如:
Global Const $iTmp = 5
;If 1 Then Global Const $iTmp = 10
;If 0 Then Global Const $iTmp = 10 ;就是去掉这句的注释也会报错的
又如两个脚本的情况:Test.au3和tmp.au3
Test.au3的内容就下面一句:
Global Const $iTmp = 56
而tmp.au3里的内容就下面两句,如下:
#include 'Test.au3'
If Not IsDeclared('iTmp') Then Global Const $iTmp = 10
运行tmp.au3文件,肯定报错嘛 回复afan
啊,你还没有明白我的意思呀
不用写两个脚本,就是只要前面已经申明过了,后面再申明 ...
happytc 发表于 2012-6-18 13:21 http://www.autoitx.com/images/common/back.gif
你是用 SciTE 编辑器运行的?而且是 SciTE 编辑器报的错? 如此的话就正常了。Au3Check 不准的,它是基于字符串的操作,所有的代码,包括 IsDeclared () 并未运行(和代码迷惑的原理一样),所以才会“友情提示”。可以直接忽略。
为什么不直接运行呢,Au3 解释器才是老大。我不用SciTE 编辑器的,所以从不会收到这些“垃圾短信”… 回复 11# happytc
你用 Assign 声明一个变量再使用,SciTE 同样会报错,而实际是完全正确可执行的。Assign('a', 888)
msgbox(0, 0, $a) 回复 13# afan Dim $a=10 ;这里是开关
If IsDeclared("a") Then
MsgBox(0,0,"对")
Else
MsgBox(0,1,"错")
EndIf这样解释行不行? 回复 14# lchl0588
用词不太准确,“开关”…
没有对与错,“对”应该解释为“已声明”,“错”应该解释为“未声明”
页:
[1]
2