Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Initiate Adobe Acrobat Programatically
Message
 
 
À
17/12/2005 00:20:25
Mike Smith
Doncaster Office Services
Oakville, Ontario, Canada
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Versions des environnements
Visual FoxPro:
VFP 8 SP1
Divers
Thread ID:
01078907
Message ID:
01078909
Vues:
39
This message has been marked as the solution to the initial question of the thread.
Mike,

You can use combination of FindExecutable and ShellExecute WIndows API
* Hides the window and activates another window.
#DEFINE SW_HIDE             0

* Activates and displays a window. If the window is minimized or maximized, 
* Windows restores it to its original size and position. An application  
* should specify this flag when displaying the window for the first time.
#DEFINE SW_SHOWNORMAL       1
#DEFINE SW_NORMAL           1

* Activates the window and displays it as a minimized window.
#DEFINE SW_SHOWMINIMIZED    2

* Activates the window and displays it as a maximized window.
#DEFINE SW_SHOWMAXIMIZED    3
* Maximizes the specified window.
#DEFINE SW_MAXIMIZE         3

* Displays a window in its most recent size and position. The active window remains active.
#DEFINE SW_SHOWNOACTIVATE   4

* Activates the window and displays it in its current size and position.
#DEFINE SW_SHOW             5

* Minimizes the specified window and activates the next top-level window in the z-order.
#DEFINE SW_MINIMIZE         6

* Displays the window as a minimized window. The active window remains active.
#DEFINE SW_SHOWMINNOACTIVE  7

* Displays the window in its current state. The active window remains active.
#DEFINE SW_SHOWNA           8

* Activates and displays the window. If the window is minimized or maximized, 
* Windows restores it to its original size and position. An application 
* should specify this flag when restoring a minimized window.
#DEFINE SW_RESTORE          9

* Sets the show state based on the SW_ flag specified in the STARTUPINFO structure 
* passed to the CreateProcess function by the program that started the application. 
* An application should call ShowWindow with this flag to set the initial show state 
* of its main window.
#DEFINE SW_SHOWDEFAULT      10

* No comment in ShellExecute documentation
#DEFINE SW_FORCEMINIMIZE    11
#DEFINE SW_MAX              11

DECLARE INTEGER FindExecutable IN Shell32;
  STRING lpFile, STRING lpDirectory, STRING @lpResult
DECLARE INTEGER ShellExecute IN shell32.dll ;
	INTEGER hndWin, ;
	STRING cAction, ;
	STRING cFileName, ;
	STRING cParams, ;
	STRING cDir, ;
	INTEGER nShowWin

lcFileExt = ".pdf" 
lcTempFile = ADDBS(SYS(2023)) + SYS(2015) + lcFileExt 
STRTOFILE("*", lcTempFile )
lcBuffer = SPACE(200)
lnResult = FindExecutable(lcTempFile, "", @lcBuffer)
IF lnResult > 32 
  lcExeName =  LEFT(lcBuffer, AT(CHR(0), lcBuffer)-1)
ELSE
  * No program associated with this extension
  lcExeName = ""
ENDIF  
*? lcExeName  
ERASE (lcTempFile)

ShellExecute(0, "", lcExeName  , "", "", SW_HIDE)
>I have an application where a user can scroll through a product file with a feature for pressing a button to view a .pdf file for more details. The viewing of the .pdf file is done through Thisform.Webbrowser.Navigate( "filename").
>
>The problem I am having is that each press of the button forces Adobe Acrobat to initiate and this causes a delay. I have found that if I initiate Acrobat from the Launch Icon and minimize it, then the product .pdf displays are almost instant.
>
>So I am trying to find a way of launching Adobe Acrobat programaticaly so it will be alive throughout the product viewing cycle.
>
>I have tried GETOBJECT() and cannot get any of the examples from the Help File to work.
>
>If anyone has found a way to do this, I would be pleased to hear from you.
>
>Mike Smith
--sb--
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform