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

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