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

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