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

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