[ ower @ 11.04.2007. 15:01 ] @
Kako bih mogao da uradim program da se neki message box pojavljuje na svakih desetak sekundi?

npr.

#include<windows.h>
main()
{
MessageBox(0,"Zdravo","Zdravo svima",0);
}

da se pojavljuje na 10-15 sekundi.
[ Nibble @ 11.04.2007. 15:18 ] @
Valjda je ovo sto si trazio.

Code:

#include <windows.h>
#define Sekunde 10*1000

int main ()
{
 while(1)
 {
  MessageBox(0,"Test","Test",0);
  Sleep(Sekunde);
 }
 return 0;
}


Pogledaj API funkciju Sleep.(Imas citavu MSDN dokumentaciju na raspolaganju pa se igraj;)

Citat:

The Sleep function suspends the execution of the current thread for a specified interval.

VOID Sleep(

DWORD dwMilliseconds // sleep time in milliseconds
);
Parameters

dwMilliseconds

Specifies the time, in milliseconds, for which to suspend execution. A value of zero causes the thread to relinquish the remainder of its time slice to any other thread of equal priority that is ready to run. If there are no other threads of equal priority ready to run, the function returns immediately, and the thread continues execution. A value of INFINITE causes an infinite delay.

Return Values

This function does not return a value.


Pozdrav
[ Milos Stojanovic @ 11.04.2007. 15:42 ] @
Mala opaska, ako bi želeo da se to dešava u pozadini, tj. da imaš mogućnost da program nešto drugo radi dok se poruka prikazuje, onda je rešenje postaviti to u drugi thread

Code:
const DWORD dSleepInterval = 10000;
BOOL bRun = TRUE;

DWORD WINAPI ThreadProc(LPVOID lpParam) 
{
    while(bRun)
    {
        MessageBox(0, TEXT("Poruka"), TEXT("Naslov"), 0);
        Sleep(dSleepInterval);        
    }
    return 0;
}

int main()
{
    // ...
    // napravi i pokreni thread
    HANDLE hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);

    // ...
    // neka druga obrada koja postavlja bRun na FALSE na kraju
    // ...

    // sacekaj thread
    WaitForSingleObject(hThread, INFINITE);
    // ...
}
[ ower @ 12.04.2007. 16:40 ] @
a kako bih mogao da uradim program, koji ce da nastavi da "izbacuje" messagebox i nakon zatvaranja tog programa...?
[ Nibble @ 12.04.2007. 17:39 ] @
Mozes li malo bolje da objasnis jer te slabo kontam.Ako ti smeta "crni" prozor onda ubaci ovu liniju na pocetak(poslije varijabli naravno):

Code:
ShowWindow(FindWindowA("ConsoleWindowClass",NULL),0);


Opis API f-ja(MSDN):

FindWindow

Citat:
The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.

HWND FindWindow(

LPCTSTR lpClassName, // pointer to class name
LPCTSTR lpWindowName // pointer to window name
);
Parameters

lpClassName

Points to a null-terminated string that specifies the class name or is an atom that identifies the class-name string. If this parameter is an atom, it must be a global atom created by a previous call to the GlobalAddAtom function. The atom, a 16-bit value, must be placed in the low-order word of lpClassName; the high-order word must be zero.

lpWindowName

Points to a null-terminated string that specifies the window name (the window’s title). If this parameter is NULL, all window names match.

Return Values

If the function succeeds, the return value is the handle to the window that has the specified class name and window name.


ShowWindow

Citat:


The ShowWindow function sets the specified window’s show state.

BOOL ShowWindow(

HWND hWnd, // handle of window
int nCmdShow // show state of window
);
Parameters

hWnd

Identifies the window.

nCmdShow

Specifies how the window is to be shown.
Slijede parametri koje mozes slati prozoru:
SW_HIDE,SW_MAXIMIZE,SW_MINIMIZE,SW_RESTORE,SW_SHOW,SW_SHOWDEFAULT,
SW_SHOWMAXIMIZED,SW_SHOWMINIMIZED,SW_SHOWMINNOACTIVE,SW_SHOWNA,
SW_SHOWNOACTIVATE,SW_SHOWNORMAL.

Return Values

If the window was previously visible, the return value is nonzero.
If the window was previously hidden, the return value is zero.


Mana: Svi konzolni prozori ce biti sakriveni ukljucujuci i tvoj program.Ako neko ima bolju ideju neka kaze.

Pozdrav
[ Buffy @ 13.04.2007. 05:58 ] @
Pa jednostavno, napravi windows aplikaciju i konzolni program se uopste nece pojavljivati.
[ X Files @ 13.04.2007. 09:15 ] @
ower, šta konkretno želiš da postigneš?

Ako je cilj napraviti program koji će se pokrenuti na rečunaru nekog 'prijatelja', pri čemu on ne bi trebalo
da može da ugasi taj program, onda ova tema ide u nedozvoljene vode i kao takva se mora zaključati...
[ ower @ 13.04.2007. 10:29 ] @
ma ne samo me zanima kako se to radi i kako izgleda kada se pokrene...