所以我想要完成的是始终开始。本机操作系统版本中的cscript.exe。因此,当我的脚本运行时,我可以访问正确的系统文件,并且不会被重定向到syswow64 regestry / files。
所以根据msdn文档,我可以在64位系统上运行32位应用程序时使用sysnative来获取真正的system32文件夹。但脚本无法找到cscript.exe文件。所以问题是我做错了什么?我大多是一个蟒蛇人,所以我可能会做出一个愚蠢的假设。
这被编译成32位服务,因此它可以部署在任何Windows操作系统上(理论上)
运行VisualStudio 2010(如果重要)
或者我是否完全回到了前面?
Public Class Service1
Protected Overrides Sub OnStart(ByVal args() As String)
' Add code here to start your service. This method should set things
' in motion so your service can do its work.
'Prvents windows from redirecting us to the wow64 folder instead of system32.
' Don' run if settings file is gone
If My.Computer.FileSystem.FileExists("C:\Settings.vbs") Then
'If we are running in wow64(32bit windows files) mode switch to native 64 bit vbscript
If My.Computer.FileSystem.DirectoryExists("%systemroot%\sysnative") Then
Process.Start("%systemroot%\sysnative\cscript.exe", "C:\Main.vbs")
Else
Process.Start("%systemroot%\system32\cscript.exe", "C:\Main.vbs")
End If
End If
End Sub
Protected Overrides Sub OnStop()
' Add code here to perform any tear-down necessary to stop your service.
End Sub
End Class
基本上问题是如何让cscript以64位模式而不是32位运行,所以只有这一行。
Process.Start(“%systemroot%\ system32 \ cscript.exe”,“C:\ Main.vbs”)
在64位系统上运行时,它会更改为C:\ Windows \ SysWOW64。
但是在32位系统上它仍然保持在C:\ Windows \ system32。
我也试过这个:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365744%28v=vs.85%29.aspx
但我无法确定如何使其发挥作用。在vb应用程序中
答案 0 :(得分:0)
那边的答案
选项推断
Option Strict On
导入System.IO模块Module1 Sub Main()Dim f As String =“”如果IntPtr.Size = 4则f = Path.Combine(Environment.ExpandEnvironmentVariables(“%windir%”),“sysnative”)MsgBox( “在X86上运行”)否则f = Environment.GetFolderPath(Environment.SpecialFolder.System)MsgBox(“在X64上运行”)结束如果Dim wscript As String = Path.Combine(f,“wscript.exe”)Dim psi = New ProcessStartInfo psi.FileName = wscript psi.Arguments = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory),“CheckPlatform.vbs”)Dim p As New Process p.StartInfo = psi p.Start()End Sub End Module
http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/48bc23b5-798f-4cea-ae33-060a0d66506b