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

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