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

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