日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#调用WSC(Windows Script Component)

發布時間:2024/6/14 C# 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#调用WSC(Windows Script Component) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WSC是一個很老的東西了,我現在是想用C#去執行一個WSH(javascript)的腳本,卻又不想通過Process卻調用cscript,直接call函數最好了。

WSC 1 <?xml version="1.0" encoding="utf-8"?> 2 <component> 3 <?component error="true" debug="true"?> 4 <registration 5 description="test" 6 progid="test.wsc" 7 clsid="{F0590009-B8C7-4B69-9DA9-6E1919F07936}" 8 /> 9 <public> 10 <method name="hello"> 11 </method> 12 </public> 13 <script language="javascript"> 14 <![CDATA[ 15 function hello() { 16 return "Hello WSC"; 17 } 18 ]]> 19 </script> 20 </component>

將上面的代碼保存為 test.wsc,然后右鍵選擇注冊。接著就可以去C#中調用了,這里用了.Net 4.0的 dynamic類型

Type TestType = Type.GetTypeFromProgID("test.wsc"); dynamic test= Activator.CreateInstance(TestType ); Console.Out.WriteLine(test.hello());

不過,如果你想傳參數的話,問題就變得復雜了。C#的class是managed,javascript是訪問不到,不過傳個值還是可以的,比如int的值

暫時沒時間研究在managed和unmanaged之間轉換問題,哪位仁兄會的話,不妨分享下^_^

x64問題

在x64位的Win7上右鍵注冊wsc是不好使的,因為默認是注冊system32下面的scrobj.dll,64程序訪問就會未注冊的問題。

據說用下面的語句注冊和卸載就可以了(有待實驗)

"C:\WINDOWS\SYSWOW64\REGSVR32.EXE" /i:"%1" "C:\WINDOWS\SYSWOW64\scrobj.dll" "C:\WINDOWS\SYSWOW64\REGSVR32.EXE" /u /n /i:"%1" "C:\WINDOWS\SYSWOW64\scrobj.dll"

調用js的其他方法

  • IronJS:使用DLR,以類似IronPython和IronRuby的方式運行,據介紹速度還挺快
  • rhino:codeproject上有一篇文章介紹如何在C#中用rhino去執行javascript

轉載于:https://www.cnblogs.com/windtail/archive/2012/11/26/2790090.html

總結

以上是生活随笔為你收集整理的C#调用WSC(Windows Script Component)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。