用360浏览器,VBA设置用户数据保存目录的问题。

tempabc 2013-05-01 12:10:38
由于某些原因,需要设置360安全浏览器的用户数据保存目录。
在网上查了一下,可以用带参数的方法设置360安全浏览器用户数据的保存目录。方法如下:
"C:\Documents and Settings\Administrator\Application Data\360se6\Application\360se.exe" --user-data-dir="D:\360User\user1"
用户数据保存在D:\360User\user1

"C:\Documents and Settings\Administrator\Application Data\360se6\Application\360se.exe" --user-data-dir="D:\360User\user2"
用户数据保存在D:\360User\user2

我想在Excel VBA中使用,用这个方法,可以设置:
Shell "C:\Documents and Settings\Administrator\Application Data\360se6\Application\360se.exe" --user-data-dir="D:\360User\user1"

shell "C:\Documents and Settings\Administrator\Application Data\360se6\Application\360se.exe" --user-data-dir="D:\360User\user2"

但我想用CreateObject("InternetExplorer.Application")方法来打开不同的网址,并将用户数据保存在不同的目录中。
我的程序如下:

Sub test10()
'第一个网站,用户数据保存在 D:\360user\user1 中
Mypath1 = """C:\Documents and Settings\Administrator\Application Data\360se6\Application\360se.exe"""
MyPath2 = " " & "--user-data-dir="
Mypath3 = """D:\360User\user1"""
Mypath = Mypath1 & MyPath2 & Mypath3

'在注册表中,设置"C:\Documents and Settings\Administrator\Application 'Data\360se6\Application\360se.exe" --user-data-dir="D:\360User\user1"
Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCR\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32\", "" & Mypath & "", "REG_SZ"
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = 1
ie.navigate "http://www.163.com"

Sleep 10000

'第二个网站,我希望用户数据保存在 D:\360user\user2 中,但不行???
'在注册表中,设置"C:\Documents and Settings\Administrator\Application 'Data\360se6\Application\360se.exe" --user-data-dir="D:\360User\user2"

Mypath3 = """D:\360User\user2"""
Mypath = Mypath1 & MyPath2 & Mypath3
WshShell.RegWrite "HKCR\CLSID\{0002DF01-0000-0000-C000-000000000046}\LocalServer32\", "" & Mypath & "", "REG_SZ"

Set ie2 = CreateObject("InternetExplorer.Application")
ie2.Visible = 1
ie2.navigate "http://www.sina.com.cn"
Do While ie.busy Or ie.readystate <> 4
Loop
Sleep 10000

End Sub


但实测中,却不行,浏览器打开第一个网址后,用户保存在D:\360user\user1,
第二个网址再打开,用户数据还是保存在原来的目录D:\360user\user1中。
除非第一个浏览器打开后,关闭,再执行创建ie2的代码,ie2的用户数据才会保存期在目录D:\360user\user1中。有什么解决方法呢???
...全文
12487 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tempabc 2013-05-02
  • 打赏
  • 举报
回复
引用 3 楼 tempabc 的回复:
[quote=引用 2 楼 dsd999 的回复:] 在Set ie2 = CreateObject("InternetExplorer.Application")打个断点 看看注册表的值是否改成user2.
试过了,不行啊。看到注册表已经改成user2了,但还是不行。 似乎执行CreateObject("InternetExplorer.Application")的时候, 内存中如果已经有一个InternetExplorer.Application,则不会重新读取注册表, 只会按原来的参数重新建立一个。[/quote] 如果在Set ie2 = CreateObject("InternetExplorer.Application")打个断点 把第一个浏览器关闭,则再建立时会重新读注册表,并按注册表的参数重新建立一个。
tempabc 2013-05-02
  • 打赏
  • 举报
回复
引用 2 楼 dsd999 的回复:
在Set ie2 = CreateObject("InternetExplorer.Application")打个断点 看看注册表的值是否改成user2.
试过了,不行啊。看到注册表已经改成user2了,但还是不行。 似乎执行CreateObject("InternetExplorer.Application")的时候, 内存中如果已经有一个InternetExplorer.Application,则不会重新读取注册表, 只会按原来的参数重新建立一个。
dsd999 2013-05-02
  • 打赏
  • 举报
回复
在Set ie2 = CreateObject("InternetExplorer.Application")打个断点 看看注册表的值是否改成user2.
dsd999 2013-05-02
  • 打赏
  • 举报
回复
引用 6 楼 tempabc 的回复:
[quote=引用 5 楼 dsd999 的回复:] 打断点看看ie和ie2的值是否一样?
不明白???[/quote] 就是在观察窗口看看ie和ie2的内存指针是不是一样的?
tempabc 2013-05-02
  • 打赏
  • 举报
回复
引用 5 楼 dsd999 的回复:
打断点看看ie和ie2的值是否一样?
不明白???
dsd999 2013-05-02
  • 打赏
  • 举报
回复
打断点看看ie和ie2的值是否一样?
threenewbee 2013-05-01
  • 打赏
  • 举报
回复
既然知道电脑感染了360系列非法流氓病毒,还是重装系统吧。

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧