Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di M_P
    Registrato dal
    Sep 2006
    Messaggi
    12

    [C++] Comportamento diverso in base al sistema operativo

    Buongiorno a tutti!
    Sto scrivendo un programma che, tramite indirizzo IP, fa una serie di test su pc remoti, ma si deve comportare in modo diverso in base al sistema operativo, nella fattispecie fra sistemi Windows e altri sistemi.
    Come posso in c++ verificare il sistema operativo in modo generico? Perché se cerco di leggere nel registro, come faccio per ottenere la versione di Windows, oppure uso MSInfo32, se il sistema non è Windows non ottengo risposta, e vado in errore.
    Mi serivirebbe un comando da eseguire preliminarmente ai test, un po' come si fa in javascript con navigator.UserAgent, ma non ho trovato nulla che faccia al caso mio.

    Ringrazio tutti,
    M_P

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Se devi usare un programma su Windows o su Linux lo devi comunque ricompilare.

    Non puoi prendere un eseguibile Win32 (un .exe) ed eseguirlo sotto Linux ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Per includere del codice da compilare a seconda del sistema operativo per cui stai compilando puoi usare gli #ifdef:
    codice:
    #ifdef _WIN32
        //Codice Windows
    #else
    #ifdef _LINUX
        //Codice Linux
    #else
        //Codice per altri sistemi operativi; in questo caso visualizza un errore di compilazione
        #error "Sistema operativo non supportato"
    #endif
    #endif
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Originariamente inviato da MItaly
    Per includere del codice da compilare a seconda del sistema operativo ...
    Tutto cià a compile time e non a runtime come sembra voglia fare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di M_P
    Registrato dal
    Sep 2006
    Messaggi
    12
    Come dice oregon, io vorrei un comportamento differente a runtime.
    Il software è in esecuzione sul mio pc windows, e per semplificare diciamo che vorrei conoscere il sistema operativo di un pc a me sconosciuto, di cui ho l'indirizzo IP.
    C'è modo di farlo?
    Grazie!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Originariamente inviato da M_P
    ... di cui ho l'indirizzo IP.
    Un attimo ... quindi non il sistema operativo su cui gira il programma ma il sistema operativo di un computer REMOTO, solo tramite l'IP ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di M_P
    Registrato dal
    Sep 2006
    Messaggi
    12
    Originariamente inviato da oregon
    quindi non il sistema operativo su cui gira il programma ma il sistema operativo di un computer REMOTO, solo tramite l'IP ?
    Sì, proprio questo sto cercando!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Se nel computer remoto non c'e' un programma server che "risponde", allora e' impossibile conoscerne il sistema operativo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it L'avatar di M_P
    Registrato dal
    Sep 2006
    Messaggi
    12
    Originariamente inviato da oregon
    Se nel computer remoto non c'e' un programma server che "risponde", allora e' impossibile conoscerne il sistema operativo.
    Non ho nessun programma server che risponde, io per ora do per scontato che sia windows, e eseguendo reg.exe leggo le chiavi che contengono le informazioni sul pc (perché quello che mi interessa per ora è sapere il numero e tipo di processori e attributi simili...).
    Se però eseguo il codice andando ad inserire una macchina unix, il tutto si blocca perché reg.exe non funziona.
    Proprio per questo, vorrei eseguire un controllo preliminare per vedere se posso eseguire il reg.exe.

    Grazie

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,470
    Ma scusa, il reg.exe dove lo esegui?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.