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

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