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

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