问题描述
引用System32中SHDocVw.dll和Shell32.dllC#codeprivatevoidForm1_Load(objectsender,EventArgse){Shell32.ShellClassshell=newShell32.ShellClass();SHDocVw.ShellWindowswindows=shell.Windows()asSHDocVw.ShellWindows;string[]lines=newstring[windows.Count];for(inti=0;i<windows.Count;i++){SHDocVw.ShellBrowserWindowwin=windows.Item(i)asSHDocVw.ShellBrowserWindow;lines[i]=win.LocationName;}memoEdit1.Lines=lines;}有一个IE窗口(别的都可以)获取时就出现0x80070005错误,不知何故。难道跟权限有关?我的机器处于公司局域网中。这个网页是立思辰的打印管理窗口。跟是否跨域访问无关。用以下语句:SHDocVw.ShellWindowsClassshellWindows=newSHDocVw.ShellWindowsClass();foreach(SHDocVw.InternetExplorerieinshellWindows){//ifitisiewindowif(ie.FullName.ToUpper().IndexOf("IEXPLORE.EXE")>0){.......................则不会出错,但是连这个窗口都找不着,就好像这个窗口对这个语句foreach(SHDocVw.InternetExplorerieinshellWindows)是隐身的。
解决方案
本帖最后由 lsj60915kgy 于 2016-05-22 09:58:12 编辑
解决方案二:
经过试验,应该是因为权限的问题,我用网管的Ukey登录进去可以运行,不会出现访问拒绝错误。但是,到底是哪个权限呢?
解决方案三:
SHDocVw.ShellWindowsClassshellWindows=newSHDocVw.ShellWindowsClass();这句是新定义个变量当然是空的咯
解决方案四:
SHDocVw.ShellWindowsClassshellWindows=newSHDocVw.ShellWindowsClass();这句是新定义个变量当然是空的咯