Hejsan! Du kan ju kanske köra en shellexecute och sedan fånga ett eventuellt felmeddelande? Se i tips & tricks på shellExecute och se om det kan användas. eftersom de flesta program lägger in lite info i registret (regedit) så kan du såklart kolla där... Använd Windows-API:et FindExecutable, t ex så här: Du kan ju kika under:Program Installerat?
Är det kanske någon som vet ett enkelt sätt att kontrollera om ett visst program är installerat, vilket program som helst alltså (ICQ, AcrobatReader you name it), inte bara komponenter i Windows?
Det finns ju några olika sätt som man kommer att tänka på, kolla i registret till exempel, men är det nån som har gjort det innan kanske ni har hittat nån snitsig lösning.
Tack på förhand!
/EggetSv: Program Installerat?
Sv: Program Installerat?
Sv: Program Installerat?
Private Declare Function FindExecutable Lib "shell32.dll" _
Alias "FindExecutableA" _
(ByVal lpFile As String, _
ByVal lpDirectory As String, _
ByVal sResult As String) As Long
Const MAX_PATH = 260
Följande funktion skapar en tom test-fil och försöker sedan öppna den med associerad applikation. Ange alltså DOC för att kolla om Word är installerat, PDF för Acrobat etc. Lycka till!
/Papageno
Private Function fGetWordPath(dwFlagReturned As Long) As String
Dim hFile As Long
Dim sResult As String
Dim sTempFolder As String
sTempFolder = GetTempDir()
hFile = FreeFile
Open sTempFolder & "dummy.doc" For Output As #hFile
Close #hFile
sResult = Space$(MAX_PATH)
dwFlagReturned = FindExecutable("dummy.doc", sTempFolder, sResult)
Kill sTempFolder & "dummy.doc"
fGetWordPath = TrimNull(sResult)
End FunctionSv: Program Installerat?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
Alla ordentliga program lägger in sig där.