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

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