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@tpcqpc.com
--- StripMime Report -- processed MIME parts --- multipart/alternative text/plain (text body -- kept) text/html ---