Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpPoste[0] = _T("\\\\\\\\lamachine");ne convient pas pour NetServerGetInfo(...) car cette varaible n'est pas en "wide character". Il faut que la chaîne passée en argument de la fonction OSUsed(...) soit ou devienne du "WideChar *".
char serveur[256] = "NomDuServeur\0"; char serveurWideCharStr[256]; MultiByteToWideChar( CP_ACP , 0, serveur, strlen(serveur) + 1 , (WCHAR*)serveurWideChar, 256);
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff //fff RecupInfoPoste fff //fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff // Retourne les informations sur le poste distant (version, serveur ou station, systeme UNIX ou pas) // MSDN help // NetServerGetInfo : http://msdn.microsoft.com/library/en-us/netmgmt/netmgmt/netservergetinfo.asp DECLSPEC BOOL WINAPI RecupInfoPoste(LPSTR pPoste, LPSTR pVersion, LPSTR pTypeOS, LPSTR pOS, LPSTR pErreur) { NET_API_STATUS nStatus = 0; LPSERVER_INFO_101 pBuf = NULL; WORD wszPoste[256]; char sNumMajor [] = " "; char sNumMinor [] = " "; sprintf(pVersion, ""); sprintf(pTypeOS, ""); sprintf(pOS, ""); sprintf(pErreur, ""); if(!pPoste) { return 1; }// fin if // Conversion pPoste au format unsigned short (UNICODE) MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pPoste, strlen(pPoste) + 1, wszPoste, sizeof(wszPoste) / sizeof(wszPoste[0]) ); nStatus = NetServerGetInfo((char *)wszPoste, 101, (LPBYTE *)&pBuf); if(nStatus == NERR_Success) { // Version OS itoa((int)pBuf->sv101_version_major, sNumMajor, 10); itoa((int)pBuf->sv101_version_minor, sNumMinor, 10); sprintf(pVersion, "%s.%s", sNumMajor, sNumMinor); // Serveur ou Station if((pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) || (pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) || (pBuf->sv101_type & SV_TYPE_SERVER_NT)) { sprintf(pTypeOS, "SERVEUR"); } else { sprintf(pTypeOS, "STATION"); }// fin if // UNIX if(pBuf->sv101_type & SV_TYPE_SERVER_UNIX) { sprintf(pOS, "UNIX"); } else { sprintf(pOS, "WINDOWS"); }// fin if } else { // Erreur itoa(nStatus, pErreur, 10); }// fin if if(pBuf != NULL) { NetApiBufferFree(pBuf); }// fin if if(nStatus == NERR_Success) { // Les informations du poste ont ete trouve return 0; } else { // Erreur return 1; }// fin if }// fin fonction RecupInfoPoste