Surely your computer has a low battery warning? So quit the reader, and it will save the last read position.
The concept of trying to save a last read position in a way that is robust against "crashing" as you put it, is meaningless. To do that you would need to be saving the last read position continuously every spare cycle your CPU has on the off chance that your computer will "crash" on the next CPU cycle. The best you can do is save it continuously at some fixed time interval. And no last read position is not available anywhere outside the viewer instance you are reading in.
|