各位,在win7 下CommonDialog控件的 InitDir 不起作用,这是为啥啊,在调试的时候没有问题,可是在编译成exe之后再测试,就不起作用了,总是设定为上次使用过的路径,不会指定到我设定的InitDir 。谢谢各位了。如下例子,如果指定了一次E盘的话,下次打开默认就是E盘了,而不是D盘。在XP下测试,没有问题,换到Win7下就不成了。(调试环境没有问题,直接执行EXE就不可以了)Private Sub Command2_Click()
Path = "D:\"
With CommonDialog1
.FileName = "11.log"
.InitDir = Path
.ShowOpen
End With
End Sub
Path = "D:\"
With CommonDialog1
.FileName = "11.log"
.InitDir = Path
.ShowOpen
End With
End Sub
解决方案 »
- api函数
- 请问:VB也有MSDN吗?
- 高分请教shannon-fano数据压缩(有完整程序另送高分)
- 求教把access数据库内容倒入sql的方案
- 刚开始如何~~~~~~~`
- 关于调试VC编写的dll的问题,急阿
- 如何实现ListView中的多行选择,按鼠标反键弹出菜单,选出删除删掉所有选中的条目?
- 如何损坏一个ACCESS数据库?
- 如何让窗口上所有的控件在失去焦点后自动隐藏,就象combobox中的listbox一样
- 哪里有改窗体标题栏的控件????(就这么点分了 :)
- access 子窗体查询结果为什么是只读的?
- 大侠,用VB判断SQL数据库名称***是否存在,如果不存在就新建数据库的问题?
1)检查 UAC 相关。
2)检查防毒软件设置。
UAC要检查哪些项目啊,我已经全关闭了,参考图片。
另外杀毒软件都关闭了
我如果在编译一次1.exe 默认路径换为D:\222\ 这时,指定的initDir 就有效了.
------
总结了一下,就是每个exe指定的第一个initDir 都是无效的,从第二次开始指定的initDir 就有效了。就感觉像要初始化一下似的
不知道win7把上次默认打开的路径记到哪儿了。太迷茫了
Dim i As Integer
Private Sub Command1_Click()
On Error Resume Next
If i = 0 Then
Flg_ExcelPath = "D:\TEST\"
Else
Flg_ExcelPath = "D:\TEST"
End If
Flg_ExcelName = "a1.txt"
Text3.Text = Err.Number
With CDL_ExportToExcel
.InitDir = Flg_ExcelPath
.FileName = Flg_ExcelName
.CancelError = False
.DialogTitle = "保存数据到Excel"
.ShowSave
End With
Text4.Text = Err.Number
Text1.Text = Flg_ExcelPath
Text2.Text = CDL_ExportToExcel.InitDir
i = i + 1
End SubPrivate Sub Form_Load()
i = 1
End Sub
找找规律:调用前的当前目录 CurDir、设置前的 InitDir、设置后的 InitDir。