vszy 发表于 2017-10-10 14:16:45

【已解决】DirCreate命令对win10兼容不好吗?

本帖最后由 vszy 于 2017-10-11 22:02 编辑

#AutoIt3Wrapper_Res_RequestedExecutionLevel=requireAdministrator

$BIT=@OSArch
$dir = StringLeft(@ProgramFilesDir,16)

If $BIT = "X86" Then
DirCreate(@ProgramFilesDir & "\test")
Else
DirCreate(@ProgramFilesDir & "\test")
DirCreate($dir&"\test")
EndIf

以上脚本编译成x86的exe文件,在Win7(64bit)下运行正常,在“C:\Program Files”和“C:\Program Files (x86)”目录下可分别创建“test”目录。为什么到win10(64bit)下只有“C:\Program Files (x86)”里能创建成功,在"C:\Program Files"创建不了呢?win10下MsgBox("","",$dir&"\test") 显示的也是"C:\Program Files\test"啊。

望有经验的朋友看看什么问题?是AU3版本不够新?

heroxianf 发表于 2017-10-10 16:11:10

貌似有几个函数用起来不怎么灵~

yamakawa 发表于 2017-10-10 19:51:55

WIN10 AU3 3.3.14.2


cfanpc 发表于 2017-10-10 20:30:13

要不用3.3.15测试版试试

cfanpc 发表于 2017-10-10 20:30:15

要不用3.3.15测试版试试

ura 发表于 2017-10-10 20:54:48

以管理员身份运行,可能权限不够

vszy 发表于 2017-10-11 00:24:50

俺用的就是3.3.15.0

vszy 发表于 2017-10-11 00:26:39

回复 3# yamakawa


明天换个低版试试,谢谢

yhxhappy 发表于 2017-10-11 10:21:17

$dir = StringLeft(@ProgramFilesDir,16),这句有问题
在x64下执行32位编译程序 @ProgramFilesDir = “C:\Program Files (x86)”,而你只取前16个字符,所以你看到的始终是 C:\Program Files
编译为64位后执行,@ProgramFilesDir = C:\Program Files

vszy 发表于 2017-10-11 12:13:24

回复 9# yhxhappy

      我就是想编译32位脚本,在32位运行系统下只在C:\Program Files下生成指定目录;在64位系统下运行同时在C:\Program Files和C:\Program Files (x86)都生成指定目录。如果编译成64位的exe文件,在32位下运行不了啊。这点小事不用编译两个EXE吧。

      $RD = StringLeft(@ProgramFilesDir,16)这个是我能力内想到32位脚本在64位系统下获取C:\Program Files的办法,要是有更好的请大家给点意见。

      再吐槽下微软,非要整C:\Program Files和C:\Program Files (x86)这两个目录有啥用,程序放在哪里都一样用。

vszy 发表于 2017-10-11 12:24:18

回复 3# yamakawa


    这位兄弟,冒昧的问一下,你确定是64位win10环境运行32位脚本?我换了3.3.14.2和3.3.12.0都试了,还是不行。难道系统问题?
   
      再有随便问问大家现在都用什么版本的autoit啊,哪个版本最稳定?

yhxhappy 发表于 2017-10-11 12:44:20

回复 10# vszy

权限不够吧,加上试试,我这里OK的
#RequireAdmin

vszy 发表于 2017-10-11 22:01:20

已确定是系统问题,谢谢大家

vszy 发表于 2017-10-11 22:01:22

已确定是系统问题,谢谢大家
页: [1]
查看完整版本: 【已解决】DirCreate命令对win10兼容不好吗?