【问题标题】:open a javascript (.JS) file from c#从 c# 打开一个 javascript (.JS) 文件
【发布时间】:2023-03-11 10:05:01
【问题描述】:

如何从 c# winform 打开 .js 文件?我试过这个

Process.Start(@"C:\...\software.exe", @"C:\...\mergescripts.js");

但它不起作用。手动,我可以使用打开的文件将 mergescripts.js 文件加载到我的 on software.exe 中。但是如何使用 c# 中的按钮事件动态地做到这一点?

【问题讨论】:

  • 您的“software.exe”是否将 javascript 文件作为参数?
  • 是的,它需要 java 脚本文件作为参数
  • 只需使用 StreamReader(); ,读取所有 js 代码并将其保存为字符串...您可以在 MSDN 上找到有关 Streamreader 的信息:msdn.microsoft.com/en-us/library/…
  • 太棒了..那么“不工作”意味着什么?错误?你试过调试吗?
  • 我没有收到任何错误。我可以打开 software.exe,但文件 mergescript.js 没有加载。

标签: javascript c#


【解决方案1】:

JintEngine可用于执行JavaScript:

using (FileStream fs = new FileStream("file.js", FileMode.Open))
{
    JintEngine js = JintEngine.Load(fs);
    object result = js.Run("return status;");
    Console.WriteLine(result);
}

【讨论】:

  • 使用 jint 需要添加什么 c# 参考?
  • 点击我回答中的链接。这是一个指向 GitHub 的链接,您可以在其中下载 JintEngine。然后你需要将它添加到你的 C# 项目中。
  • 我将 Jint.dll 添加到我的 c# 中。但是由于当前上下文中不存在名称“JintEngine”而出现错误。我添加了“使用 Jint.Runtime.Interop;”
  • 我也试过了。不工作..还有什么我想念的吗?
  • 1.) 将 DLL 包含到您的项目中(下载它们或获取 nuget 包,如果可用) 2.) 添加对您的项目的引用(“添加引用”菜单按钮)3.)将using 添加到您使用 JintEngine 类的文件中。
【解决方案2】:

请尝试以下语法

ProcessStartInfo ps = new ProcessStartInfo();
        ps.FileName = @"C:\Program Files (x86)\Notepad++\notepad++.exe";
        ps.Arguments = @"C:\Users\Desktop\aaa.txt";
        Process.Start(ps);

【讨论】:

  • 错了。命令行参数进入Process.Start 的第二个参数。此外,您必须将带空格的内容放在引号中,否则它将被解释为两个命令行参数。
  • 编辑后,您的代码可以运行并使用 notepad++ 打开一个文本文件。但是 OP 的问题是如何执行 JavaScript。所以,你的答案仍然无关紧要。
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 2011-04-03
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
相关资源
最近更新 更多