C# / Windows Forms / .NET Framework 4.8, Windows 10 i 11. Uruchom plik
Insomnia.exe z paczki ZIP. Menu ikony zasobnika i jej dwuklik otwierają
ustawienia. Nie potrzeba uruchamiania jako administrator.
Okno ustawień podzielone jest na czytelne karty:
- Autostart z Windows: opcja automatycznego startu programu w tle przy logowaniu użytkownika (rejestr
HKCU\Software\Microsoft\Windows\CurrentVersion\Run, bez potrzeby uprawnień administratora). - Harmonogram: godziny i dni tygodnia (Pn–Nd). Początek włącznie, koniec wyłącznie; zakres przez północ jest obsługiwany (przypisywany do zmiany z wybranego dnia), identyczne godziny oznaczają całą dobę.
- Reguły Wi-Fi: wybór zachowania programu:
- Wstrzymuj działanie, gdy wykryto sieć z listy (np. w biurze).
- Działaj tylko wtedy, gdy wykryto sieć z listy (np. tylko w domu).
- Zarządzanie listą SSID: Dodaj lub usuń sieci, a następnie kliknij „Zastosuj” lub „Zapisz i zamknij”. Wpisany tekst zatwierdza się przyciskiem Dodaj lub dodaje jednym kliknięciem z listy wykrytych sieci w zasięgu.
- Diagnostyka adapterów: podgląd aktualnie wykrytych sieci w zasięgu, status skanowania i bezpośredni skrót do ustawień uprawnień lokalizacji Windows.
-
Wybór działań symulacji: użytkownik decyduje, jakie impulsy generuje program (losowane z włączonych opcji co ok. 30 s po 25 s bezczynności):
- Mikro-ruchy myszą (płynny micro-jitter kursora o kilka pikseli)
- Niewidoczny klawisz F15 (kod wirtualny
0x7E, nie wpisuje znaków i nie koliduje z żadnymi skrótami w Windows, Office ani CAD) - Kółko myszy (dyskretny scroll w dół i w górę)
- Przełączanie okien Alt+Tab (domyślnie wyłączone; przydatne przy narzędziach monitorujących nazwy aktywnych okien)
-
Wspierane aplikacje i skuteczność:
- 🟢 Microsoft Teams (Desktop & Web) — resetuje licznik bezczynności aplikacji, co w typowych warunkach podtrzymuje zielony status „Dostępny” (Available).
- 🟢 Slack / Skype / Zoom / Webex — resetuje czas bezczynności sesji, redukując ryzyko automatycznego uśpienia statusu.
- 🟡 Blokada ekranu i wygaszacz Windows (GPO / Intune) — resetuje standardowy licznik bezczynności Windows (
GetLastInputInfo/ stan zasilania), co w standardowych konfiguracjach zapobiega wygaszaczowi lub uśpieniu. Nie gwarantuje jednak obejścia zaawansowanych polityk bezpieczeństwa (np. czujników obecności, dedykowanych agentów blokujących czy wymuszeń domenowych). - ⚪ Narzędzia ewidencji czasu (Time Doctor, Hubstaff, DeskTime itp.) — generuje syntetyczne impulsy klawisza i myszy. Skuteczność zależy od oprogramowania i polityk u pracodawcy — zaawansowane narzędzia monitorujące analizują aktywne okna, zrzuty ekranu, procesy czy regularność sygnałów, których sam ruch kursora nie zastąpi.
-
Transakcyjny zapis: Zastosuj zapisuje na dysku i aktualizuje działanie bez zamykania okna. Zapisz i zamknij zamyka dopiero po udanym zapisie. Anuluj odrzuca zmiany od ostatniego zapisu. Krzyżyk pyta o zapis/odrzucenie/powrót.
-
Spójność stanu: Przełączenie ręcznego stanu w zasobniku podczas edycji w oknie ustawień jest zawsze zachowywane.
- Wymuszenie czuwania (Wznów): pozwala tymczasowo uruchomić czuwanie wbrew regułom (np. poza harmonogramem lub na sieci biurowej) na określony czas:
- Na 1 godzinę / Na 2 godziny / Do końca dnia / Do odwołania (na stałe).
- Wstrzymanie działania: pozwala tymczasowo wyciszyć czuwanie na wybrany okres:
- Na 1 godzinę / Na 2 godziny / Do końca dnia / Do odwołania (na stałe).
- Przywróć działanie wg reguł: opcja pojawia się przy aktywnym wymuszeniu i pozwala jednym kliknięciem wrócić do reguł harmonogramu i Wi-Fi.
- Automatyczny powrót: po upływie wybranego czasu program samoczynnie wraca do oceny harmonogramu i Wi-Fi.
- Ukrycie ikony (Ghost Mode): opcja w Karcie 2 usuwa ikonę z paska zadań i zasobnika systemowego, zapewniając dyskrecję wizualną na pulpicie (np. podczas prezentacji, współdzielenia ekranu lub gdy ktoś patrzy na monitor). Uwaga: ukrycie dotyczy tylko interfejsu wizualnego — proces Insomnia.exe pozostaje widoczny w systemie (Menedżer zadań, narzędzia EDR/audytowe).
- Globalny skrót
Ctrl + Alt + I: pozwala w dowolnej chwili przywołać menu programu pod kursorem myszy lub otworzyć Ustawienia. - Bezpieczeństwo pojedynczej instancji: ponowne uruchomienie
Insomnia.exenie tworzy drugiego procesu — zamiast tego bezpiecznie przywołuje okno działającego programu na pierwszy plan.
Konfiguracja nadal używa Properties.Settings i standardowego pliku user.config w profilu użytkownika. Ścieżka jest zależna m.in. od położenia EXE i tożsamości aplikacji. Przeniesienie programu do innego katalogu może utworzyć oddzielną konfigurację — restart testuj z tego samego pliku EXE. Błąd odczytu nie powoduje cichego nadpisania uszkodzonego pliku.
Skan startuje przy uruchomieniu, co 45 sekund oraz na żądanie. Wszystkie adaptery są odpytywane przez Windows WLAN API. Powiadomienia ACM są przypisane do GUID adaptera; timeout wynosi 12 sekund. Native WLAN session żyje do zakończenia wszystkich operacji, także przy anulowaniu. Kolejne żądania współdzielą trwający skan.
Lista wykluczeń jest niezależna od wyników. Pomyślne wyniki każdego adaptera mają ważność 2 minuty. Błąd nie usuwa ani nie odświeża ich czasu ważności. Przy niepełnych/nieaktualnych danych wyświetlane jest ostrzeżenie. Po wygaśnięciu wyników status zależy od ręcznego przełącznika i harmonogramu. Przy braku sieci poprawnie zakończony skan zwraca pustą listę; błąd nigdy nie jest prezentowany jako poprawny pusty skan.
Windows może wymagać zgody na lokalizację. Przycisk otwiera tylko stronę ustawień; aplikacja nie zmienia uprawnień. Wyłączony WLAN AutoConfig, radio, polityki systemowe lub sterownik mogą uniemożliwiać skanowanie. Widoczność zależy od okresu skanowania i informacji sterownika — nie jest ciągłym pomiarem. Ukryte SSID nie zawsze dają się poznać bez profilu. SSID to maksymalnie 32 bajty; aplikacja obsługuje tekst UTF-8, w tym polskie znaki. Nieprawidłowe sekwencje UTF-8 są pomijane, aby nie porównywać błędnie zdekodowanych nazw.
Wymagane Visual Studio 2022 / Build Tools z MSBuild i targeting pack .NET Framework 4.8.
.\build.ps1 -Test
.\Tests\bin\x64\Insomnia.Tests.exe --hardware
.\Tests\bin\x64\Insomnia.Tests.exe --ui
.\package.ps1Build trafia do artifacts/Release. Testy używają oddzielnej tożsamości Insomnia.Tests.exe i własnego user.config, a podgląd --ui ma konfigurację wyłącznie w pamięci i nie symuluje aktywności. --hardware odczytuje prawdziwe adaptery bez przełączania połączeń lub ustawień. package.ps1 zawsze buduje nowy Release i tworzy artifacts/Insomnia-Fixed-Release.zip ze źródłami i binariami. Szczegółowe wyniki i ograniczenia: TEST-REPORT.md.
Projekt jest dostępny na zasadach otwartego oprogramowania na warunkach licencji MIT. Szczegóły znajdują się w dołączonym pliku LICENSE.