Autor Wątek: Procesy - bynajmniej nie sądowe!!!:-)  (Przeczytany 2194 razy)

Offline Kwas

  • Użytkownik
    • Kliekck Mne

# Marzec 14, 2006, 23:15:20
Mam taki mały problem. Umiem już dość dobrze programować pod WinApi, ale nie potrafię napisać programu-procesu. Chodzi o taki program który działa w tle nie mając rzadnego żadnego okienka i wykonuje różne operacje. Niekiedy takie programy mają ikonkę w zasobniku systemowym. Mam pytanie - jak napisać taki program i jak za jego pomocą odbierać komunikaty, kiedy nie jest wyświetlane żadne okno. Potrzebuję to bo chcę zrobić taki bajer w serwerze mojej właśnie pisanej gry MMORPG żebym mógł sobie w dowolnej chwili wywoływać okienko administracyjne kiedy serv działa w tle.
« Ostatnia zmiana: Marzec 15, 2006, 16:42:39 wysłana przez Regedit »

Offline Mr. Spam

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

Offline Uszz

  • Użytkownik

# Marzec 14, 2006, 23:44:11
to chyba sie pisze tak jak standardowy program pod win.. tylko ze on nie rysuje swojego okienka a ino trayem sie zajmuje :)

Antrykot

  • Gość
# Marzec 15, 2006, 00:44:22
Jeżeli chcesz okienko, tylko nie widoczne, to tworzysz je normalnie, tyle że nie wywołujesz ShowWindow(...); i tyle. Gdy klikniesz w traya, to wtedy dajesz showwindow i po sprawie. Nic nadzwyczajnego :)

/// BTW. Każdy program ma własny process (jest processem?).

Offline d0ubl3_j

  • Użytkownik

# Marzec 15, 2006, 04:32:01
Cytuj
/// BTW. Każdy program ma własny process (jest processem?).
tak jest procesem

co do topica, to tak jak wyzej ludziki napisali, mozesz zawsze wywolywac dowolna procedure jako proces, kontrolowac jej dzialanie za pomoca innego procesu etc etc

Offline Yazilim

  • Użytkownik

# Marzec 15, 2006, 08:05:12
W załączniku fragment kodu, który umieszcza ikonkę w trayu i reaguje na jej klikanie. W tym kodzie po kliknięciu otwiera się lokalne menu, ale możesz zamiast tego dać dowolną akcję do wykonania.

Pozdr,
Yazilim.

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Marzec 15, 2006, 16:44:35
O ile wiem, program musi mieć okno żeby móc normalnie działać i otrzymywać komunikaty od Windowsa, choćby o kliknięciu na ikonkę w trayu. Inaczej skąd by wiedział kiedy się zakończyć? Musi być ta pętla, więc musi być też i okno. Tylko trzeba go nie pokazywać.

Dawniej jak pisałem w Delphi to zamiast niepokazywać, przesuwałem okno programu do pozycji (-10000,-10000) :)

Offline d0ubl3_j

  • Użytkownik

# Marzec 15, 2006, 18:41:31
zalezy jakie komunikaty ma odbierac, jezeli sa to komunikaty dotyczace GDI to owszem musi miec okno, WM_TRAYICON jest tylko jednym z jego stylu, za to inne komunikaty ktore nie sa polaczone z GDI moge bez problemu byc odbierane ;>

Offline duzamasa

  • Użytkownik

# Marzec 18, 2006, 14:16:48
O ile dobrze pamietam, to wystarczy, ze nie napiszesz instrukcji:
ShowWindow(...)a okno sie nie pojawi na ekranie. Nie wykorzystuj rowniez funkcji
UpdateWindow(...)bo nie ma sensu.