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

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