nieoczekiwane zamknięcie
Kilka punktów:
Niezawodność
Jeśli wymagana jest 100% niezawodność, nie jest to możliwe. To „warunek wyścigu”. Obecnie nie ma możliwości atomowego otwarcia okna przy jednoczesnym zsynchronizowaniu jego istnienia z systemem plików. Wyobraź sobie tę sekwencję wydarzeń w porządku chronologicznym od wcześniejszego do późniejszego:
- Otwierasz aplikację lub aplikacja otwiera nowe okno.
- Windows API dostarcza powiadomienie do „programu monitorującego”, informując go o istnieniu okna.
- Zasilanie zostaje odcięte, zanim „program monitorujący” jest w stanie zapisać fakt, że jest okno na „trwałe przechowywanie”; to znaczy dysk twardy.
Znajomość aplikacji
W ogólnym przypadku żaden program innej firmy nie może poznać przyczyny, dla której program otworzył dane okno. Na poziomie programowania program może zdecydować o otwarciu nowego okna z dowolnego powodu lub bez powodu. Biorąc pod uwagę ten fakt, program innej firmy nie może wiedzieć, jakie kroki są konieczne, aby program otwierający okna otwierał nowe okna.
W przypadku konkretnych aplikacji można to zrobić. Na przykład w przypadku programu Microsoft Word istnieją sposoby czytania tytułów okien i wnioskowania o nazwach otwartych dokumentów, a nawet instalowania dodatku do programu Word, który monitoruje otwarte okna i śledzi otwarte dokumenty, a następnie otwiera je ponownie przy ponownym uruchomieniu.
Jednak, szukając takiego rozwiązania, musisz upewnić się, że „program monitorowania” jest w stanie zrozumieć strategię okienkową każdej aplikacji, którą chcesz automatycznie ponownie otworzyć, a także zrozumieć proces proszenia tej aplikacji o ponowne - otwórz wszystkie te okna.
Jednym z „naiwnych” sposobów podejścia jest śledzenie wszystkich działających programów, które utworzyły jedno lub więcej okien, a następnie „głupio” uruchamianie tych plików wykonywalnych po ponownym uruchomieniu komputera. Pisanie takiego programu byłoby dość proste, i jestem pewien, że istnieje wiele takich programów. Minusem jest to, że prawdopodobnie nie jest to tak przydatne - jak przydatne byłoby, gdyby był notepad.exeuruchamiany podczas uruchamiania systemu Windows bez otwartego dokumentu? Jest to w zasadzie zakres tego, co można zrobić w „przypadku ogólnym”.
Integralność danych
Jeśli jesteś w trakcie edycji dokumentu w Notatniku, programie Word lub innym programie do edycji, a komputer nagle się wyłącza, nie ma niezawodnego sposobu na zachowanie wszystkich danych. Jeśli szukasz rozwiązania programowego, miej nadzieję. Lepiej jest kupić bezprzerwowe źródło zasilania (UPS), które jest zasadniczo dużą baterią podłączoną do komputera, która zapobiega utracie zasilania przez komputer w przypadku awarii prądu lub chwilowych awarii. Zazwyczaj zasilacz UPS może utrzymywać komputer na tyle długo, aby można było zapisać pracę i zamknąć.
Zasadniczo istnieje jeden sposób, aby uzyskać lepszą integralność danych, ale jest to szczegół implementacji edytora tekstu / dokumentu: jeśli edytor zapisuje zmiany na dysku za każdym razem, gdy wpisujesz znak lub wprowadzasz zmiany, to najbardziej dane, które możesz utracić, to jeden znak (wpisałeś go i nie mógł dostać się na dysk, zanim stracisz moc). Jednak sposób, w jaki działa obecnie większość edytorów, może spowodować utratę kilku minut danych (w przypadku AutoSave) lub wszystkich danych (w przypadku edytorów bez AutoSave).
Nie udzielam rekomendacji oprogramowania;)
Coś, co „po prostu śledzi, które pliki masz otwarte w Notatniku” jest wykonalne, ale prawdopodobnie jeszcze łatwiej jest użyć prawdziwego edytora tekstu, który zapamiętuje, które pliki masz otwarte bez wtyczek innych firm, takie jak Notepad ++.