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

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