Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo
Il più recente robot per la pulizia domestica di Dreame, modello Aqua10 Ultra Roller, abbina un potente motore di aspirazione della polvere a un sofisticato sistema di lavaggio con rullo integrato. Il tutto governato dalla logica di intelligenza artificiale, per i migliori risultati
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
Il Gigabyte Gaming A16 offre un buon equilibrio tra prestazioni e prezzo: con Core i7-13620H e RTX 5060 Laptop garantisce gaming fluido in Full HD/1440p e supporto DLSS 4. Display 165 Hz reattivo, buona autonomia e raffreddamento efficace; peccano però le USB e la qualità cromatica del pannello. Prezzo: circa 1200€.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-04-2006, 16:15   #1
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
OROLOGIO INDIPENDENTE DA WINDOWS......

Ciao a tutti.........

Chiedo il vostro aiuto per un mio problema............

Sto cercando, invano fino ad ora, un semplice orologio che possa essere indipendente dall'orologio di windows(bios)

Insomma, io setto un orario, e lui inperterrito contianua ad andare avanti......

Basterebbe un semplicissimo file exe, o bat.........o anche qualcosa con C++......

o anche con java......

Qualcuno mi può aiutare?
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 16:42   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
non capisco che intendi con "indipendente da Windows"; e poi che c'entra il BIOS? cioè, tu vorresti ottenere un programma che potenzialmente possa sfasarsi dopo un certo tempo rispetto a quello di Windows a causa della diversa precisione, ho capito bene? è una domanda assurda lo so, ma è per sapere se ho capito quello che intendi; e siccome è una domanda assurda dovresti anche immaginare la risposta al tuo post...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 17:30   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Sto cercando, invano fino ad ora, un semplice orologio che possa essere indipendente dall'orologio di windows(bios)
Cosa intendi per "indipendente"???

A) Che il "tuo" orologio sia semplicemente "sfasato" rispetto a quello di Windows. Questo comporta che: 1) Una modifica all'orologio di Windows, causa una modifica (sfasata) al "tuo" orologio. 2) Il tuo orologio gira in sincrono con quello di Windows.

B) Che il "tuo" orologio sia temporizzato e funzioni in maniera completamente indipendente dall'orologio di Windows. Questo comporta che: 1) Devi gestire tu un contatore da incrementare in modo opportuno e preciso. 2) Il "tuo" orologio non può "vivere" a pc spento (ovvio, l'unico che continua a girare è il RTC hardware sulla scheda madre!).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 18:01   #4
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
Quote:
Originariamente inviato da andbin
Cosa intendi per "indipendente"???

A) Che il "tuo" orologio sia semplicemente "sfasato" rispetto a quello di Windows. Questo comporta che: 1) Una modifica all'orologio di Windows, causa una modifica (sfasata) al "tuo" orologio. 2) Il tuo orologio gira in sincrono con quello di Windows.

B) Che il "tuo" orologio sia temporizzato e funzioni in maniera completamente indipendente dall'orologio di Windows. Questo comporta che: 1) Devi gestire tu un contatore da incrementare in modo opportuno e preciso. 2) Il "tuo" orologio non può "vivere" a pc spento (ovvio, l'unico che continua a girare è il RTC hardware sulla scheda madre!).

Innanzi tutto grazie delle risposte.........

Allora preciso..............
Il mio orologio deve funzionare in maniera completamente indipendente da windows............
Magari, per agirare lo spegnimento del pc, questo orologio, potrebbe calcolare l'ora corrente aggiungendo un certo valore di ore, secondi, e minuti all'orologio di windows..........

non so se sono stato chiaro...........

magari possiamo sentirci con msn???



thanks
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 18:13   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Allora preciso..............
Il mio orologio deve funzionare in maniera completamente indipendente da windows............
Magari, per agirare lo spegnimento del pc, questo orologio, potrebbe calcolare l'ora corrente aggiungendo un certo valore di ore, secondi, e minuti all'orologio di windows..........
Non è banalissimo ma credo che si possa fare.
I problemi da risolvere sono quindi:

1) Gestire un contatore del tempo da incrementare in modo preciso ogni secondo. (ad esempio tramite un timer e magari per essere preciso usando il valore ritornato dalla funzione Win32 GetTickCount).

2) Settare/Leggere il tuo orologio come data/ora. (basta usare ad esempio le funzioni Win32 FileTimeToSystemTime e SystemTimeToFileTime).

3) Rendere "persistente" l'orologio anche se viene spento il PC.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 18:17   #6
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
Quote:
Originariamente inviato da andbin
Non è banalissimo ma credo che si possa fare.
I problemi da risolvere sono quindi:

1) Gestire un contatore del tempo da incrementare in modo preciso ogni secondo. (ad esempio tramite un timer e magari per essere preciso usando il valore ritornato dalla funzione Win32 GetTickCount).

2) Settare/Leggere il tuo orologio come data/ora. (basta usare ad esempio le funzioni Win32 FileTimeToSystemTime e SystemTimeToFileTime).

3) Rendere "persistente" l'orologio anche se viene spento il PC.

Esattamente.............

Io clicco sul file .exe (suppongo) e visualizzo un orario che differisca dal nosto di 8 ore in più............
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 18:29   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Io clicco sul file .exe (suppongo) e visualizzo un orario che differisca dal nosto di 8 ore in più............
Ma allora, scusa, non ti basta semplicemente "sfasare" l'orologio di Windows??? Vorrei capire bene ...

Per ottenere un semplice "sfasamento" si può fare:
1) Si ottiene l'ora locale di Windows con la funzione GetLocalTime (che riempie una struttura SYSTEMTIME).
2) Si converte la struttura SYSTEMTIME in una struttura FILETIME con la funzione SystemTimeToFileTime.
3) Si somma un certo valore es. 28800 per avere 8 ore in più al valore FILETIME (questo va fatto usando un ULARGE_INTEGER).
4) Si converte il nuovo FILETIME in un SYSTEMTIME con la funzione FileTimeToSystemTime e si ottengono i dati ora/min/sec. ecc... sfasati.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 18:32   #8
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
Quote:
Originariamente inviato da andbin
Ma allora, scusa, non ti basta semplicemente "sfasare" l'orologio di Windows??? Vorrei capire bene ...

Per ottenere un semplice "sfasamento" si può fare:
1) Si ottiene l'ora locale di Windows con la funzione GetLocalTime (che riempie una struttura SYSTEMTIME).
2) Si converte la struttura SYSTEMTIME in una struttura FILETIME con la funzione SystemTimeToFileTime.
3) Si somma un certo valore es. 28800 per avere 8 ore in più al valore FILETIME (questo va fatto usando un ULARGE_INTEGER).
4) Si converte il nuovo FILETIME in un SYSTEMTIME con la funzione FileTimeToSystemTime e si ottengono i dati ora/min/sec. ecc... sfasati.
Così era troppo semplice..........
Non voglio toccare l'orologio di windows.........
Ma creare un altro con questo sfasamento di ore.........
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 20:53   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Così era troppo semplice..........
Non voglio toccare l'orologio di windows.........
Ma creare un altro con questo sfasamento di ore.........
E va beh ... allora vuoi proprio le cose complicate!

Comunque faccio alcune precisazioni. Nel mio post precedente dicevo di sommare 28800 al FILETIME per avere 8 ore in più. Correzione: mi sono ricordato appena adesso che FILETIME non ha la granularità di 1 secondo ma di 100 nanosecondi!
Inoltre con il metodo che ho detto io NON tocchi/alteri assolutamente l'orologio di Windows. Prendi solo il suo valore, lo sfasi e basta.

E giusto per darti un esempio del metodo che ho detto io, ho buttato giù questo codice:
Codice:
#define STRICT
#include <stdio.h>
#include <windows.h>

BOOL GetShiftedLocalTime (LPSYSTEMTIME lpstShifted, INT iSecondsShift)
{
    SYSTEMTIME      stLocal;
    FILETIME        ftLocal;
    ULARGE_INTEGER  ulInt;

    GetLocalTime (&stLocal);

    if (!SystemTimeToFileTime (&stLocal, &ftLocal))
        return FALSE;

    CopyMemory (&ulInt, &ftLocal, sizeof (ULARGE_INTEGER));

    ulInt.QuadPart += ((LONGLONG) iSecondsShift) * 10000000;
    
    CopyMemory (&ftLocal, &ulInt, sizeof (ULARGE_INTEGER));

    if (!FileTimeToSystemTime (&ftLocal, lpstShifted))
        return FALSE;

    return TRUE;
}

int main (void)
{
    SYSTEMTIME  st;
    CHAR        szDate[64], szTime[64];

    if (GetShiftedLocalTime (&st, 28800))  /* 8 ore di sfasamento */
    {
        /* Formatta e stampa data/ora */
        GetDateFormat (LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st,
                       NULL, szDate, sizeof (szDate));
        GetTimeFormat (LOCALE_USER_DEFAULT, 0, &st,
                       NULL, szTime, sizeof (szTime));

        printf ("%s %s\n", szDate, szTime);
    }

    return 0;
}
È per una applicazione Win32 console. Se lo compili e lo esegui, ti stampa l'ora sfasata di 8 ore in avanti.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-04-2006, 21:15   #10
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
Quote:
Originariamente inviato da andbin
E va beh ... allora vuoi proprio le cose complicate!

Comunque faccio alcune precisazioni. Nel mio post precedente dicevo di sommare 28800 al FILETIME per avere 8 ore in più. Correzione: mi sono ricordato appena adesso che FILETIME non ha la granularità di 1 secondo ma di 100 nanosecondi!
Inoltre con il metodo che ho detto io NON tocchi/alteri assolutamente l'orologio di Windows. Prendi solo il suo valore, lo sfasi e basta.

E giusto per darti un esempio del metodo che ho detto io, ho buttato giù questo codice:
Codice:
#define STRICT
#include <stdio.h>
#include <windows.h>

BOOL GetShiftedLocalTime (LPSYSTEMTIME lpstShifted, INT iSecondsShift)
{
    SYSTEMTIME      stLocal;
    FILETIME        ftLocal;
    ULARGE_INTEGER  ulInt;

    GetLocalTime (&stLocal);

    if (!SystemTimeToFileTime (&stLocal, &ftLocal))
        return FALSE;

    CopyMemory (&ulInt, &ftLocal, sizeof (ULARGE_INTEGER));

    ulInt.QuadPart += ((LONGLONG) iSecondsShift) * 10000000;
    
    CopyMemory (&ftLocal, &ulInt, sizeof (ULARGE_INTEGER));

    if (!FileTimeToSystemTime (&ftLocal, lpstShifted))
        return FALSE;

    return TRUE;
}

int main (void)
{
    SYSTEMTIME  st;
    CHAR        szDate[64], szTime[64];

    if (GetShiftedLocalTime (&st, 28800))  /* 8 ore di sfasamento */
    {
        /* Formatta e stampa data/ora */
        GetDateFormat (LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st,
                       NULL, szDate, sizeof (szDate));
        GetTimeFormat (LOCALE_USER_DEFAULT, 0, &st,
                       NULL, szTime, sizeof (szTime));

        printf ("%s %s\n", szDate, szTime);
    }

    return 0;
}
È per una applicazione Win32 console. Se lo compili e lo esegui, ti stampa l'ora sfasata di 8 ore in avanti.

Ho provato, compilato ed eseguito, ma non funziona...........
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2006, 10:03   #11
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Ho provato, compilato ed eseguito, ma non funziona...........
Innanzitutto quale compilatore/ambiente stai usando?? Quale è il problema esatto?
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2006, 11:26   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Prova questo sorgente. È un po' più lungo (ho aggiunto la gestione della console) ma ti consente di modificare in modo interattivo lo sfasamento dell'ora.
Codice:
#define STRICT
#include <windows.h>

/*---- Funzioni per gestione console ----*/
#define CONSOLE_FG_BLACK    0
#define CONSOLE_FG_BLUE     FOREGROUND_BLUE
#define CONSOLE_FG_GREEN    FOREGROUND_GREEN
#define CONSOLE_FG_CYAN     (FOREGROUND_BLUE | FOREGROUND_GREEN)
#define CONSOLE_FG_RED      FOREGROUND_RED
#define CONSOLE_FG_MAGENTA  (FOREGROUND_RED | FOREGROUND_BLUE)
#define CONSOLE_FG_YELLOW   (FOREGROUND_RED | FOREGROUND_GREEN)
#define CONSOLE_FG_WHITE    (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)

#define CONSOLE_BG_BLACK    0
#define CONSOLE_BG_BLUE     BACKGROUND_BLUE
#define CONSOLE_BG_GREEN    BACKGROUND_GREEN
#define CONSOLE_BG_CYAN     (BACKGROUND_BLUE | BACKGROUND_GREEN)
#define CONSOLE_BG_RED      BACKGROUND_RED
#define CONSOLE_BG_MAGENTA  (BACKGROUND_RED | BACKGROUND_BLUE)
#define CONSOLE_BG_YELLOW   (BACKGROUND_RED | BACKGROUND_GREEN)
#define CONSOLE_BG_WHITE    (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)

BOOL WINAPI Console_Clear (HANDLE hStdOut, WORD wAttributes)
{
    COORD                        coord = { 0, 0 };
    DWORD                        dwScreenSize, dwWritten;
    CONSOLE_SCREEN_BUFFER_INFO   csbi;

    if (GetConsoleScreenBufferInfo (hStdOut, &csbi) == FALSE)
        return FALSE;

    dwScreenSize = csbi.dwSize.X * csbi.dwSize.Y;

    if (FillConsoleOutputCharacter (hStdOut, (TCHAR) ' ', dwScreenSize, coord, &dwWritten) == FALSE)
        return FALSE;
    if (FillConsoleOutputAttribute (hStdOut, wAttributes, dwScreenSize, coord, &dwWritten) == FALSE)
        return FALSE;
    if (SetConsoleCursorPosition (hStdOut, coord) == FALSE)
        return FALSE;
    if (SetConsoleTextAttribute (hStdOut, wAttributes) == FALSE)
        return FALSE;

    return TRUE;
}

BOOL WINAPI Console_SetCursorPos (HANDLE hStdOut, SHORT sX, SHORT sY)
{
    COORD   coord;

    coord.X = sX;
    coord.Y = sY;

    return SetConsoleCursorPosition (hStdOut, coord);
}

BOOL WINAPI Console_SetCursorVisibility (HANDLE hStdOut, BOOL bVisible)
{
    CONSOLE_CURSOR_INFO cci;

    if (GetConsoleCursorInfo (hStdOut, &cci) == FALSE)
        return FALSE;

    cci.bVisible = bVisible;

    return SetConsoleCursorInfo (hStdOut, &cci);
}

BOOL WINAPI Console_Write (HANDLE hStdOut, LPTSTR lpszText)
{
    DWORD   dwWritten;

    if (WriteConsole (hStdOut, lpszText, (DWORD) lstrlen (lpszText), &dwWritten, NULL) == FALSE)
        return FALSE;

    return TRUE;
}

BOOL WINAPI Console_Read (HANDLE hStdIn, PINPUT_RECORD pir, LPDWORD lpdwRead, BOOL bBlocking)
{
    INPUT_RECORD ir;
    DWORD        dwRead;

    if (!bBlocking)
    {
        if (!PeekConsoleInput (hStdIn, &ir, 1, &dwRead))
            return FALSE;

        if (dwRead == 0)
        {
            *lpdwRead = 0;
            return TRUE;
        }
    }

    if (!ReadConsoleInput (hStdIn, pir, 1, lpdwRead))
        return FALSE;

    return TRUE;
}

/*---------------------------------------*/


BOOL GetShiftedLocalTime (LPSYSTEMTIME lpstShifted, INT iSecondsShift)
{
    SYSTEMTIME      stLocal;
    FILETIME        ftLocal;
    ULARGE_INTEGER  ulInt;

    GetLocalTime (&stLocal);

    if (!SystemTimeToFileTime (&stLocal, &ftLocal))
        return FALSE;

    CopyMemory (&ulInt, &ftLocal, sizeof (ULARGE_INTEGER));

    ulInt.QuadPart += ((LONGLONG) iSecondsShift) * 10000000;
    
    CopyMemory (&ftLocal, &ulInt, sizeof (ULARGE_INTEGER));

    if (!FileTimeToSystemTime (&ftLocal, lpstShifted))
        return FALSE;

    return TRUE;
}


int main (void)
{
    HANDLE          hStdIn, hStdOut;
    SYSTEMTIME      st;
    INT             iHoursShift = 8;
    WORD            wSecondOld = 0xFFFF;
    CHAR            szDate[64], szTime[64], szBuffer[128];
    INPUT_RECORD    ir;
    DWORD           dwRead;
    BOOL            bExit = FALSE;

    hStdIn = GetStdHandle (STD_INPUT_HANDLE);
    hStdOut = GetStdHandle (STD_OUTPUT_HANDLE);

    Console_Clear (hStdOut, CONSOLE_BG_BLUE | CONSOLE_FG_YELLOW | FOREGROUND_INTENSITY);
    Console_SetCursorVisibility (hStdOut, FALSE);

    Console_SetCursorPos (hStdOut, 0, 0);
    Console_Write (hStdOut, "Premi: ESC per uscire ; freccia su/giu' per aumentare/diminuire lo sfasamento");

    do {
        if (GetShiftedLocalTime (&st, iHoursShift * 3600))
        {
            if (st.wSecond != wSecondOld)
            {
                wsprintf (szBuffer, "Ore sfasamento: %d       ", iHoursShift);
                
                Console_SetCursorPos (hStdOut, 30, 10);
                Console_Write (hStdOut, szBuffer);

                GetDateFormat (LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st,
                               NULL, szDate, sizeof (szDate));
                GetTimeFormat (LOCALE_USER_DEFAULT, 0, &st,
                               NULL, szTime, sizeof (szTime));

                wsprintf (szBuffer, "%s %s      ", szDate, szTime);

                Console_SetCursorPos (hStdOut, 30, 13);
                Console_Write (hStdOut, szBuffer);

                wSecondOld = st.wSecond;
            }
        }

        Sleep (50);

        if (Console_Read (hStdIn, &ir, &dwRead, FALSE))
        {
            if (dwRead == 1 && ir.EventType == KEY_EVENT && ir.Event.KeyEvent.bKeyDown == TRUE)
            {
                if (ir.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE)
                    bExit = TRUE;
                else if (ir.Event.KeyEvent.wVirtualKeyCode == VK_UP)
                {
                    iHoursShift++;
                    wSecondOld = 0xFFFF;
                }
                else if (ir.Event.KeyEvent.wVirtualKeyCode == VK_DOWN)
                {
                    iHoursShift--;
                    wSecondOld = 0xFFFF;
                }
            }
        }
    } while (!bExit);

    Console_Clear (hStdOut, CONSOLE_BG_BLACK | CONSOLE_FG_WHITE);
    Console_SetCursorVisibility (hStdOut, TRUE);

    return 0;
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)

Ultima modifica di andbin : 17-04-2006 alle 13:14.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2006, 17:03   #13
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
Quote:
Originariamente inviato da andbin
Innanzitutto quale compilatore/ambiente stai usando?? Quale è il problema esatto?

Ho usato DEV, per conpilarlo..........

Appena eseguo il file compilato, la finestra esce per una frazione di secondo, e poi si chiude subito......
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2006, 17:09   #14
8rda3+
Senior Member
 
L'Avatar di 8rda3+
 
Iscritto dal: Feb 2006
Messaggi: 1222
Ho provato, anche il secondo codice che mi hai dato, e devo dire che mi và più che bene.....

Solo che la data dovrebbe essere di un giorno in avanti..........

Se mi dici cosa modificare lo posso fare io.........


Thanks!!!!!!!!!!!!!!!!!!!
__________________
Uanama!
8rda3+ è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2006, 20:50   #15
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Ho usato DEV, per conpilarlo..........

Appena eseguo il file compilato, la finestra esce per una frazione di secondo, e poi si chiude subito......
Beh, certo! Il primo sorgente stampa l'ora e termina immediatamente. Se lo lanci dal tuo ambiente di sviluppo, non vedi niente! Dovresti invece aprire una nuova finestra del prompt dei comandi e lanciarlo a mano.

Non ho inserito alcuna getch, scanf, system("pause") o roba simile per attendere un tasto proprio perché dovrebbe essere facilmente comprensibile che esce immediatamente! E quindi poi ognuno si regola come meglio crede.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-04-2006, 21:02   #16
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da 8rda3+
Ho provato, anche il secondo codice che mi hai dato, e devo dire che mi và più che bene.....
Certo, perché il programma non termina subito. C'è un loop all'interno del main da cui si esce solo premendo ESC. Altrimenti l'orologio avanza secondo per secondo ed è anche possibile modificare in modo interattivo lo sfasamento con le frecce su/giù.

Quote:
Originariamente inviato da 8rda3+
Solo che la data dovrebbe essere di un giorno in avanti..........

Se mi dici cosa modificare lo posso fare io.........
Dipende da cosa ti serve. Io ho aggiunto un po' di "folklore" usando dei colori e dando la possibilità di modificare lo sfasamento. Se a te non serve, puoi togliere diversa roba. Non so nemmeno se ti va bene una applicazione "console". Si potrebbe anche fare una applicazione "gui" con una piccola dialog-box con un campo "static" che mostra l'orologio mentre avanza. Ma questo richiede altre cose (l'utilizzo di un file di risorse .rc nel progetto e la gestione della dialog-box).

La funzione fondamentale che consente di ottenere lo sfasamento dell'ora è quella che ho chiamato GetShiftedLocalTime. Per avere l'ora di un giorno in avanti basta passargli come secondo parametro 24*3600.

Poi vedi tu ... se hai qualche dubbio comunque chiedi pure.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Cina, effetto sanzioni USA: Cambricon - ...
La gamma Mac riceverà tante novit...
DDR5 supera i 13.000 MT/s, stavolta uffi...
Il nuovo iPhone con display pieghevole p...
ASUS ProArt PA32KCX: ecco a voi il primo...
DAZN ci riprova: piano Full a meno di 20...
Nuovi prezzi, più bassi: scendono...
PC Desktop HP Victus con RTX 4060 e Ryze...
Giù di altri 10€: solo 939€ per M...
Offerte Amazon da non credere: sconti fo...
Windows 11 scivola sugli aggiornamenti d...
Razer Kiyo V2: la nuova webcam 4K con AI...
ASUS ROG NUC 9: i mini PC (ex) Intel, ad...
Streaming illegale, il ministro dello Sp...
Microsoft avrebbe affidato a Intel la pr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 19:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v