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

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