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

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