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

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