Sign in to follow this  
Followers 0
Tyraenor

Problem Running Adobe Reader

4 posts in this topic

Hey ppl,

I have a weird problem with running an external app (Adobe Reader).

I search with the "dir" command (dir /b /s /a) for the Adobe Reader and want to use the path to run the application.

See my code for details...

...

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
            
        Case $sourceBtn
            If GUICtrlRead($srcFileTypePDF) = $GUI_CHECKED Then
                $_theFile = FileOpenDialog("Please select the source file", @ScriptDir, "PDF files (*.pdf)")
                $AdobePath = isAdobe()
                If $AdobePath <> False Then; Check if Adobe Reader is installed
                    Run($AdobePath, @SystemDir) <---- This does _NOT_ work ($AdobePath contains: C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe)
                    Run("C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe", @SystemDir) <---- This works fine
                Else
                    MsgBox(48, "Error", "Adobe Reader cannot be found!")
                EndIf
            ElseIf GUICtrlRead($srcFileTypeTxt) = $GUI_CHECKED Then
                $_theFile = FileOpenDialog("Please select the source file", @ScriptDir, "Textfiles (*.txt)")
            EndIf
            
        Case $srcFileTypePDF; If the user clicks on "Source is orig. PDF", inform him that Adobe Reader is required
            If GUICtrlRead($srcFileTypePDF) = $GUI_CHECKED Then MsgBox(64, "Info", "Note: To use the original PDF as source, Adobe Reader has to be installed on your system!")

    EndSwitch
WEnd

Func isAdobe()
    RunWait(@ComSpec & " /c dir /b /s /a AcroRd32.exe > " & @TempDir & "\_tmpFindAcroRd.txt", @ProgramFilesDir & "\Adobe", @SW_HIDE)
    If StringInStr(FileRead(@TempDir & "\_tmpFindAcroRd.txt"), "AcroRd32.exe") Then 
        Return FileRead(@TempDir & "\_tmpFindAcroRd.txt")
    Else 
        Return False
    EndIf
    FileDelete(@TempDir & "\_tmpFindAcroRd.txt")
EndFunc

So when I use the Run command to execute the program, nothing happens. Not even an error message!!

I have no idea anymore... Maybe I am too blind to see the error. muttley

I hope someone here can help me!

Cheers

Ty

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Hey ppl,

I have a weird problem with running an external app (Adobe Reader).

I search with the "dir" command (dir /b /s /a) for the Adobe Reader and want to use the path to run the application.

See my code for details...

CODE
...

While 1

$nMsg = GUIGetMsg()

Switch $nMsg

Case $GUI_EVENT_CLOSE

Exit

Case $sourceBtn

If GUICtrlRead($srcFileTypePDF) = $GUI_CHECKED Then

$_theFile = FileOpenDialog("Please select the source file", @ScriptDir, "PDF files (*.pdf)")

$AdobePath = isAdobe()

If $AdobePath <> False Then; Check if Adobe Reader is installed

Run($AdobePath, @SystemDir) <---- This does _NOT_ work ($AdobePath contains: C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe)

Run("C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe", @SystemDir) <---- This works fine

Else

MsgBox(48, "Error", "Adobe Reader cannot be found!")

EndIf

ElseIf GUICtrlRead($srcFileTypeTxt) = $GUI_CHECKED Then

$_theFile = FileOpenDialog("Please select the source file", @ScriptDir, "Textfiles (*.txt)")

EndIf

Case $srcFileTypePDF; If the user clicks on "Source is orig. PDF", inform him that Adobe Reader is required

If GUICtrlRead($srcFileTypePDF) = $GUI_CHECKED Then MsgBox(64, "Info", "Note: To use the original PDF as source, Adobe Reader has to be installed on your system!")

EndSwitch

WEnd

Func isAdobe()

RunWait(@ComSpec & " /c dir /b /s /a AcroRd32.exe > " & @TempDir & "\_tmpFindAcroRd.txt", @ProgramFilesDir & "\Adobe", @SW_HIDE)

If StringInStr(FileRead(@TempDir & "\_tmpFindAcroRd.txt"), "AcroRd32.exe") Then

Return FileRead(@TempDir & "\_tmpFindAcroRd.txt")

Else

Return False

EndIf

FileDelete(@TempDir & "\_tmpFindAcroRd.txt")

EndFunc

So when I use the Run command to execute the program, nothing happens. Not even an error message!!

I have no idea anymore... Maybe I am too blind to see the error. muttley

I hope someone here can help me!

Cheers

Ty

Just for reference, with Adobe Reader 8.x, you can do a RegRead() for the default value of the key:

HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader\8.0\InstallPath

That will give you the root directory for "AcroRd32.exe"

Edited by Monamo

- MoChr(77)& Chr(97)& Chr(100)& Chr(101)& Chr(32)& Chr(121)& Chr(97)& Chr(32)& Chr(108)& Chr(111)& Chr(111)& Chr(107)-------I've told you 100,000 times not to exaggerate!-------Don't make me hit you with my cigarette hand...-------My scripts:Random Episode Selector, Keyboard MouseMover, CopyPath v2.1, SmartRename for XP,Window Tracer[sup]New![/sup]

Share this post


Link to post
Share on other sites

Wouldn't this make more sense to get the path to the Reader EXE?

$result = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe", "")
MsgBox(0,"Adobe Reader Path", $result)

Share this post


Link to post
Share on other sites

Wouldn't this make more sense to get the path to the Reader EXE?

$result = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\AcroRd32.exe", "")
MsgBox(0,"Adobe Reader Path", $result)
Thanks!! That worked fine...

Sometimes it is too bad... :( The easiest way and I tried it the difficult way... :)

@Monamo:

That would not work because of the version number... muttley

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0