Tech Articles


How to get the application path


This example shows how to get the application path for development and deployment environments. This is compatible with PB 12.6.

I recommend to use a NVO to develop this functionality.

1. First declare the Local External Functions:

FUNCTION int GetModuleFileNameW(&
           ulong hinstModule, &
           REF string lpszPath, &
           ulong cchPath) LIBRARY "KERNEL32.DLL"

FUNCTION ulong GetCurrentDirectoryW (&
  ulong textlen, &
  REF string dirtext) LIBRARY "KERNEL32.DLL"

 

2. And then create the function of_getapplicationpath():

ULong  lul_rc, lul_size
LONG  ll_last, ll_i, ll_handle
STRING ls_ApplicationPath = Space (255)
STRING ls_separator = "\"

//Get the handle of the application
ll_handle = Handle (GetApplication ())

//When handle is 0, it is in Development Environment.
IF ll_handle = 0 THEN
 lul_rc = GetCurrentDirectoryW(255, ls_ApplicationPath)
 Return ls_ApplicationPath
END IF

//When it is in Deployment Environment
GetModuleFileNameW(ll_Handle, ls_ApplicationPath, 254)

ll_i = 0
Do
 ll_last = ll_i
 ll_i = Pos (ls_ApplicationPath, ls_separator, ll_i + 1)
Loop Until ll_i = 0

Return Left (ls_ApplicationPath, ll_last - 1)

 

I hope it helps.

Comments (0)
There are no comments posted here yet

Find Articles by Tag

Platform Application .NET Assembly .NET Std Framework Data Installation RibbonBar Graph TortoiseGit Export JSON .NET DataStore PFC Migration Encoding Linux OS SnapObjects Oracle OLE C# Configuration Import JSON Menu PostgreSQL ODBC driver Syntax 32-bit Testing Validation XML JSON Resize Filter Messagging Branch & Merge Database Connection InfoMaker Expression Android Performance Text SqlExecutor CrypterObject Database Table PostgreSQL Interface PowerBuilder Compiler COM Event Icon Bug SnapDevelop Encryption DataWindow JSON License Database Table Schema Database Profile Database Table Data Charts Jenkins Stored Procedure PBDOM UI Event Handling DataType BLOB Database Elevate Conference HTTPClient ODBC Open Source 64-bit Azure OrcaScript UI Modernization ActiveX Sort SQL PDFlib Model DataWindow Design Database Object OAuth API Import PowerServer Web iOS Outlook Error DLL RESTClient Database Painter Windows OS SqlModelMapper Transaction External Functions TFS PowerScript (PS) DragDrop Variable PowerBuilder (Appeon) PowerServer Mobile DevOps TLS/SSL SQL Server Class REST RibbonBar Builder IDE JSONParser Debug NativePDF Repository Authorization CI/CD CoderObject SVN Mobile GhostScript Debugging Excel Git MessageBox Debugger Web Service Proxy Window Automated Testing UI Themes SOAP Array SDK Source Control Deployment Event Handler Windows 10 Icons PDF TreeView Trial WebBrowser JSONGenerator Script Export OAuth 2.0 File PowerBuilder Web API Source Code WinAPI Authentication Service RichTextEdit Control