Простой и общий способ -
julia> as_ints(a::AbstractArray{CartesianIndex{L}}) where L = reshape(reinterpret(Int, a), (L, size(a)...))
as_ints (generic function with 1 method)
julia> as_ints(indx)
2×9 reshape(reinterpret(Int64, ::Array{CartesianIndex{2},1}), 2, 9) with eltype Int64:
1 3 4 1 2 4 1 1 4
2 2 2 3 3 3 4 5 5
. Это работает для любой размерности, делая первое измерение индексом в CartesianIndex.
SystemEvents. SessionEnding похож на хорошую начальную точку для Вас. Та статья говорит о последовательности события, включенной, когда выход из системы/завершение работы происходит.
Обработайте событие SessionEnded на Microsoft. Win32. Тип SystemEvents.
В целом Вы захотите обработать WM_QUERYENDSESSION
Сообщение Windows. Это даст Вашему приложению шанс сделать очистку или заблокировать завершение работы, если это будет действительно необходимо.