C# 在进程执行之前更新文件失败

C# 在进程执行之前更新文件失败,c#,vbscript,C#,Vbscript,我正在通过C#应用程序启动VBScript。在开始之前,我以编程方式更改了VBScript的一些内容:用计算机主机名交换占位符关键字。 VBScript将执行,但使用占位符关键字而不是计算机主机名。但是,当在Process.Start()前面停止代码时,我可以看到VBScript已成功修改并保存,其中包含计算机主机名。 我还尝试添加一个线程。在执行前睡眠,但没有帮助 它以前是有效的,我更新了程序中一些不相关的内容,但现在大部分时间都不起作用。当我使用调试器时,有时VBScript会加载正确的内容

我正在通过C#应用程序启动VBScript。在开始之前,我以编程方式更改了VBScript的一些内容:用计算机主机名交换占位符关键字。 VBScript将执行,但使用占位符关键字而不是计算机主机名。但是,当在Process.Start()前面停止代码时,我可以看到VBScript已成功修改并保存,其中包含计算机主机名。 我还尝试添加一个线程。在执行前睡眠,但没有帮助

它以前是有效的,我更新了程序中一些不相关的内容,但现在大部分时间都不起作用。当我使用调试器时,有时VBScript会加载正确的内容。但最终的程序几乎总是失败

有什么建议吗?这可能是什么

以下是C#进程执行的代码:

if(boEditStartupFileFirst)
{
字符串[]stFileContent=File.ReadAllLines(stFullPath);
for(int i=0;i
以下是VBScript的内容:

如果不是WScript.Arguments.Named.Exists(“提升”),则
CreateObject(“Shell.Application”).ShellExecute WScript.FullName_
,WScript.ScriptFullName&“/elevate”、“”、“runas”,1
WScript.Quit
如果结束
设置WshShell=WScript.CreateObject(“WScript.Shell”)
WshShell.Run“regedit”
WScript.Sleep 500
WshShell.SendKeys“%DM”
WScript.Sleep 200
WshShell.SendKeys“名称”
WScript.Sleep 200
WshShell.SendKeys“{ENTER}”

VBScript的作用:打开RegEdit并连接到远程计算机。

您希望我们如何在不看到您的代码的情况下回答问题?哇,我的糟糕!将代码编辑到问题中。您在哪里设置
boEditStartupFileFirst
?显示的代码对我来说是一个简单的
msgbox
vbs
文件。您可能还需要显示
vbscript
文件。另外,添加
c#
标记,因为它也是相关的。显示的代码在类的方法中。来电者使bool开关过载。哇,我想多亏了你的提示,我发现了这个问题。在Process.Start()之后,我执行一个方法再次更改VBScript,将计算机名替换为名称占位符。当评论超过这一点时,脚本工作正常。。。但是为什么会发生这种情况呢?因为我知道这个过程是在脚本更改回来之前开始的?