将 当前用户的桌面移动到 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
|