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

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