au3 @DesktopDir 的BUG【暂定】
将 当前用户的桌面移动到 D盘,一开始我会使用 @DesktopDir 来获取当前用户桌面的路径,而且测试的时候也能正确返回当前用户桌面路径。各位可以试试: Local $myDestkTopPath = @DesktopDir 时,执行脚本你会发现D 盘什么也没有。调试的时候你却发现一切正常,可问题就在那里。
使用下面的代码就没有问题。
测试环境: Windows 7 x86
欢迎各位前来拍砖!Local $myDestkTopPath = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Desktop")
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders", "Desktop", "REG_EXPAND_SZ", "D:\Desktop")
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Desktop", "REG_SZ", "D:\Desktop")
_fnFolderObjectMoveHere($myDestkTopPath,"D:")
Func _fnFolderObjectMoveHere($SourceDir, $Destdir)
Local $objShell
Local $objFolder
Local $FOF_NOCONFIRMATION = 16
$objShell = ObjCreate("shell.application")
$objFolder = $objShell.NameSpace($Destdir)
$objFolder.MoveHere($SourceDir, $FOF_NOCONFIRMATION)
EndFunc 回复 1# q113960096
不明白你想说什么各位可以试试: Local $myDestkTopPath = @DesktopDir 时,执行脚本你会发现D 盘什么也没有。调试的时候你却发现一切正常,可问题就在那里。它应该有什么??问题在哪里??? 楼主把我说糊涂,没看明白楼主想表达什么东西,能看懂的请用地球话再翻译一遍。 回复 3# haijie1223
看完楼主的描述,我觉得自己小学语文没过关,所以决定回去温书~~ 目测LZ代码问题 回复 3# haijie1223
看代码才懂了,楼主是想把桌面的东西都移动到D盘根目录下去。
$myDestkTopPath直接用@DesktopDir 不行,而从注册表里读出桌面的路径才行了。
我确定楼主是这个意思。 本帖最后由 netegg 于 2012-11-8 19:03 编辑
环境变量不是这么玩的,要读取或设置的话,最好使用api,
_WinAPI_ShellSetKnownFolderPath netagg正解 netagg正解 回复 10# jingygr
netagg?还连发两遍!
页:
[1]