I have only the reader, and it would seem to me that this registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader
should exist on computers with the reader installed. You should probably use the key that the full version uses, though, just in case they are both installed.
The time you enjoy wasting is not wasted time. Bertrand Russell
Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
That will not work for determining if the workstation has Acrobat
Approval installed. Approval is a limited version of the full version
Acrobat. They both use the same name for their executables.
So, with this method you cannot determine if the user has
Acrobat Approval or Acrobat full version.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum.
Originally posted by RobDog888 That will not work for determining if the workstation has Acrobat
Approval installed. Approval is a limited version of the full version
Acrobat. They both use the same name for their executables.
So, with this method you cannot determine if the user has
Acrobat Approval or Acrobat full version.
True. However, besidesn the 30 days, whats the diff between Approval and regular Acrobat?
The difference between Approval and Reader is that you can save
forms in pdf format. The difference between Approval and Full
Acrobat is Approval does not have the JavaScript console and
some other features. I can't do it justice so look here.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum.
You will probably have to check the registry still. That code
posted above can not distinguish between Full and Approval
since the default install path is the same.
"Program Files\Adobe\Acrobat 5.0\Acrobat\Acrobat.exe" for either one.
Let me check the registry and see if there is a difference.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum.
It looks like the only way is to enumerate the registry sub keys
under the Adobe key - [HKEY_LOCAL_MACHINE\SOFTWARE\Adobe
If Distiller found then = full version and if Approval also found
then Approval was overwritten by full version.
If Approval is found and no Distiller found then only Approval.
If Reader is found then Reader version in addition to either case above.
Also, there is another version that Adobe calls "Business Tools".
I don't know what it is but may need to allow for this fourth case.
HTH.
Last edited by RobDog888; Oct 23rd, 2003 at 01:28 PM.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum.
Here is a sample on enumerating the registry keys.
VB Code:
Const ERROR_NO_MORE_ITEMS = 259&
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_LOCAL_MACHINE = &H80000002
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Originally posted by RobDog888 If Distiller found then = full version and if Approval also found
then Approval was overwritten by full version.
If Approval is found and no Distiller found then only Approval.
If Reader is found then Reader version in addition to either case above.
Are you sure Approval is a seperate from Full Acrobat?
It seems to be only a patch, and if so, does it matter if you have approval patched into Acrobat?
It surely doesn't destroy the existing functionality of the parent program, does it?
I mean, Acrobat.exe is still the full Acrobat, wether it has this patch or not?
If its not a patch, then why does the install screens title say "Patch".
Approval has a check in it to determine if Full Acrobat is installed
or not. If it is then Approval aborts the installation, since Adobe
thinks that you would not want to downgrade your Acrobat.
They both install to the same path and exe name.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum.
I tried your sample on enumerating the registry keys but I can't understand how I can do a function as Boolean of it.
If it's true, then full acrobat is installed. Can you show me that?
You will need to loop through the array of sub keys (from GetAllKeys function) to determine if the Distiller key is present or not.
Then you can use the second function to get the value if you need it.
Last edited by RobDog888; Oct 27th, 2003 at 05:08 PM.
VB/Office Guru™ (AKA: Gangsta Yoda™ ®)
I dont answer coding questions via PM. Please post a thread in the appropriate forum.