Autor Wątek: Zegar w WinAPi  (Przeczytany 2121 razy)

Offline sapcio1

  • Użytkownik

# Kwiecień 05, 2006, 18:49:57
Witajcie. mam do was kolejne pytanko. czy są w winapi jakies funkcjie pozwalajace zmienic wyglad zegarka systemowego wyswietlabego na tray'u?. np. chcailbym wyswietlic pelna godzine raz z sekundami, miesiac  i rok i dzien. z gory dzieki za odpowiedzi.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Nargil

  • Użytkownik
    • projekty

# Kwiecień 05, 2006, 18:52:38
mozesz go wylaczyc, a do traya dodac wlasny program.

Offline sapcio1

  • Użytkownik

# Kwiecień 05, 2006, 18:55:28
cos bardziej automatycznego... :)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Kwiecień 05, 2006, 19:15:10
Cytuj
Witajcie. mam do was kolejne pytanko. czy są w winapi jakies funkcjie pozwalajace zmienic wyglad zegarka systemowego wyswietlabego na tray'u?
Wątpię. Wygląda na to, że zegarek to jest właśnie zwykły program pracujący sobie w tray'u, więc najprawdopodobniej sobie go tak łatwo nie pozmieniasz. :)

Antrykot

  • Gość
# Kwiecień 05, 2006, 19:55:10
Ale przy odrobinie kombinacji powinno sie go dać "nadmalować" :)
W xp jego klasa nazywa sie TrayClockWClass.A dalej to FindWindow i te sprawy :)

Offline Silther

  • Użytkownik

# Kwiecień 05, 2006, 20:00:47
Zegarek nie jest normalnym programikiem pracującym sobie w traju, ale jak wszystko (prawie) w Windowsie jest okienkienkiem, więc można uzyskać do niego dostęp i zrobić dokładnie to co chcemy - przemieścić, zmienić okno rodzica, czy też usunąć. Wszystko to masz opisane w książce "c++ elementarz hakera" (wbrew tytułowi traktuje ona głównie o programowaniu w Windowsie i WinSocku). Książeczka jest tutaj.
A może przytoczę jeszcze kod (jest z książki):
HWND okienko;
okienko = FindWindow ("Shell_TrayWnd", NULL);
okienko = FindWindowEx (okienko, HWND (0), "TrayNotifyWnd", NULL);
okienko = FindWindowEx (okienko, HWND (0), "TrayClockClass", NULL);
ShowWINDOW (okinko, SW_HIDE);
Nie gwarantuję zgodności z XP, ale raczej powinno działać.
« Ostatnia zmiana: Kwiecień 05, 2006, 20:08:08 wysłana przez Czomolungma »

Offline Nargil

  • Użytkownik
    • projekty

# Kwiecień 05, 2006, 22:59:23
HWND okienko;
okienko = FindWindow ("Shell_TrayWnd", NULL);
okienko = FindWindowEx (okienko, HWND (0), "TrayNotifyWnd", NULL);
okienko = FindWindowEx (okienko, HWND (0), "TrayClockClass", NULL);
ShowWINDOW (okinko, SW_HIDE);
Przeciez wystarczy we wlasciwosciach paska zadan odznaczyc "Pokaz zegar"

Antrykot

  • Gość
# Kwiecień 05, 2006, 23:01:37
e] Przeciez wystarczy we wlasciwosciach paska zadan odznaczyc "Pokaz zegar"
Tylko wtedy ikony sie przesuną, i nie będzie miejsca.