DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   c++ MessageBox problem na Visti (http://www.devprotalk.com/showthread.php?t=8069)

eraser 11. 11. 2009. 09:25

c++ MessageBox problem na Visti
 
Zdravo svima,

imam jedan win service koji je napisan u c++; njegov posao je da prati velicinu baze i da obavestava korisnika kada baza dodje blizu neke unapred definisane velicine. Obavestavanje se radi upisom u log fajl i prikazom odgovarajuce poruke preko MessageBox-a. To sve radi vec godinama na raznim verzijama Windows-a ali na Visti ne. Naime, poruka se ispise u log file ali nikako da se prikaze MsgBox. Preko googla sam video da vec neki ljudi imaju slicne probleme ali za sad nema nekog konkretnog odgovora kako da se problem resi.
Da se neko nije susretao sa slicnim problemima, bilo kakav hint bi mi bio od pomoci.
Napomena: VS6 C++
Pozdrav.

Dragi Tata 11. 11. 2009. 17:08

Сервиси не треба директно да комуницирају са корисником и зато на Висти и новијим верзијама Виндоуза MessageBox више не приказује ништа.

Ако баш мораш, пробај да користиш WTSSendMessage() функцију.

eraser 13. 11. 2009. 09:44

Po dokumentaciji trebalo bi ako se ukljuci 'Interactive services dialog detection' da on kroz neki svoj security ipak propusti msgbox. Ali i kada sam to ukljucio msgbox je i dalje nevidljiv.
Ipak cu morati da menjam kood i da probam da saljem poruku preko WTSSendMessage() fje.

eraser 17. 11. 2009. 13:17

Ako nekom bude trebalo evo kako bi trebalo da se radi.
Ako smo pre Viste imali servis koji radi ovo:
Kôd:

MessageBox(NULL,szText,m_szServiceName,MB_OK + MessageTyp + MB_TOPMOST);
Od Viste pa nadalje mora da se radi ovako:
Kôd:

      char  cTitle[50];
        sprintf(cTitle,"DB Size Security Service");
        char  cMessage[1024];
        sprintf(cMessage, szText);
               
        DWORD dwSession = WTSGetActiveConsoleSessionId();
        DWORD dwResponse = 0;

        WTSSendMessage(WTS_CURRENT_SERVER_HANDLE, dwSession,
        cTitle,
        static_cast<DWORD>((strlen(cTitle) + 1) * sizeof(char)),
        cMessage,
        static_cast<DWORD>((strlen(cMessage) + 1) * sizeof(char)),
        MB_OK + MessageTyp + MB_TOPMOST, 0, &dwResponse, FALSE);



Vreme je GMT +2. Trenutno vreme je 15:11.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.