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