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

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