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

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