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

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