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

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