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

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