* a delay is needed because there are no events exposed by Hummingbird. * So, I use the sleep api call and invoke it for N seconds (based on testing.) Declare Sleep IN Win32API; INTEGER dwMilliseconds Set classlib to C:\gqlfox\sendkeyz additive mykeys=create('skeys.skeyz') mykeys.Sendmykeyz('CO','%c',1) Sleep(30*1000) If file('c:\models\injail.qrd') Erase 'c:\models\injail.qrd' Endif ogql=create('biquery.user.application') ogql.Open("C:\MODELS\AG000001.GQU") ogql.visible=.t. datamodelqry = ogql.DataModel If type('datamodelqry')='U' Messagebox ('Loading Data Model Failed') Return Endif *suspend Sleep(60*1000) _Screen.windowstate=1 mykeys.Sendmykeyz('BI','%q L',1) Sleep(2*1000) mykeys.Sendmykeyz('BI','INJAIL',1) Sleep(4*1000) mykeys.Sendmykeyz('BI','%L%qF',1) Sleep(30*1000) mykeys.Sendmykeyz('BI','INJAIL',1) Sleep(5*1000) mykeys.Sendmykeyz('BI','%s',1) Sleep(400*1000) Application.visible=.f. Start=datetime() * close BI Wait clear *mykeys.Sendmykeyz('BI','%fx',1) ogql.quit