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

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