我希望我的C#应用程序运行外部vbscript。该Vbs正在执行某些操作,并且需要从注册表中检索数据。
vbscript已启动,但出现一个错误:无法打开注册表值进行读取。
我不太明白为什么。
这就是我运行vbscript的方式:
Process scriptProc = new Process();
scriptProc.StartInfo.FileName = @"c:\windows\system32\wscript";
scriptProc.StartInfo.WorkingDirectory = repository + p + "\\"; <-- location of my script : C:\temp\soft\
scriptProc.StartInfo.Arguments = "MyScript.vbs";
scriptProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
scriptProc.StartInfo.Verb = "runas";
scriptProc.Start();
scriptProc.WaitForExit();
scriptProc.Close();
在我的VBS中,我读取了这样的值:
strValue = objShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MyKey\MySubKey\MyReg_Sz_Entry")
其中“ MyReg_Sz_Entry”包含字符串值。我正常运行vb时正确返回了该值,但没有使用C#代码。
我的帐户具有管理权限。
我需要一些帮助:)。
谢谢
答案 0 :(得分:0)
我终于发现了什么问题...
这很简单:我构建的目标体系结构。
我在项目的Visual Studio选项中将其从“任何CPU”更改为“ 64位”,现在可以了。
非常感谢您的帮助。
答案 1 :(得分:-2)
因此,我继续自己进行了测试。根据您的需要进行更改。
_12
_2|_10|_12|
+------+---+---+
|yearID| H| 3B|
| 2004| 0| 0|
| 2006| 0| 0|
| 2007| 0| 0|
| 2008| 0| 0|
| 2009| 0| 0|
| 2010| 0| 0|
| 1954|131| 6|
| 1955|189| 9|
| 1956|200| 14|
| 1957|198| 6|
| 1958|196| 4|
| 1959|223| 7|
| 1960|172| 11|
| 1961|197| 10|
| 1962|191| 6|
| 1963|201| 4|
| 1964|187| 2|
| 1965|181| 1|
| 1966|168| 1|
| 1967|184| 3|
| 1968|174| 4|
| 1969|164| 3|
| 1970|154| 1|
| 1971|162| 3|
| 1972|119| 0|
| 1973|118| 1|
| 1974| 91| 0|
| 1975|109| 2|
| 1976| 62| 0|
csc run.cs
.\run.exe