Você pode usar o id do HD da máquina, mas mesmo assim não tem como controlar, pois o usuário pode trocar o HD também!
O jeito mais correto é por identificação de usuário, usando e-mail ou cpf por exemplo que são únicos e distintos!
javaflex
Por qual motivo quer fazer isso?
rodriguesabner
Vc pode fazer algo mais simples, se o número de usuário/conta for maior que 1, não permitir criar novos usuários/contas.
j-menezes
Tem esse projeto multi plataforma
importjavafx.application.Application;importjavafx.event.ActionEvent;importjavafx.event.EventHandler;importjavafx.scene.Scene;importjavafx.scene.control.Button;importjavafx.scene.layout.StackPane;importjavafx.stage.Stage;importoshi.SystemInfo;importoshi.hardware.CentralProcessor;importoshi.hardware.ComputerSystem;importoshi.hardware.HardwareAbstractionLayer;importoshi.software.os.OperatingSystem;publicclassHardwaresextendsApplication{@Overridepublicvoidstart(StageprimaryStage){Buttonbtn=newButton();btn.setText("Hardware");btn.setOnAction(newEventHandler<ActionEvent>(){@Overridepublicvoidhandle(ActionEventevent){Stringidentifier=generateLicenseKey();System.out.println(identifier);}});StackPaneroot=newStackPane();root.getChildren().add(btn);Scenescene=newScene(root,300,250);primaryStage.setTitle("Hardware");primaryStage.setScene(scene);primaryStage.show();}staticStringgenerateLicenseKey(){SystemInfosystemInfo=newSystemInfo();OperatingSystemoperatingSystem=systemInfo.getOperatingSystem();HardwareAbstractionLayerhardwareAbstractionLayer=systemInfo.getHardware();CentralProcessorcentralProcessor=hardwareAbstractionLayer.getProcessor();ComputerSystemcomputerSystem=hardwareAbstractionLayer.getComputerSystem();Stringvendor=operatingSystem.getManufacturer();StringprocessorSerialNumber=computerSystem.getSerialNumber();StringprocessorIdentifier=centralProcessor.getIdentifier();intprocessors=centralProcessor.getLogicalProcessorCount();Stringdelimiter="#";return"SO="+vendor+"\n"+"delimiter="+delimiter+"\n"+"processorSerialNumber="+processorSerialNumber+"\n"+"delimiter="+delimiter+"\n"+"processorIdentifier="+processorIdentifier+"\n"+"delimiter="+delimiter+"\n"+"processors="+processors+"\n"+"Hd0 de Instalação="+hardwareAbstractionLayer.getDiskStores()[0].getSerial();}/** * @param args the command line arguments */publicstaticvoidmain(String[]args){launch(args);}}
Parece que a intel e amd por questões processuais não colocam mais o numero de serie na bios, mas outros fabricantes podem estarem colocando, todavia você pode usar o numero de serie da HD que foi instalado o software.
j-menezes
O problema e’ quando copia o software com a configuração dele na maquina atual, e tambem dependendo do programa vc pode querer ter mais de 1 usuario.
j-menezes
Verdade, nada e’ 100% seguro.Mas quando for instalar o software ele pode obter o numero da HD que será instalado e então com esse numero você cria um arquivo criptografado e salva na configuração, então quando o soft for rodar ele vai verificar se a descriptografia bate com o numero da HD. Se for mudar de HD tera’ que instalar denovo.
E’ claro que nesse caso quem fornece o arquivo criptografado é o dono do software na hora da instalação, seja com ele presente ou atraves da internet.