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