Tag: wsh

使用script.exe运行vb脚本

我想使用cscript.exe运行vbscript文件。 我搜索了很多,但没有找到任何方式,而我可以使用cmd与cscript.exe运行我的脚本 这是我的代码 Process p = new Process(); p.StartInfo.Arguments = @”C:\\Program Files\\VDIWorkLoad\\WorkLoadFile\\open test.vbs”; p.StartInfo.FileName = “testing”; p.StartInfo.UseShellExecute = false; try { p.Start(); p.WaitForExit(); Console.WriteLine(“Done.”); } 任何想法如何使用cscript.exe

新的脚本语言

我正在尝试自己创建一个脚本语言(它不一定非常完美 – 尽管如果它会很好),主要是因为我这样做很有趣并且了解它们是如何创建的等等。 根据这里的答案: 创建一个我应该研究的脚本语言是这样的: http : //msdn.microsoft.com/en-us/library/xawadt95%28VS.85%29.aspx 。 但是,我完全不知道MSDN页面是关于什么的。 有人可以帮忙吗? PS是否有任何针对Windows脚本宿主的免费/开源脚本语言,它还有可供我使用的完整源代码? 谢谢

使用“开始”目录获取Windows .lnk快捷方式的目标

我试图检索Windows .lnk快捷方式的目标路径,但根据.lnk文件的属性,“目标”不是实际的文件路径: 我正在使用IWshRuntimeLibrary,我访问的快捷方式对象是IWshShortcut类型: WshShell shell = new WshShell(); IWshShortcut link = (IWshShortcut)shell.CreateShortcut(lnkFileName); // This returns “C:\Windows\Installer\{F843C6A3-224D-4615-94F8-3C461BD9AEA0}\PaintShopProExeIcon.ico” var targetPath = link.TargetPath; // This is the same as the “Start in” value in the image above var workingDir = link.WorkingDirectory; “link”对象的TargetPath属性不是实际.exe的位置:“C:\ Windows \ Installer {F843C6A3-224D-4615-94F8-3C461BD9AEA0} \ PaintShopProExeIcon.ico” 我可以从这个对象获取WorkingDirectory属性,这似乎与快捷方式的“Start in”属性相同,如上图所示。 我的问题是, 如果TargetPath不是实际的.exe路径 , 如何获得快捷方式打开的.exe文件的实际目标路径 ? 这些信息在哪里? 此示例中的实际目标路径是“C:\ Program […]

创建文件夹名称具有unicode字符的快捷方式

我一直在使用以下代码动态创建快捷方式。 但是当文件夹名称具有像Thai,greek语言这样的unicode字符时,targetPath会抛出Argumentexception。 IWshRuntimeLibrary.WshShell shell = new WshShell(); IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation); shortcut.Description = “My shortcut description”; // The description of the shortcut shortcut.WorkingDirectory = currentPath; shortcut.TargetPath = targetFileLocation; // The path of the file that will launch when the shortcut is run shortcut.Save();

Windows XP上的Microsoft.Windows.ActCtx

这些天我非常忙于开发activex / com应用程序。 我们的一些客户正在严格限制的Windows环境中工作。 所以我决定让我的应用程序无法使用。 我发现genman32.exe可以轻松创建清单(也是mt.exe很有用)。 一切都很顺利但是当我试图从wsh(vbs或js)执行我的应用程序时 – 由于应用程序在com服务器上运行,因此我的情况是有义务的 – set o = CreateObject(“Application.Interface”) // No object reference 因为“CreateObject”看起来注册并且没有注册入口:)然后我搜索并找到了“actctx”的东西。 在dot.net环境中实现非常容易。 但我必须从wsh(vbs或js)执行我的应用程序;)所以我决定搜索一下然后找到 set o = CreateObject(“Microsoft.Windows.ActCtx”) o.manifest = “L:\\Application.dll.manifest” set app = o.CreateObject(“Application.Interface”) app.Launch() // which is my executing function 问题 – 即使在SP3中,Windows XP的机器也无法使用“Microsoft.Windows.ActCtx”界面 – 微软从未放过任何简单的问题 – 这个问题有什么解决方案吗? 您是否知道创建该接口的任何其他方法或Windows更新?

在C#中创建COM / ActiveXObject,使用JScript,使用简单事件

我想在C#中创建一个COM对象,并通过JScript的IDispatch使用它。 那部分非常简单。 我还想在COM对象上实现简单的回调,类似于在浏览器中可用的XmlHttpRequest对象公开的事件。 该模型允许Javascript附加如下事件处理程序: var xmlhttp = new ActiveXObject(“MSXML.XMLHTTP”); xmlhttp.onReadyStateChange = function() { … }; 我希望我的客户端JScript代码看起来像这样: var myObject = new ActiveXObject(“MyObject.ProgId”); myObject.onMyCustomEvent = function(..args here..) { … }; C#代码是什么样的? 我想要一般情况 – 我希望能够将参数传递回Javascript fn。 我已经看过了如何在点击时用JavaScript编写用C#引发事件的ActiveX控件? ,但那里的答案看起来实际上很复杂,而且使用起来很复杂。 从这篇文章中 ,似乎XMLHttpRequest事件不是COM事件。 onreadystatechange是IDispatch类型的属性。 当脚本客户端将该属性设置为函数时,JScript将其编组为IDispatch对象。 剩下的唯一问题是从C#调用IDispatch。