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)相关推荐

  1. 关于“Windows Script Host...”错误

    今天安装EVC&SDK时,安装过程中遇到一错误,信息如下: Windows Script Host access is disabled on this machine. Contact yo ...

  2. windows script host是什么意思,windows based script host

    window power shell与命令提示符哪个好用 windowpowershell相对于命令提示符来说,更加符合语言习惯,更好用一点. WindowsPowerShell是一种命令行外壳程序和 ...

  3. Script component 用法

    在SSIS中,可以使用C#编写脚本,这是十分激动人心的事,能够使用C#代码,使得Script Component无所不能. 第一部分:组件简介 Script Component 有三种类型:Sourc ...

  4. win7计算机找不到脚本文件夹,解决win7开机提示“windows script host 无法找到脚本文件”的方法...

    接下来小编要和大家说到一个新的win7系统故障,其实以前也有用户和小编提到过它,都是由于小编的电脑不是win7就一直没有解决的方法.最近换成win7的电脑之后发现开机的时候系统会弹出一个windows ...

  5. windows script host 无法找到脚本文件 estm.vbs

    问题背景:win11 电脑安装某软件(在此不透露软件名称了)卸载之后,电脑启动出现两个 windows script host 弹窗,找不到 -/estm.vbs 于是我就带着问题去找该软件的客服,那 ...

  6. Windows脚本初探之Windows Script Host(WSH)

    Windows脚本是一种解释型语言编写的程序,它是通过COM对象模型访问OS组件.至于什么是COM对象模型,可参见网址http://baike.baidu.com/link?url=TCoRIQ2ff ...

  7. 自动调用Wine Windows Program Loader执行EXE文件失败的解决办法

    Wine安装完之后,双击exe文件的时候,都会自动调用Wine Windows Program Loader,而调用这个往往会出现错误: The file '/home/tools/SecureCRT ...

  8. 如何调用一个windows上的应用程序呢?

    -------------------------------------------------------------------------------- 可以用Runtime,使用的例子如下: ...

  9. java调用执行windows命令

    序: 先说说这个场景,其实我想的是不用远程连接服务器.通过其他活着的服务搞事情,理论上应该是所有的命令都可以执行的.我这里只是试验性的,可行性,所以我就做了个每次执行一条命令的. 一.先说说使用的执行 ...

最新文章

  1. 网络配置文件、命令详解
  2. jawstats php,JAWStats 配置(为AWStats配上华丽的外衣)
  3. 页面引用CSS和Javascript时,内联和外置的区别
  4. C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录
  5. linux利用grep查看打印匹配的下几行或前后几行的命令
  6. C代码反汇编后的堆栈寄存器EBP和ESP
  7. mysql5.6安装51cto_MySQL 5.6 for Windows配置安装之解压缩版
  8. java ios压缩_iOS与Java服务器GZip压缩问题【转】
  9. js数字累加 · 递增动画 - 封装篇
  10. SublimeText3.2.1的汉化方法(也适用于3)
  11. [ZZ]DevExpress Windows Form(1) DevExpress控件之主题
  12. perl脚本 linux,linux – 通过Perl脚本设置环境变量
  13. 2020线性代数辅导讲义练习答案
  14. ssdp java_SSDP协议 - 实施
  15. 最全卡尔曼滤波原理简介
  16. 淘宝宠物用品找代理方法步骤 淘宝宠物用品店怎么开
  17. pip list outdated pacakge and update
  18. Python AngryBirds完整代码+讲解
  19. 苹果笔记本硬盘替换方案
  20. 几种抽奖方式之轮盘抽奖

热门文章

  1. 省带宽、耗电小,腾讯游戏学院专家解析手游渲染架构
  2. 五个简单的原则,带你写出整洁代码
  3. 2022年3月23日15:51:00——百度2班留存
  4. 第七届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
  5. pyecharts第四节、漏斗图
  6. ASP.NET MVC (一、控制器与视图)
  7. Java微服务(二)【idea中文插件安装】(手把手编写,超级详细)
  8. Benny:只处理那些NVARCHAR字段,并且NTEXT也是小于4000个字符时的情况.不管类型.只管长度....
  9. Kafka-Monitor
  10. winfrom保存图片,将文件夹中图片放入listview,与撤回操作