You may need the fully qualified path to the PowerShell executable for it to work.
HTH, Tracy
-----Original Message----- From: ProfoxTech [mailto:profoxtech-bounces@leafe.com] On Behalf Of paul.newton.hudl@gmail.com Sent: Friday, January 07, 2022 5:43 PM To: profoxtech@leafe.com Subject: Problem trying to run a Powershell script as an Explorer shell command (Fox related)
Hi all
I have been toying on and off over several years with a method of opening VFP with a MODIFY command when double-clicking a file in Explorer. For example, double-clicking on a PJX in Explorer should open VFP with the command MODIFY PROJECT <Project> NOWAIT.
I am almost there, maybe. At the moment everything is in C:\Temp
ConFig.FPW contains
Command = C:\Temp\FoxOpen.PRG
*FoxOpen.PRG is constructed on-the fly by a PowerShell script TEST.PS1 as follows:
TEST.PS1
Param([string]$a)
$file=Get-Item "$a"
$Extension = $file.Extension.ToUpper()
$Command = ""
switch ($Extension)
{
.PJX
{
$Command = "Modify Project '"+ $a + "' NOWAIT"
}
# Other cases follow
}
Set-Content -Path C:\Temp\FoxOpen.PRG -Value $Command
& "C:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe" -CC:\Temp\Config.FPW
I have tested this in a PowerShell console like this
PS C:\Temp> C:\Temp\Test.PS1 <PJXPath> where <PJXPath> is a fully qualified path to a PJX, enclosed in single quotes
I have also tested in a COMMAND window like this
C:\Temp> PowerShell C:\Temp\Test.PS1 <PJXPath> again where <PJXPath> is a fully qualified path to a PJX, enclosed in single quotes
So far, so good. Now for how to implement the shell command. My registry settings are as follows:
Computer\HKEY_CLASSES_ROOT
PJXFile (Default) REG-SZ Project (FoxPro)
Shell (Default) REG_SZ (value not set)
Modify project (Default) REG_SZ (value not set)
Command (Default) REG_SZ "POWERSHELL C:\Temp\Test1.PS1" "%1"
However, double-clicking on a PJX results in:
Windows cannot access the specified device, path or file. You may not have the appropriate permissions to access the item.
It seems as if I am nearly there, so any suggestions will be very gratefully received. Many thanks
Paul Newton
P.S. My first attempt at doing anything useful with PowerShell
--- StripMime Report -- processed MIME parts --- multipart/alternative text/plain (text body -- kept) text/html ---
[excessive quoting removed by server]