domingo, 8 de maio de 2011

Retornando o Número de Série em C - Windows

Boa,

Precisei pegar o número de série para uma rotina de segurança no sistema em Java que estou desenvolvendo. Mas, o Java não consegue fazer isso "ainda". A solução é criar um programa externo ao Java em uma linguagem CAPAZ de fazer isso (hehehehe - malvadeza), é aí que entra o master C.

Obrigado Assuero, obrigado Google... chegamos à solução:


#include iostream.h
#include stdio.h
#include windows.h


DWORD retornaID(char *drive){
      BOOL fResult;
      char *pszDriveName;
    
      char szVolName[MAX_PATH];
      char szFileSysName[80];
      DWORD dwSerialNumber;
      DWORD dwMaxComponentLen;
      DWORD dwFileSysFlags;
    
      pszDriveName = drive;
    
      fResult = GetVolumeInformation(pszDriveName, szVolName, MAX_PATH,
      &dwSerialNumber, &dwMaxComponentLen,
      &dwFileSysFlags, szFileSysName, 80);
      
      return dwSerialNumber;
}


int main (int argc, char **argv)
{
    char *drive = "c:\\";
    printf("ID: %#ld\n", retornaID(drive));
    system("PAUSE"); 
}

Forte abraço,

0 comentários:

Postar um comentário