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

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