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

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