32 ビット OS と 64 ビット OS の両方で実行される ac# アプリケーションがあります。私のアプリでは、solidworks がコンピューターにインストールされているかどうかをプログラムで確認するにはどうすればよいですか。レジストリ キーを読み取って確認できる場合は、パスを提供してください。 32 ビットと 64 ビットの両方で使用できます。他の方法で確認する方法があれば教えてください。
1046 次
3 に答える
5
WMIは次のように使用できます
private static bool IsInstalled(string ProductName)
{
bool rv = false;
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
ManagementObjectCollection Products = searcher.Get();
if (Products.Count != 0)
{
foreach (ManagementObject product in Products)
{
if (product.Properties["Name"].Value.ToString() == ProductName)
{
rv = true;
}
}
}
return rv;
}
于 2010-05-24T08:40:03.430 に答える
2
アプリケーションがインストールされている場合、SolidWorks を起動する必要がありますか? その場合、すべてのスタンドアロン (非アドイン) SolidWorks ツールを次のように起動します。
Public swApp As SldWorks.SldWorks
Function GetSolidWorks(ForceLaunch As Boolean) As Boolean
If Not swApp Is Nothing Then
SetSolidWorksVisibility()
Return True
Else
Try
swApp = GetObject(, "SldWorks.Application")
If swApp Is Nothing Then Return False
SetSolidWorksVisibility()
Return True
Catch ex As Exception
If Not ForceLaunch Then Return False
swApp = CreateObject("SldWorks.Application")
If swApp Is Nothing Then Return False
SetSolidWorksVisibility()
'simple timer to wait for solidworks to repond
System.Threading.Thread.Sleep(5000)
Return True
End Try
End If
End Function
Private Sub SetSolidWorksVisibility()
If Not swApp.Visible Then swApp.Visible = True
If Not swApp.FrameState = SwConst.swWindowState_e.swWindowMaximized Then swApp.FrameState = SwConst.swWindowState_e.swWindowMaximized
End Sub
于 2015-07-31T15:08:58.193 に答える