Can Events be Inter-Process? Can Events be Inter-Process? windows windows

Can Events be Inter-Process?


You need to create a named event and open it in both processes. If you have multiple processes listening, you may consider using a semaphore.


Yes this works:

  #COMPILE EXE "NamedEvent.exe"  #INCLUDE "win32api.inc"   %EVENT_ALL_ACCESS = &h0001F0003  FUNCTION PBMAIN() AS LONG      LOCAL lRet AS LONG, lError AS LONG, lEventName AS ASCIIZ * %MAX_PATH    lEventName = "TestEvent"    lRet   = CreateEvent (BYVAL %NULL, %False, %False, lEventName)    lError = GetLastError ()    IF ISFALSE lRet THEN      MSGBOX "Unable to create Event, error:" + STR$(lError),,"CreateEvent error"    ELSE      IF lError = %ERROR_ALREADY_EXISTS THEN        lRet = OpenEvent(BYVAL %EVENT_ALL_ACCESS, %False, lEventName)        lError = GetLastError()        IF lRet THEN          MSGBOX "Opened existing Event, handle:" + STR$(lRet),,"OpenEvent:"        ELSE          MSGBOX "Unable to open Event, error:" + STR$(lError),,"OpenEvent error" : EXIT FUNCTION        END IF      ELSE        MSGBOX "Created new Event, handle:" + STR$(lRet),,"CreateEvent:"      END IF    END IF      END FUNCTION

In general, what has a lower overhead:

Pipes (assuming small size specified)

MemMapFiles

Events