J. Baker wrote:I thought it did at first but after testing, it was a no go.

Is it because you don't have admin privileges? Most examples use sudo to get admin privileges,
so it may only work in admin mode.
With NSProcessInfo:
Code: Select all
;
; NSActivityOptions is a 64bit typedef - use it with quads (.q) !!!
;
#NSActivityIdleDisplaySleepDisabled = 1 << 40
#NSActivityIdleSystemSleepDisabled = 1 << 20
#NSActivitySuddenTerminationDisabled = (1 << 14)
#NSActivityAutomaticTerminationDisabled = (1 << 15)
#NSActivityUserInitiated = ($00FFFFFF | #NSActivityIdleSystemSleepDisabled)
#NSActivityUserInitiatedAllowingIdleSystemSleep = (#NSActivityUserInitiated & ~#NSActivityIdleSystemSleepDisabled)
#NSActivityBackground = $000000FF
#NSActivityLatencyCritical = $FF00000000
Procedure BeginWork(option.q,debugReason.s="Starting Activity")
Protected NSProcessInfo = CocoaMessage(0,0,"NSProcessInfo processInfo")
If NSProcessInfo
ProcedureReturn CocoaMessage(0,NSProcessInfo,"beginActivityWithOptions:@",@option,"reason:$",@debugReason)
EndIf
EndProcedure
Procedure EndWork(activity)
Protected NSProcessInfo = CocoaMessage(0,0,"NSProcessInfo processInfo")
If NSProcessInfo
CocoaMessage(0,NSProcessInfo,"endActivity:",activity)
EndIf
EndProcedure
work = BeginWork(#NSActivityUserInitiated)
If work
Debug work
; do work
EndWork(work)
EndIf
If your 'Joi' app is a background process, maybe #NSActivityBackground is enough. On the other side,
it is a user initiated activity to translate joystick co-ordinates to keys. Don't know if they check this when updating
your program in AppStore.