marionsname Posté(e) le 16 décembre 2006 Posté(e) le 16 décembre 2006 Bonjour à tous, Encore la question sur le numéro de série du matériel (disque dur, carte graphique...)en cherchant dans le forum d'autodesk j'ai trouvé ceci (ancien) et rien d'autre http:// http://discussion.autodesk.com/thread.jspa?messageID=1228508 donc c'est une question qui reste posée. les réponses qui ont été fournies et nottement VxGetDriveInfos que vous pouvez retrouver ici http://www.menziengineering.ch/ donne le numéro de série du volume c: ou d: (pour c: différent de d: quand il y a plusieurs partitions) qui peut etre changé à chaque repartition ou chaque formatage, il peut même être changé par l'utilisateur si je crois bien certains dire. j'ai également cherché dans les forums de Windows pour voir si dans la base de registre, il y a certaines informations sur les numéros de série c'est à dire que windows peut inscrire au moment de l'installation, mais j'ai pas trouvé de réponses. La plupart pensent que ces informations ne figurent pas dans le registre. Moi je pense que si certains softs comme Aida32 peut extraire ces informations, pourquoi n'y aurait-il pas un moyen en lisp de le faire. moi je ne maitrise bien le lisp, mais les amis chvronnés, et il y en a pas mal ici sur ce forum, peuvent bien faire un effort. c'est une question qui restera posée en 2007.Meilleurs voeux pour 2007 à tous
Patrick_35 Posté(e) le 16 décembre 2006 Posté(e) le 16 décembre 2006 Moi, je veux bien. Encore faut-il savoir quoi rechercher ?J'ai regardé du coté des activex et on peux ressortir plusieurs infos, sur la mémoire, le bios, la carte vido et j'en passe.Mais je n'ai rien trouvé à part l'adresse IP qui permette d'identifier un ordi. Je sais que Microsoft à un moment donné a mis un numéro de serie fixe sur le processeur afin de pouvoir l'identifier à coup sur à distance, mais cela a fait un tel scandale qu'il a du abandonner (a moins qu'il n'ai continué, mais là on est dans le secret des dieux ;) ) Il existe plusieurs solutions efficace pour protéger un logiciel. Reste à savoir ce que tu veux exactement @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
marionsname Posté(e) le 16 décembre 2006 Auteur Posté(e) le 16 décembre 2006 Merci Patrick_35 En fait tout le besoin réside dont le fait de n'exécuter le lisp sur une machine que si l'on le droit de le faire moyennat un numéro de certification qui dépendrait entre autre d'un numéro de série unique, ou d'un identifiant unique (un chiffre hexadécimal est souhaitable pour des raisons de calcul).Je sais qu'il y a plusieurs façons de protéger un lisp ou une application, comme le verouillage matériel (dongle), mais on va pas faire de dongle pour une application lisp dont le coût est moins cher que le dongle lui même. Pour l'adresse IP c'est pas sûr car à ma connaissance (un peu limitée dans les reseaux), l'adresse IP n'est pas unique et cela depend de plusieurs paramètres, en plus de celà reste le problème que j'ai évoqué l'autre fois celui du cas ou on n'a pas de connexion INTERNET. J'ai testé ton code sur une machine qui n'est pas connectée, ça ne donne rien. Les infos dont tu parlais ne contiennet pas quelque chose comme un numéro de série par exemple celles relatives au bios? Merci encore une fois
marionsname Posté(e) le 16 décembre 2006 Auteur Posté(e) le 16 décembre 2006 Encore moi, juste une précision Patrick_35 va voir ici http:// http://www.vbfrance.com/codes/INFORMATION-DISQUE-DUR_27883.aspxet d'ailleurs sur le site de vbfrance il y a bien d'autres choses, si toutefois on pouvait connecter ça avec le lisp. Bonne continuation
Patrick_35 Posté(e) le 17 décembre 2006 Posté(e) le 17 décembre 2006 SalutCe que j'ai trouvé vite fait sur le net et traduit en vlisp (de sources en vb)C'est juste pour te monter ce que l'on peut faire en vlisp via les activex @+ (defun c:infos (/ item meth1 meth2 wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_BIOS")) (princ "\nInformations BIOS") (vlax-for item meth2 (princ (strcat "\nFabriquant : " (vlax-get item 'Manufacturer))) (princ (strcat "\nVersion : " (vlax-get item 'SMBIOSBIOSVersion))) ; (princ (strcat "\nN° de Serie : " (vlax-get item 'SerialNumber))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_Processor")) (princ "\nInformations Processeur") (vlax-for item meth2 (princ (strcat "\nProcesseur : " (vlax-get item 'Name))) ; (princ (strcat "\nFréquence : " (vlax-get item 'MaxClockSpeed))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_VideoController")) (princ "\nInformations Carte Graphique") (vlax-for item meth2 (princ (strcat "\nNom : " (vlax-get item 'Caption))) ; (princ (strcat "\nRAM : " (vlax-get item 'AdapterRAM))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_SoundDevice")) (princ "\nInformations Carte Son") (vlax-for item meth2 (princ (strcat "\nNom : " (vlax-get item 'Name))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_CDROMDrive")) (princ "\nInformations CDROM") (vlax-for item meth2 (princ (strcat "\nNom : " (vlax-get item 'Name))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_OperatingSystem")) (princ "\nInformations OS") (vlax-for item meth2 (princ (strcat "\nNom : " (vlax-get item 'Caption))) (princ (strcat "\nRépertoire Windows : " (vlax-get item 'WindowsDirectory))) (princ (strcat "\nRépertoire Système : " (vlax-get item 'SystemDirectory))) ; (princ (strcat "\nService Pack : " (vlax-get item 'ServicePackMajorVersion) "." (vlax-get item 'ServicePackMinorVersion))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_ComputerSystem")) (princ "\nInformations PC") (vlax-for item meth2 (princ (strcat "\nFabriquant : " (vlax-get item 'Manufacturer))) (princ (strcat "\nModèle : " (vlax-get item 'Model))) (princ (strcat "\nNom : " (vlax-get item 'Name))) (princ (strcat "\nUtilisateur Courant : " (vlax-get item 'UserName))) (princ (strcat "\nDomaine : " (vlax-get item 'Domain))) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_PhysicalMemory")) (princ "\nInformations RAM") (vlax-for item meth2 (princ (strcat "\nRAM : " (itoa (/ (atoi (vlax-get item 'Capacity)) 1048576)) "Mo")) ) (setq meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_DiskDrive")) (princ "\nInformations Disque Dur") (vlax-for item meth2 (princ (strcat "\nHD : " (vlax-get item 'Caption))) (princ (strcat "\nTaille : " (itoa (/ (atoi (vlax-get item 'Size)) 1048576)) "Mo")) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (princ) ) ps : si tu le souhaites, je vais rechercher le numéro de série d'un DD [Edité le 17/12/2006 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
BIM G CO Posté(e) le 18 décembre 2006 Posté(e) le 18 décembre 2006 bah ton truc ne me vois que mon lecteur ZIP et pas mon disuqe dur! Informations BIOSFabriquant : Hewlett-PackardVersion : 786D7 v01.03Informations ProcesseurProcesseur : Intel® Core2 CPU 6400 @ 2.13GHzProcesseur : Intel® Core2 CPU 6400 @ 2.13GHzInformations Carte GraphiqueNom : NVIDIA Quadro FX 1500Informations Carte SonNom : Realtek High Definition AudioInformations CDROMNom : HL-DT-ST DVD+-RW GSA-H21LInformations OSNom : Microsoft Windows XP ProfessionnelRépertoire Windows : C:\WINDOWSRépertoire Système : C:\WINDOWS\system32Informations PCFabriquant : Hewlett-PackardModèle : HP xw4400 WorkstationNom : [Censuré] :casstet: Utilisateur Courant : [Censuré] :casstet: Domaine : [Censuré] :casstet: Informations RAMRAM : 1024MoRAM : 1024MoRAM : 1MoInformations Disque DurHD : IOMEGA ZIP 100; erreur: type d'argument incorrect: stringp nil Ce n'est juste que pour t'embêter (le lecteur est vide donc incapable de déterminer la taille) :D [Edité le 18/12/2006 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Patrick_35 Posté(e) le 18 décembre 2006 Posté(e) le 18 décembre 2006 Je n'ai pas poussé les tests et de plus, j'ai mis un ; devant certains paramètres qui ne passent pas sur certain pc et ce lisp a été écrit en un seul jet et suivant une source en vb sans de réelles recherches de ma partC’est juste pour montrer la voie de ce que l’on peut récupérer comme info sur le pc, mais si on prend le temps et que l’on continue de chercher, il y a sûrement d’autres infos ps : en ce qui concerne la taille du disque dur, chez moi, l'information est érroné nb : Et ceux qui veulent contribuer à étoffer le lisp, il n'y a plus qu'a @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
marionsname Posté(e) le 18 décembre 2006 Auteur Posté(e) le 18 décembre 2006 Patrick_35, est-ce que le code que tu as traduit est celui qu'on retrouve ici http://www.vbfrance.com/codes/INFORMATION-DISQUE-DUR_27883.aspx ? si c'est le cas et à lire les répliques sur le forum de vbfrance, ce code ne marche pas sur tous les types de disques durs. sur le mien d'ailleurs (et j'ai un serial ata), il ne detecte pas de disque dur. Merci pour l'effort de traduction @+
Patrick_35 Posté(e) le 18 décembre 2006 Posté(e) le 18 décembre 2006 Non, mais d'une autre source sur ce même site (fais une recherche avec WbemScripting.SWbemLocator+ExecQuery) J'ai été plus loin avec les DD @+ (defun c:hd(/ item meth1 meth2 wmi) (defun lister(val / it) (vlax-for it val (princ (strcat "\n" (vlax-get it 'name) " : ")) (if (vlax-get it 'value) (princ (vlax-get it 'value)) (princ "Nil") ) ) ) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_DiskDrive")) (vlax-for item meth2 ; (lister (vlax-get item 'Methods_)) ; (lister (vlax-get item 'Path_)) (lister (vlax-get item 'Properties_)) (lister (vlax-get item 'Qualifiers_)) ; (lister (vlax-get item 'Security)) ; (lister (vlax-get item 'SystemProperties_)) ) (princ) ) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
marionsname Posté(e) le 19 décembre 2006 Auteur Posté(e) le 19 décembre 2006 et bien,ça se corseentestant sur une machine qui n'est pas la mienne ça a donné ceci : Availability : NilBytesPerSector : 512Capabilities : (3 4)CapabilityDescriptions : NilCaption : WDC WD400BB-23JHA1CompressionMethod : NilConfigManagerErrorCode : 0ConfigManagerUserConfig : 0CreationClassName : Win32_DiskDriveDefaultBlockSize : NilDescription : Lecteur de disqueDeviceID : \\.\PHYSICALDRIVE0ErrorCleared : NilErrorDescription : NilErrorMethodology : NilIndex : 0InstallDate : NilInterfaceType : IDELastErrorCode : NilManufacturer : (Lecteurs de disque standard)MaxBlockSize : NilMaxMediaSize : NilMediaLoaded : -1MediaType : Fixed hard disk mediaMinBlockSize : NilModel : WDC WD400BB-23JHA1Name : \\.\PHYSICALDRIVE0NeedsCleaning : NilNumberOfMediaSupported : NilPartitions : 3PNPDeviceID : IDE\DISKWDC_WD400BB-23JHA1______________________06.01C06\5&99CB4D6&0&0.0.0PowerManagementCapabilities : NilPowerManagementSupported : NilSCSIBus : 0SCSILogicalUnit : 0SCSIPort : 0SCSITargetId : 0SectorsPerTrack : 63Signature : -858927923Size : 40015987200Status : OKStatusInfo : NilSystemCreationClassName : Win32_ComputerSystemSystemName : INSTITUT-1WGUMFTotalCylinders : 4865TotalHeads : 255TotalSectors : 78156225TotalTracks : 1240575TracksPerCylinder : 255dynamic : -1Locale : 1033provider : CIMWin32UUID : {8502C4B2-5FBB-11D2-AAC1-006008C78BC7}Availability : NilBytesPerSector : 512Capabilities : (3 4 7)CapabilityDescriptions : NilCaption : TS128MJFLASHA USB DeviceCompressionMethod : NilConfigManagerErrorCode : 0ConfigManagerUserConfig : 0CreationClassName : Win32_DiskDriveDefaultBlockSize : NilDescription : Lecteur de disqueDeviceID : \\.\PHYSICALDRIVE1ErrorCleared : NilErrorDescription : NilErrorMethodology : NilIndex : 1InstallDate : NilInterfaceType : USBLastErrorCode : NilManufacturer : (Lecteurs de disque standard)MaxBlockSize : NilMaxMediaSize : NilMediaLoaded : -1MediaType : Removable media other than floppyMinBlockSize : NilModel : TS128MJFLASHA USB DeviceName : \\.\PHYSICALDRIVE1NeedsCleaning : NilNumberOfMediaSupported : NilPartitions : 1PNPDeviceID : USBSTOR\DISK&VEN_&PROD_TS128MJFLASHA&REV_1.00\6&14D8C3D2&0PowerManagementCapabilities : NilPowerManagementSupported : NilSCSIBus : NilSCSILogicalUnit : NilSCSIPort : NilSCSITargetId : NilSectorsPerTrack : 63Signature : -399834890Size : 123379200Status : OKStatusInfo : NilSystemCreationClassName : Win32_ComputerSystemSystemName : INSTITUT-1WGUMFTotalCylinders : 15TotalHeads : 255TotalSectors : 240975TotalTracks : 3825TracksPerCylinder : 255dynamic : -1Locale : 1033provider : CIMWin32UUID : {8502C4B2-5FBB-11D2-AAC1-006008C78BC7} alors le numéro de série c'est UUID ou c'est le modèle.je vais tester sur mon serial ata at voir. en tout cas Bravo
marionsname Posté(e) le 19 décembre 2006 Auteur Posté(e) le 19 décembre 2006 En comparant avec le resultat qui donne http://www.vbfrance.com/codes/INFORMATION-DISQUE-DUR_27883.aspx ce n'est pas la même chose! enfin juste une remarque.avec le code vb ça donne comme résultat : identifiant du modèle : WDC WD400BB-22JHA1numéro de série : WD-WCAMC1783993 @+
Patrick_35 Posté(e) le 19 décembre 2006 Posté(e) le 19 décembre 2006 J'ai essayé le lien et il ne trouve pas mon disque dur :( Pour le lisp, je l'ai testé sur deux pc identique et j'ai exactement le même résultatA mon avis, ce n'est pas dans le numéro de serie du dd qu'il faut chercher à cause des sérial ATA Tes deux disques durModel : WDC WD400BB-23JHA1PNPDeviceID:IDE\DISKWDC_WD400BB-23JHA1______________________06.01C06\5&99CB4D6&0&0.0.0Model : TS128MJFLASHA USB DevicePNPDeviceID:USBSTOR\DISK&VEN_&PROD_TS128MJFLASHA&REV_1.00\6&14D8C3D2&0 @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
BIM G CO Posté(e) le 19 décembre 2006 Posté(e) le 19 décembre 2006 ah oué il a même vu : MediaType : Fixed hard disk mediaModel : ST3250624AS....Size : 250056737280 tout comme Caption : Generic MMC/SD USB Device etCaption : Generic MS USB Device oui oui oui :D [Edité le 19/12/2006 par Maximilien] Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
Patrick_35 Posté(e) le 19 décembre 2006 Posté(e) le 19 décembre 2006 Allez, de quoi faire l'inventaire du pc @+ (defun c:info(/ item meth1 meth2 process wmi) (defun lister(val / it) (vlax-for it val (princ (strcat "\n" (vlax-get it 'name) " : ")) (if (vlax-get it 'value) (princ (vlax-get it 'value)) (princ "Nil") ) ) ) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil)) (foreach process (list "BIOS" "Processor" "VideoController" "SoundDevice" "CDROMDrive" "OperatingSystem" "ComputerSystem" "PhysicalMemory" "DiskDrive") (setq meth2 (vlax-invoke meth1 'ExecQuery (strcat "Select * from Win32_" Process))) (princ (strcat "\nCaractéristiques " process " :")) (vlax-for item meth2 (lister (vlax-get item 'Properties_)) (lister (vlax-get item 'Qualifiers_)) (getkword "\nAppuyez sur sur entrée pour continuer...") ) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (princ) ) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Patrick_35 Posté(e) le 19 décembre 2006 Posté(e) le 19 décembre 2006 SalutJe crois que j'ai trouvé ton numéro unique. C'est le numéro de serie du biosMoi qui pensais que rien ne pouvais identifier un pc sur le web, ben avec ce numéro, c'est raté @+ (defun c:serie(/ item meth1 meth2 ser wmi) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_BIOS")) (vlax-for item meth2 (setq ser (vlax-get item 'SerialNumber)) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) ser ) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 19 décembre 2006 Posté(e) le 19 décembre 2006 Ben dit donc!....Mais il ne me donne pas mon âge, c'est normal??? :P Pour info, tes 2 dernières propositions fonctionnent même sur une 2000, au contraire des précédentes. Je ne sais pas si je m'en servirais, mais en tout cas bravo pour tes recherches avec l'activeX. C'est quand même puissant cette bestiole, même si c'est pas toujours compatible entre toutes les versions 200x. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Patrick_35 Posté(e) le 19 décembre 2006 Posté(e) le 19 décembre 2006 Mais il ne me donne pas mon âge, c'est normal??? :P Pour cela, il faut se brancher sur un port USBLa tension doit être de 3 ou 4V, donc pas de danger ;) au contraire des précédentes. Merci de me faire savoir. Ca a parfaitement fonctionné sur ma 2005 :exclam: C'est quand même puissant cette bestiole, même si c'est pas toujours compatible entre toutes les versions 200x. Et ce qui est terrible, c'est que cela peut fonctionner quelque soit le langage utilisé (java, c++, vbs, etc...)Et encore, je pense que l'on ne voit que la surface des choses @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
marionsname Posté(e) le 20 décembre 2006 Auteur Posté(e) le 20 décembre 2006 Bonjour Patrick_35, Merci pour le code du bios. Je l'ai testé chez moi, ça donne une chaine vide. Est-ce que c'est à cause de mon serial data? Merci
Patrick_35 Posté(e) le 20 décembre 2006 Posté(e) le 20 décembre 2006 Je ne sais pas te répondre :( . Ca fonctionne chez moi et j'ai testé sur deux pc identique et ça m'a donné deux numéros différents On tourne sur xp pro et ça vient peut-être de la ou plus simplement du constructeur qui n’a pas renseigné cette partie :casstet: @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
BIM G CO Posté(e) le 20 décembre 2006 Posté(e) le 20 décembre 2006 sur mon HP xw4400 c'est exactement le numéro de série qui est indiqué sur l'étiquette! super pour faire le relevé des machines installés :D Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office PlaquetteDeplianteMars2024.pdf
marionsname Posté(e) le 20 décembre 2006 Auteur Posté(e) le 20 décembre 2006 Merci Patrick_35, Comme tu dis pour le série du bios ça vient peut être du constructeur, par contre pour windows xp pro je ne comprends pas puisqu'il s'agit du bios. A priori il n'ya pas de rapports avec windows ou tout autre système d'exploitation ;) J'ai testé sur mon pc du bureau ça marche nickel, je vais encore essayer de tester sur d'autres machines au cas où ;) J'ai deux questions :1- est-ce que ce numéro de série est toujours un chiffre exadécimal ?2- est-ce qu'il est une chaine ? si oui y at-il un moyen pour traduire une chaine qui peut contenir des lettres, chiffres, autres caractères en un entier en convertissant toutes les lettres et les caractères autres que les chiffres en des entiers (en utilisant par exemple le code asci ou simplement en mettan des chiffres à la place des lettres et autres acaratères). par exemple si la chaine est AC12365214-D41/15 on peut assigner àA:2C:9D:13-:0Autres caractères : 4 ainsi ma chine devient [surligneur] 2[/surligneur] [surligneur] 9[/surligneur]12365214 [surligneur] 0[/surligneur] [surligneur] 13[/surligneur]41 [surligneur] 4[/surligneur]15 Autre question pour le code d'info du dique dur, l'information est-ce qu'elle est une liste ? comment extraire uniquement le numéro de série? Merci beaucoup Patrick_35, tu es vraiment fort en lisp, chapeau
Patrick_35 Posté(e) le 20 décembre 2006 Posté(e) le 20 décembre 2006 je ne comprends pas puisqu'il s'agit du bios. Heu oui, parfois je ne réflechit pas plus loin que le bout de ma souris est-ce que ce numéro de série est toujours un chiffre exadécimal ? Apparement est-ce qu'il est une chaine Pas sur les deux postes que j'ai testé ou ce n'est qu'un numéro si oui Je ne vois pas la finalité ? Si tu as un numéro unique, qu'importe de la manière qu'il soit construit du moment que tu le connais et que tu t'en sers tel quel comment extraire uniquement le numéro de série? Je n'ai pas la solution. Le lisp parcours tous les paramètres qu'il trouve et donne on nom ainsi que sa valeur. Donc si le numéro de série n'est pas dedans, tu ne le verras pas Je viens de tester sur mon pc perso et idem, pas de numéro de serie sur le bios. Par contre, j'en ai trouvé un autre sur l'OperatingSystem (defun c:serie2(/ item meth1 meth2 ser wmi) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_OperatingSystem")) (vlax-for item meth2 (setq ser (vlax-get item 'SerialNumber)) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) ser ) y at-il un moyen pour traduire une chaine qui peut contenir des lettres, chiffres, autres caractères en un entier en convertissant toutes les lettres et les caractères autres que les chiffres en des entiers J'ai ces deux vieilles routines pour faire une conversion hexa en decimal et inversement (defun hexdec (nb / r i s) (if (= (type nb) 'INT) (setq nb (itoa nb)) ) (setq r 0 i 0) (while (and (= (type nb) 'STR) (< i (strlen nb))) (setq i (1+ i)) (setq s (strcase (substr nb i 1 ))) (setq r (+ (lsh r 4) (- (ascii s) (if (<= s "9") 48 55 ))) ) ) ) (defun dechex (nb / r i) (setq r "") (while (and (= (type nb) 'INT) (> nb 0)) (setq i (rem nb 16)) (setq nb (lsh nb -4)) (setq r (strcat (if (< i 10) (itoa i) (chr (+ 55 i )) ) r) ) ) ) Merci beaucoup Patrick_35, tu es vraiment fort en lisp, chapeauCe n'est rien et merci pour le compliment @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
marionsname Posté(e) le 21 décembre 2006 Auteur Posté(e) le 21 décembre 2006 Salut Patrick_35, Je ne vois pas la finalité ? Si tu as un numéro unique, qu'importe de la manière qu'il soit construit du moment que tu le connais et que tu t'en sers tel quel en fait je fais quelques opérations mathématiques la dessus pour en ressortir un autre numéro c'est pourquoi j'ai besoin d'un entier. si j'étais sûr que c'est un hexadécimal là pas de problème, j'ai déja un lisp pour cette conversion (merci pour les deux lisps que tu as posté). Par contre si c'est une chaine là je peux pas faire les dits calculs. c'est pourquoi j'ai besoin d'un lisp pour convertir une chaine en entier. Je viens de tester sur mon pc perso et idem, pas de numéro de serie sur le bios. Par contre, j'en ai trouvé un autre sur l'OperatingSystem reste à verifier si c'est unique et si ça ne change pas à chaque réinstallation de l'OS. Merci pour ta générosité en temps et en effort. @+
marionsname Posté(e) le 21 décembre 2006 Auteur Posté(e) le 21 décembre 2006 si je rajoute un if ou cas où le numéro de série du bios serait vide est-ce que ça ferait l'affaire. je ne sais pas si ça marchera comme ça? Enfin je veux dire coté gestion d'erreurs. Par exemple si ce numéro donne " " (3espaces) ou "-" qu'est-ce que ça ferait? (defun c:serie(/ item meth1 meth2 ser wmi) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_BIOS")) (vlax-for item meth2 (setq ser (vlax-get item 'SerialNumber)) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) [surligneur] (if (or (= ser nil) (ser "")) (setq ser ser) (setq ser "3AS21524") )[/surligneur]ser ) Merci
marionsname Posté(e) le 21 décembre 2006 Auteur Posté(e) le 21 décembre 2006 oups j'ai inversé (defun c:serie(/ item meth1 meth2 ser wmi) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (vlax-invoke WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "Select * from Win32_BIOS")) (vlax-for item meth2 (setq ser (vlax-get item 'SerialNumber)) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) [surligneur] (if (or (= ser nil) (ser "")) (setq ser "3AS21524") (setq ser ser) )[/surligneur]ser ) ça se voit que je suis fort en lisp! excuses
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant