[Delphi] Wygaszacz ekranu
: 24 lut 2012, 9:59
Wygaszacz ekranu w postaci zegarka
Patrząc sobie dzisiaj wieczorem na ekran swojego serwera na którym przewijał się jak zwykle niewielki zegarek co chwila zmieniający pozycję postanowiłem podzielić się z wami pewną historią. Historia ta zaczęła się dawno temu od błahostki. Nie mogłem znaleźć fajnego i funkcjonalnego wygaszacza ekranu w postaci zegarka. Wszystkie wygaszacze jakie znalazłem były albo brzydkie albo przeładowane bajerami albo za bardzo obciążały komputer który przecież podczas nic nie robienia powinien mieć zasoby np. na prace jakiś programów w tle. Postanowiłem więc że sam sobie napiszę wygaszacz.
Zadanie banalnie proste. Windowsowy wygaszacz ekranu to w uproszczeniu po prostu plik exe ze zmienionym rozszerzeniem. A bez uproszczenia trzeba dodać procedury odpowiadające np. ustawieniom i podglądowi w oknie ustawień i nazwie na liście wygaszaczy, ale i bez tego wygaszacz działa poprawnie. Kierowałem się gotowym poradnikiem http://daa.pl/hm4 i szkieletem http://daa.pl/hm5
Wygaszacz jest oparty na banalnie prostym pomyśle. Wyświetla godzinę i datę na czarnym tle. Bez żadnych animacji, dodatków i pierdółek w 3D, po prostu zegar. Pozycja tekstu (a raczej panelu z labelami) zmienia się co 10 sekund na losową, a wraz z nią kolor tekstu zmienia się na losowy. Dzięki temu ten pozornie nudny program nigdy nie wygląda tak samo. Program praktycznie nie pobiera ramu ani użycia CPU.
I tu można by zakończyć opowieść gdyby nie to że pewnego razu miałem kaprys zrobienia wersji 64 bitowej. Przeniesienie projektu do Lazarusa który niby jest kompatybilny z Delphi wcale nie jest takie proste, ale z wersji na wersje to open source'owe środowisko jest coraz bardziej przyjazne. Chyba nie muszę mówić że tworzenie 64 bitowej wersji tak prostego programu to sztuka dla sztuki, ale ja lubię mieć x64 gdzie tylko się da. Wersja 64 bitowa posiada kilka usprawnień m.in wywaliłem niepotrzebne już w wersji x86 procedury odpowiadające za zabezpieczenie wygaszacza hasłem (było dla zachowania kompatybilności z Windows 9x).
Napisałem też wersje dla ARM Windows CE (testowałem na swoim GPS Lark 35.7). Także w lazarusie.
Kilka dni temu naszła mnie ochota na odpalenie tego samego wygaszacza na 486 pod Windows 3.1. Po wielu próbach wpadłem na pomysł że przepisze kod do jakieś starej jak świat wersji Delphi. Programy 16 bitowe pozwala tworzyć Delphi 1.0, w sumie fajna sprawa, można je zainstalować na XP nawet obok innej wersji Delphi, wszystko zrobione w 16 bitach. Teoretycznie można każdy program napisany w delphi przepisać pod windows 3.1. Z powodu ograniczeń win16 i starego delphi wygaszacz został uproszczony, nie ma np. okna konfiguracyjnego. Swoje zadanie czyli wyświetlanie zegara z datą i zmiana pozycji i kolorów wykonuje tak samo jak wersje dla nowszych architektur.
Używam tego wygaszacza na wszystkich komputerach jakie mam, a także instaluje go np. jak komuś naprawiam komputer. Wiele osób chwali go sobie. Jak ktoś chce to wyśle wersje na wiele monitorów.
Download
Wersja 16 bit:
http://www.4shared.com/file/aI78-aG-/ZEGAR16.html
Wersja 32 bit:
http://www.4shared.com/file/Mm0qjdvH/zegar32.html
Wersja AMD64:
http://www.4shared.com/file/O1g_KHai/zegar64.html
Wersja ARM:
http://www.4shared.com/file/L7KYrFDJ/zegar_arm.html
Kody źródłowe:
http://www.4shared.com/zip/HdhfXhsR/zegar_kod.html
Patrząc sobie dzisiaj wieczorem na ekran swojego serwera na którym przewijał się jak zwykle niewielki zegarek co chwila zmieniający pozycję postanowiłem podzielić się z wami pewną historią. Historia ta zaczęła się dawno temu od błahostki. Nie mogłem znaleźć fajnego i funkcjonalnego wygaszacza ekranu w postaci zegarka. Wszystkie wygaszacze jakie znalazłem były albo brzydkie albo przeładowane bajerami albo za bardzo obciążały komputer który przecież podczas nic nie robienia powinien mieć zasoby np. na prace jakiś programów w tle. Postanowiłem więc że sam sobie napiszę wygaszacz.
Zadanie banalnie proste. Windowsowy wygaszacz ekranu to w uproszczeniu po prostu plik exe ze zmienionym rozszerzeniem. A bez uproszczenia trzeba dodać procedury odpowiadające np. ustawieniom i podglądowi w oknie ustawień i nazwie na liście wygaszaczy, ale i bez tego wygaszacz działa poprawnie. Kierowałem się gotowym poradnikiem http://daa.pl/hm4 i szkieletem http://daa.pl/hm5
Wygaszacz jest oparty na banalnie prostym pomyśle. Wyświetla godzinę i datę na czarnym tle. Bez żadnych animacji, dodatków i pierdółek w 3D, po prostu zegar. Pozycja tekstu (a raczej panelu z labelami) zmienia się co 10 sekund na losową, a wraz z nią kolor tekstu zmienia się na losowy. Dzięki temu ten pozornie nudny program nigdy nie wygląda tak samo. Program praktycznie nie pobiera ramu ani użycia CPU.
I tu można by zakończyć opowieść gdyby nie to że pewnego razu miałem kaprys zrobienia wersji 64 bitowej. Przeniesienie projektu do Lazarusa który niby jest kompatybilny z Delphi wcale nie jest takie proste, ale z wersji na wersje to open source'owe środowisko jest coraz bardziej przyjazne. Chyba nie muszę mówić że tworzenie 64 bitowej wersji tak prostego programu to sztuka dla sztuki, ale ja lubię mieć x64 gdzie tylko się da. Wersja 64 bitowa posiada kilka usprawnień m.in wywaliłem niepotrzebne już w wersji x86 procedury odpowiadające za zabezpieczenie wygaszacza hasłem (było dla zachowania kompatybilności z Windows 9x).
Napisałem też wersje dla ARM Windows CE (testowałem na swoim GPS Lark 35.7). Także w lazarusie.
Kilka dni temu naszła mnie ochota na odpalenie tego samego wygaszacza na 486 pod Windows 3.1. Po wielu próbach wpadłem na pomysł że przepisze kod do jakieś starej jak świat wersji Delphi. Programy 16 bitowe pozwala tworzyć Delphi 1.0, w sumie fajna sprawa, można je zainstalować na XP nawet obok innej wersji Delphi, wszystko zrobione w 16 bitach. Teoretycznie można każdy program napisany w delphi przepisać pod windows 3.1. Z powodu ograniczeń win16 i starego delphi wygaszacz został uproszczony, nie ma np. okna konfiguracyjnego. Swoje zadanie czyli wyświetlanie zegara z datą i zmiana pozycji i kolorów wykonuje tak samo jak wersje dla nowszych architektur.
Używam tego wygaszacza na wszystkich komputerach jakie mam, a także instaluje go np. jak komuś naprawiam komputer. Wiele osób chwali go sobie. Jak ktoś chce to wyśle wersje na wiele monitorów.
Download
Wersja 16 bit:
http://www.4shared.com/file/aI78-aG-/ZEGAR16.html
Wersja 32 bit:
http://www.4shared.com/file/Mm0qjdvH/zegar32.html
Wersja AMD64:
http://www.4shared.com/file/O1g_KHai/zegar64.html
Wersja ARM:
http://www.4shared.com/file/L7KYrFDJ/zegar_arm.html
Kody źródłowe:
http://www.4shared.com/zip/HdhfXhsR/zegar_kod.html