! /N c:\refox_8\refox.exe loWaitWindow = CREATEOBJECT("WaitForm","Refox") loWaitWindow.SHOW(1) DEFINE CLASS WaitForm AS FORM ALWAYSONTOP = .T. cProcessName = "" PROCEDURE INIT LPARAMETERS tcProcessName THIS.cProcessname = UPPER(tcProcessname) DECLARE INTEGER GetActiveWindow IN Win32API DECLARE INTEGER GetWindow IN Win32API; INTEGER hwnd, INTEGER dflag DECLARE INTEGER GetWindowText IN Win32API ; INTEGER hwnd, STRING @lptstr, INTEGER cbmax ENDPROC ADD OBJECT tmr AS Timer WITH ; ENABLED = .T., ; INTERVAL = 1000 PROCEDURE tmr.Timer THISFORM.WaitForProcess() ENDPROC PROCEDURE WaitForProcess * lnhWnd = GetActiveWindow() lctitle_bar = SPACE(200) + CHR(0) lntext_len = GetWindowText(lnhwnd, @lctitle_bar, 200) * *-- UPPER(LEFT(lctitle_bar, lntext_len)) is always empty! IF THIS.cProcessname $ UPPER(LEFT(lctitle_bar, lntext_len)) *-- still running. ELSe THIS.Tmr.Interval = 0 THIS.Release() ENDIF ENDPROC ENDDEFINEI can't figure out why this fails, any ideas?