标签: comobject

如何从webbrowser控件获取onclick中的实际JavaScript值?

我正在寻找一种方法来获取onclick中定义的JavaScript代码.我正在使用.NET 2.0 C#Visual Studio 2005.

例:

<span id="foo" onclick+"window.location.href='someURL'>click here</span>
Run Code Online (Sandbox Code Playgroud)

我的目标是获取字符串"window.location.href ='someURL'".

场景:

用户点击Web页面元素,例如上面显示的标记,在WebBrowser控件内部.然后点击标签被吹罚至H tmlElement object.

在WebBrowser控件中我然后调用HtmlElement object's getAttribute("onclick")它,它只给我" System .__ ComObject".

我已经搜索了如何处理它然后发现它可以被铸造然后获得价值.

if (tag.GetAttribute("onclick").Equals("System.__ComObject"))
{
    Console.WriteLine("dom elem  >>>>>>>>>>> " + tag.DomElement.ToString());
    mshtml.HTMLSpanElementClass span = (mshtml.HTMLSpanElementClass)tag.DomElement;

    Console.WriteLine("js value ===>" + span.onclick);
}
Run Code Online (Sandbox Code Playgroud)

输出:

dom elem  >>>>>>>>>>> mshtml.HTMLSpanElementClass
js value ===> System.__ComObject
Run Code Online (Sandbox Code Playgroud)

如图所示,span.onclick仍然给我System .__ ComObject,我做错了什么?

为什么的HtmlElement的的getAttribute()方法返回"mshtml.HTMLInputElementClass",而不是属性的值? 这家伙说它在他的情况下工作,我跟着它,但我的有点不工作......

UPDATE

研究,研究.....

我可以在我的C#项目中添加引用VisualBasic.dll然后调用该方法来找出这个系统是谁.__ ComObject确实是.

Console.WriteLine(Microsoft.VisualBasic.Information.TypeName(span.onclick));
Run Code Online (Sandbox Code Playgroud)

输出:

JScriptTypeInfo
Run Code Online (Sandbox Code Playgroud)

看起来这是一个JScript类型......我该如何访问这个对象?

更多详情

以上描述基于我目前的项目.该项目旨在创建像Selenium IDE这样的东西.它使用WebBrowser控件.

Selenium IDE创建了3种不同的东西来记录Web文档中的元素.

1. actionType
2. xpath
3. …
Run Code Online (Sandbox Code Playgroud)

c# browser visual-studio-2005 selenium-ide comobject

13
推荐指数
2
解决办法
7549
查看次数

自动化(IE ComObject)填充文本框

我正在尝试自动化Outlook Web Access网站,填写一些文本框并单击按钮,

我可以在第一页(登录)和提交按钮中找到相关元素,所以我通过了登录阶段,我的问题是找到带有蒙版文本框的某个页面内的元素,我附上了3个步骤的快照,以及对象的DOM图像.

登录页面

$IE = New-Object -ComObject InternetExplorer.Application
$URL = 'https://somewebsite/ecp/?rfr=owa&p=PersonalSettings/Password.aspx'
$IE.Visible = $true
$IE.Navigate($URL)
While ($IE.Busy -eq $true) {Start-Sleep -Milliseconds 2000} 

$ie.Document.getElementById('username').value = "username"
$ie.Document.getElementById('password').value = "password"
$Submit = $ie.Document.getElementsByTagName('Input') | ? {$_.Type -eq "Submit"}
$Submit.click()
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好,我的问题从里面的页面开始,我只是找不到密码字段的textboxes元素,

在此输入图像描述

这里还有这些元素的DOM快照:

在此输入图像描述

我真的很感激任何帮助

html powershell internet-explorer automation comobject

10
推荐指数
1
解决办法
3665
查看次数

Microsoft.Office.Interop.Excel不适用于64位

我在MS Visual Web Developer 2008 Express Ed上进行开发时遇到了问题.在Windows7 64位操作系统上开发ASP.NET C#.

我正在尝试打开Excel文档,但它给了我 Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

我确实将构建配置到所有处理器(任何CPU,x64,x86),但它不起作用.我在互联网上搜索了答案,但无法找到如何处理它.

奇怪的是,当我在Microsoft Visual C#2010 Express上开发时,在同一系统上运行的代码相同!怎么会?是不是同样的dll工作?

我是否需要更改该COM dll以便它可以在x64系统上运行?

请帮帮我,我该怎么办?

我的代码是:

using Excel = Microsoft.Office.Interop.Excel;
xlApp = new Excel.Application();
__Log("Openning " + excelFileName);
xlWorkBook = xlApp.Workbooks.Open(excelFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
Run Code Online (Sandbox Code Playgroud)

asp.net interop comobject hresult

8
推荐指数
1
解决办法
3万
查看次数

如何在C#中的System.Type中返回System .__ COMObject的类型

我正在做一个程序,我想做一个反射,但是为此,我需要一个Type类的Object,对吗?使用.GetProperties()方法...所以我尝试了这个:

Type typeName = simObjects.getType();

但是.GetType()返回“ System .__ COMObject”。这没有帮助。.typeof()也会发生同样的情况。我搜索并找到了另一个代码,这个代码:

Type typeName = (Type)Microsoft.VisualBasic.Information.TypeName(simObjects);

但是此方法返回一个String,而我在System.Type中需要它,请问有什么帮助吗?

c# reflection system.type comobject gettype

7
推荐指数
1
解决办法
2万
查看次数

Regsvr32奇怪的行为=> Regsvr32没有给出任何成功或失败的消息

我有一个directShow过滤器:MyFilter.ax

当我尝试使用Regsvr32实用程序注册MyFilter.ax时,它不会出现任何错误或任何消息(成功或失败).但是过滤器未注册.

Regsvr32实用程序适用于我的其他过滤器.

为什么Regsvr32 deoes不给出任何成功或失败的消息?如何调试我的Regsvr32故障成功?用于注册directshow过滤器的任何替代实用程序可能会给出有意义的消息?

最好的祝愿

更新:

我在虚拟机上安装了干净的win7操作系统.然后再次尝试register.Fail而没有来自regsvr32的消息响应.

但是再在虚拟机上安装一个干净的win7操作系统.然后进行所有更新.在我进行更新后,regsvr32工作并安装我的过滤器....我不知道是什么原因导致regsvr32失败以及什么样的更新修复它.或者它真的是一个更新问题......

com regsvr32 directshow comobject

6
推荐指数
1
解决办法
4702
查看次数

PowerShell Windows 安装程序 Com 对象

我正在尝试使用 Powershell 修改 MSI 文件的内容。为此,我创建了一个 WindowsInstaller.Installer 实例,然后使用 $installer.OpenDatabase 和 $database.OpenView。类似的功能在 VBScript 中也可以使用,而且我已经看到在线示例似乎可以正常工作。

$installer = new-object -comobject "WindowsInstaller.Installer"
$database = $installer.OpenDatabase("C:\Temp\Setup.msi", 1)
Run Code Online (Sandbox Code Playgroud)

对于上述代码,我收到错误消息“方法调用失败,因为 [System.__ComObject] 不包含名为‘OpenDatabase’的方法。”

$installer = new-object -comobject "WindowsInstaller.Installer"
$database = $installer.InvokeMethod("OpenDatabase","C:\Temp\Setup.msi", 1)
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用 $installer.InvokeMethod,我会收到同样的错误“方法调用失败,因为 [System.__ComObject] 不包含名为‘InvokeMethod’的方法。”

任何帮助将非常感激。

谢谢。

windows powershell installation comobject

5
推荐指数
1
解决办法
7857
查看次数

VS2010不会显示项目属性("底层RCW")?

只有时候(我还没有注意到一个模式),当我右键单击一个项目(各种类型的项目)并选择"时,VS2010显示以下错误(我希望属性页的主体是)"属性":

尝试加载页面时发生错误. 无法使用已与其基础RCW分离的COM对象.

我通常可以在重启VS2010后查看项目页面.我正在使用RTM版本.

什么可能导致此错误?

visual-studio-2010 comobject rcw project-properties

5
推荐指数
1
解决办法
2429
查看次数

从Com Object获取进程ID

可以从这个新的Com对象($ ie)获取进程ID吗?

$ie=New-Object -comobject InternetExplorer.Application  
$ie.visible=$true  
$ie.Navigate("www.stackoverflow.com")
Run Code Online (Sandbox Code Playgroud)

powershell process comobject

5
推荐指数
1
解决办法
7582
查看次数

C# System.__ComObject 访问 Excel 文件时返回

我正在尝试通过以下代码访问Excel文件:

Microsoft.Office.Interop.Excel.Application ObjExcel
  = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook book;
Microsoft.Office.Interop.Excel.Worksheet sheet;
Excel.Range range1 = null, range2 = null;
CultureInfo ci = new CultureInfo("en-US");
Thread thisThread = Thread.CurrentThread;
thisThread.CurrentCulture = new CultureInfo("en-US");
book = ObjExcel.Workbooks.Open(LinguisticInstructionsFileName);
Run Code Online (Sandbox Code Playgroud)

book 变量的最后一行内容是System.__ComObject在不同的应用程序代码中工作且变量具有...Excel.WorkbookClass

所以我想问一下这种奇怪行为的原因可能是什么。我已经尝试使用额外的 Missing.Value 参数调用 Workbooks.Open 但结果是相同的。

c# excel comobject

5
推荐指数
1
解决办法
2949
查看次数

PowerShell 中的 Word.Application ComObject 错误

我无法使用 Powershell将 Word 2010 (14.0.x) 文档保存为另存为关闭。从网上的所有 tuts 看来,它应该可以与 2.0 一起使用,但我不再拥有它了。

简单案例:

$Path = "C:\MyDoc.docx"
$Word = New-Object -comobject Word.Application
$Word.Visible = $True #Do this to close it out without task manager
$Doc = $Word.Documents.Open($Path)
$Doc.SaveAs($Path)
$Doc.Close()
Run Code Online (Sandbox Code Playgroud)

此时一切正常,直到保存和关闭:

Argument: '1' should be a System.Management.Automation.PSReference. Use [ref].
At line:5 char:1
+ $Doc.SaveAs($Path)
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : NonRefArgumentToRefParameterMsg

Argument types do not match
At line:6 char:1
+ $Doc.Close()
+ ~~~~~~~~~~~~
    + …
Run Code Online (Sandbox Code Playgroud)

powershell comobject powershell-3.0

5
推荐指数
1
解决办法
5503
查看次数