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

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