"C#怎么遍历IE窗体"出现拒绝访问错误

lsj60915kgy 2016-05-22 09:50:38
引用System32中SHDocVw.dll和Shell32.dll
C# code
private void Form1_Load(object sender, EventArgs e)
{
Shell32.ShellClass shell = new Shell32.ShellClass();
SHDocVw.ShellWindows windows = shell.Windows() as SHDocVw.ShellWindows;
string[] lines = new string[windows.Count];
for (int i = 0; i < windows.Count; i++)
{
SHDocVw.ShellBrowserWindow win = windows.Item(i) as SHDocVw.ShellBrowserWindow;
lines[i] = win.LocationName;
}
memoEdit1.Lines = lines;
}
有一个IE窗口(别的都可以)获取时就出现0x80070005错误,不知何故。难道跟权限有关?我的机器处于公司局域网中。这个网页是立思辰的打印管理窗口。跟是否跨域访问无关。

用以下语句:

SHDocVw.ShellWindowsClass shellWindows = new SHDocVw.ShellWindowsClass();
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
//if it is ie window
if (ie.FullName.ToUpper().IndexOf("IEXPLORE.EXE") > 0)
{
.......................

则不会出错,但是连这个窗口都找不着,就好像这个窗口对这个语句 foreach (SHDocVw.InternetExplorer ie in shellWindows)是隐身的。
...全文
130 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2016-05-24
  • 打赏
  • 举报
回复
SHDocVw.ShellWindowsClass shellWindows = new SHDocVw.ShellWindowsClass(); 这句是新定义个变量当然是空的咯
shoppo0505 2016-05-24
  • 打赏
  • 举报
回复
SHDocVw.ShellWindowsClass shellWindows = new SHDocVw.ShellWindowsClass(); 这句是新定义个变量当然是空的咯
lsj60915kgy 2016-05-24
  • 打赏
  • 举报
回复
经过试验,应该是因为权限的问题,我用网管的U key登录进去可以运行,不会出现访问拒绝错误。但是,到底是哪个权限呢?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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