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

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