Back in May, I asked a question about running multiple instances of VFP. I
know now it was kind of a dumb question, but the response from everyone in
the group inspired me to work up a small program to do exactly what I needed
done when setting up a new project. Since you all were part of my solution I
thought I'd share. Granted, this is slapped together and there are probably
a thousand different ways to make this better, so be gentle! J
The premise is to have a fast way to create a shortcut to a project as well
as create a .FPW file at the same time. So I wrote this program, compiled it
and added a short cut to my desktop so I can run it after a new project file
is created in whatever project folder I want to use. It's designed to work
on both 32 and 64 bit Windows and you can put anything you want between the
Text..Endtext lines and it will be added to the .FPW file. The .FPW and .LNK
files have the same name to keep it simple. Once a project is completed and
I move it to my archive folders, I can re-run the program and choose the
project file in the new storage folder and the shortcut and the .FPW are
re-created to update the paths.
I've been using this for a couple of weeks now and it works great for VFP9
and I THINK it will work with VFP6, but I haven't tried it yet. I chose to
comment out the lines that reference the icon selection because the default
was fine, but I left them in for future reference. The WScript.Shell code to
actually create the shortcut I found in the Microsoft knowledgebase and I
just updated the variable names.
*!********************************************************************
LOCAL lcArguments, lcConfigFPW, lcFPWFile, lcProjectFile, lcProjectPath,
lcShortCutPath
LOCAL lcTargetPath, lcWorkingDir, loMyShortCut
lcProjectFile = GETFILE('PJX', '', 'Select', 0, 'Select project file...')
lcProjectPath = JUSTPATH(lcProjectFile)
IF !EMPTY(lcProjectFile)
TEXT TO lcConfigFPW TEXTMERGE NOSHOW
SCREEN = OFF
PATH = .\DATA; .\FORMS; .\GRAPHICS; .\LIBS; .\MENUS; .\PROGRAMS;
.\REPORTS
DEFAULT = "<<lcProjectPath>>"
COMMAND = MODIFY PROJECT "<<lcProjectFile>>"
TMPFILES=c:\temp
EDITWORK=c:\temp
SORTWORK=c:\temp
PROGWORK=c:\temp
ENDTEXT
DO CASE
CASE DIRECTORY("C:\Program Files (x86)", 1) = .T. && Is 64-Bit
Operating System
lcFPWFile = ADDBS(ALLTRIM(lcProjectPath)) +
'start-vfp9x64.fpw'
lcShortCutPath = ADDBS(ALLTRIM(lcProjectPath)) +
'start-vfp9x64.lnk'
lcTargetPath = "C:\Program Files (x86)\Microsoft Visual
FoxPro 9\vfp9.exe"
* lcIconLocation = "C:\Program Files (x86)\Microsoft Visual
FoxPro 9\vfp9.exe"
lcArguments = '-C' + '"' + lcFPWFile + '"'
lcWorkingDir = "C:\Program Files (x86)\Microsoft Visual
FoxPro 9"
CASE DIRECTORY("C:\Program Files (x86)", 1) = .F. && Is 32-Bit
Operating System
lcFPWFile = ADDBS(ALLTRIM(lcProjectPath)) +
'start-vfp9x32.fpw'
lcShortCutPath = ADDBS(ALLTRIM(lcProjectPath)) +
'start-vfp9x32.lnk'
lcTargetPath = "C:\Program Files\Microsoft Visual FoxPro
9\vfp9.exe"
* lcIconLocation = "C:\Program Files\Microsoft Visual FoxPro
9\vfp9.exe"
lcArguments = '-C' + '"' + lcFPWFile + '"'
lcWorkingDir = "C:\Program Files\Microsoft Visual FoxPro
9"
ENDCASE
STRTOFILE(lcConfigFPW, lcFPWFile)
loWsh = CREATEOBJECT("WScript.Shell")
loMyShortCut = loWsh.CreateShortcut(lcShortCutPath)
loMyShortCut.WindowStyle = 7 && Minimized 0=Maximized 4=Normal
* loMyShortcut.IconLocation = home() + "wizards\graphics\builder.ico"
loMyShortCut.TargetPath = lcTargetPath
loMyShortCut.Arguments = lcArguments
loMyShortCut.WorkingDirectory = lcWorkingDir
loMyShortCut.SAVE
ENDIF
RETURN
*!********************************************************************
Paul H. Tarver
Tarver Program Consultants, Inc./Quality PC of Meridian
Email: <mailto:paul@tpcqpc.com> paul(a)tpcqpc.com
--- StripMime Report -- processed MIME parts ---
multipart/alternative
text/plain (text body -- kept)
text/html
---