lcMap = '{drive}:\{path}\' && x:\foxv\myApp\ lcUNC = '\\{Server}\{Share}\{Path}\' && \\myServer\myShare\foxv\myApp\ if not Inlist(Nvl(Lower(getParentProgram()), ''), lcMap + 'launcher.exe', lcUNC + 'launcher.exe') && I want to be sure this is my launcher exe and not a copy in a different folder Messagebox('This program cannot run independently' + Chr(13) + 'You must use the Local Launcher application, contact IT for directions', 64, 'Direct access disabled!') return .f. endifwhere getParentProgram is
local loLocator, loWMI, loProcesses, loProcess, lnProgID, loParentProcesses, loParentProcess, lcParent declare integer GetCurrentProcessId in WIN32API lcParent = null lnProgID = GetCurrentProcessId() loLocator = CREATEOBJECT('WBEMScripting.SWBEMLocator') loWMI = loLocator.ConnectServer() loProcesses = loWMI.ExecQuery([SELECT * FROM Win32_Process WHERE ProcessId = ] + Transform(lnProgID)) For each loProcess in loProcesses loParentProcesses = loWMI.ExecQuery([SELECT * FROM Win32_Process WHERE ProcessId = ] + Transform(loProcess.ParentProcessID)) for each loParentProcess in loParentProcesses lcParent = loParentProcess.ExecutablePath endfor endfor return lcParent