У меня есть приложение С#, которое работает как в 32-разрядной, так и в 64-разрядной ОС. Как я могу программно проверить, установлен ли SolidWorks на компьютере или нет, в моем приложении. Если мы можем проверить это, прочитав раздел реестра, укажите мне путь как для 32-битной, так и для 64-битной версии. Подскажите, есть ли другие способы проверить это.
Проверить, установлен ли Solidworks?
Ответы (3)
Вы можете использовать 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;
}
person
Charles Gargent
schedule
24.05.2010
Я бы использовал операторы «using» вокруг ManagementObjectSearcher и ManagementObjectCollection, чтобы убедиться, что они правильно удалены.
- person SwDevMan81; 24.05.2010
Вы можете разорвать цикл
foreach
при создании продукта, заменив rv = true
на return true
(объявление rv
становится ненужным)
- person alex; 27.02.2016
Нужно ли приложению запускать 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
person
Jeremy
schedule
31.07.2015
Это для новичков....
Я думаю, что есть много способов проверить, установлен ли Solidworks или нет, но, по моему мнению, когда Solidworks установлен, он создает несколько папок в реестре.
Просто выполните следующие действия, чтобы проверить...
Откройте выполнить
Введите regedit и нажмите Ввод
Разрешите «Управление доступом пользователей», нажав Да< /b>
Перейдите в раздел HKEY_LOCAL_MACHINE -> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Теперь проверьте, доступна ли запись в папке Solidwork
или нет
Если папка найдена, SolidWorks установлен, иначе нет..!
надеюсь, это поможет!
person
Yogesh Gat
schedule
09.03.2016