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

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