• Advertisement

protection contre la copie des applications

Tout ce qui concerne la version 10 de windev
**Windev est une marque déposée de Pcsoft**

Messagepar Samifred » Mer Déc 26, 2007 12:30 pm

Pour récupérer l'adresse MAC du PC...

Déclarations globales de fenêtre....
Code: Tout sélectionner
sAdresseMAC est une chaîne
sActivation est une chaîne
//Appel de la procédure local
AdresseMAC(sAdresseMAC,sActivation)


Affichage dans la fenêtre.....
Code: Tout sélectionner
//Initialisation de LIB_libellé1
LIB_libellé1 = "Adresse physique . . . . . . . . .: "+sAdresseMAC


Code: Tout sélectionner
//Initialisation de LIB_lbellé2
LIB_libellé2 = "DHCP activé. . . . . . . . . . . : "+sActivation


Procédure local...
Code: Tout sélectionner
PROCEDURE AdresseMAC(sAdrMAC,sActiv)
sConfiguration est une chaîne
sFichierBAT est une chaîne = fRepEnCours()+"\AdrMAC.BAT"
sFichierTXT est une chaîne = fRepEnCours()+"\AdrMAC.TXT"
//On sauve dans le fichier AdresseMAC.TXT les données lus
fSauveTexte(sFichierBAT, "IPCONFIG /ALL " + ">" +sFichierTXT)
//On lance le fichier DOS "AdesseMAC.BAT"
LanceAppli(sFichierBAT, exeIconise, exeBloquant)
//On charge dans la variable sConfiguration le fichier précédemment créé
sConfiguration = fChargeTexte(sFichierTXT)
//On extrait l'adresse MAC de la variable
//(Attention! ne pas modifier les séparateurs, expl.:"Adresse physique . . . . . . . . .:")
sAdrMAC = ExtraitChaîne(sConfiguration, 2, "Adresse physique . . . . . . . . .:")
//Optionnelle
sActiv = ExtraitChaîne(sConfiguration, 2, "DHCP activé. . . . . . . . . . . :")
//On suprimme les fichiers créés
fSupprime(fRepEnCours()+sFichierBAT)
fSupprime(fRepEnCours()+sFichierTXT)

RENVOYER sAdrMAC + sActiv
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3553
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Advertisement

Messagepar lepirate » Mer Déc 26, 2007 3:14 pm

merci .... mais ca marche pas :?

ca me donne pas l'adresse MAC, mais un symbole à la c***
Image
lepirate
Membre Confirmé
 
Messages: 162
Inscription: Mar Déc 25, 2007 8:40 am

Messagepar Samifred » Mer Déc 26, 2007 4:11 pm

lepirate a écrit:merci .... mais ca marche pas :?

ca me donne pas l'adresse MAC, mais un symbole à la c***
Image



Eh bien chez-moi ça fonctionne.... Windows XP Pro.

Image


Qu'as tu comme plateforme ?
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3553
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Messagepar 0ussama » Mer Déc 26, 2007 4:19 pm

même chose ici , ça marche pas

microsoft windows XP professionnel Service Pack 2


Image


EDIT: pendant l'execution le fichier .BAT est crée (1KO) et ne s'efface pas le fichier texte par contre ne l'est pas
Dernière édition par 0ussama le Mer Déc 26, 2007 4:29 pm, édité 1 fois.
Avatar de l’utilisateur
0ussama
Membre
 
Messages: 42
Inscription: Jeu Oct 04, 2007 5:00 am

Messagepar lepirate » Mer Déc 26, 2007 4:25 pm

j'ai win xp pro aussi :S
bizarre que ce ne fonctionne pas :S

tu veux que je t'envoie le projet ?
lepirate
Membre Confirmé
 
Messages: 162
Inscription: Mar Déc 25, 2007 8:40 am

Messagepar Samifred » Mer Déc 26, 2007 4:37 pm

lepirate a écrit:j'ai win xp pro aussi :S
bizarre que ce ne fonctionne pas :S

tu veux que je t'envoie le projet ?



Tu peux m'envoyer ton projet par: http://dl.free.fr
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3553
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Messagepar lepirate » Mer Déc 26, 2007 9:43 pm

voici, c'est téléchargé

http://dl.free.fr/jesmtQ34J/numerodesérie.zip

merci de ton aide
lepirate
Membre Confirmé
 
Messages: 162
Inscription: Mar Déc 25, 2007 8:40 am

Messagepar Samifred » Mer Déc 26, 2007 10:12 pm

Ca fonctionne très bien et sans rien changé à ton code...
C'est sûrement du à la configuration de Windows.



Image
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3553
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Messagepar Samifred » Jeu Déc 27, 2007 9:09 am

Essayes de changer le mode de sauvegarde ">" sliencieux en mode affichage "&" dans la ligne ci-dessous de la procédure.

//Silencieux
fSauveTexte(sFichierBAT, "IPCONFIG /ALL " + ">" +sFichierTXT)

//Affichage de la récupération
fSauveTexte(sFichierBAT, "IPCONFIG /ALL " + "&" +sFichierTXT)

Si les données ont bien été récupérées. (Le bloc-notes de Windows doit s'ouvrir)
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3553
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Messagepar lepirate » Jeu Déc 27, 2007 9:17 am

ok, je vais regarder çà

car effectivement, c'est curieux si ca ne donne pas le meme résultat d'un pc à l'autre ....
lepirate
Membre Confirmé
 
Messages: 162
Inscription: Mar Déc 25, 2007 8:40 am

Messagepar Samifred » Jeu Déc 27, 2007 7:08 pm

Voilà, j'ai retrouvé la procédure pour l'adresse MAC qui va sans doute fonctionner sur vos postes.

Tenez-moi au courant...

Code bouton d'appel de la procédure
Code: Tout sélectionner
sErreur est une chaîne
sAdresseIP est une chaînes = NetAdresseIP()
sRetour est une chaîne
MAC_Adresse (sErreur, sRetour, sAdresseIP)
SI sErreur <> "" ALORS
   Info(sErreur)
SINON
   SAI_Saisie1 = sRetour
FIN


Procédure local

Code: Tout sélectionner
PROCEDURE MAC_Adresse(sErreur, sRetour, sAdresseIP)

SI sAdresseIP ~="" ALORS sAdresseIP = NetAdresseIP()
SI SysVersionWindows(sysVersionPlateForme)<>"NT" ALORS
   sErreur = "Cette fonction n'est pas disponible avec la version de Windows installée."
   RENVOYER ""
FIN
szAdresseIP est une chaîne ASCIIZ sur 255 = sAdresseIP
eAdresseIP est un entier sans signe
eAdresseMAC est un entier sans signe
teAdresseMAC est un tableau fixe de 6 entiers sans signe sur 1 octet
eNbAdrPhys est un entier sans signe
eRet est un entier
c est un entier
// Conversion de l'adresse IP en entier long
eAdresseIP = AppelDLL32("wsock32.dll", "inet_addr", &szAdresseIP)
SI eAdresseIP <> 0 ALORS
   eNbAdrPhys = 6
   //récupération de l'adresse MAC
   eRet = AppelDLL32("iphlpapi.dll", "SendARP", eAdresseIP, 0, &eAdresseMAC, &eNbAdrPhys)
   SI eRet=0 ALORS
      SI eAdresseMAC<>0 ET eNbAdrPhys<>0 ALORS
         Transfert(&teAdresseMAC, &eAdresseMAC, 6)
         POUR c=1 A eNbAdrPhys
            sRetour += NumériqueVersChaîne(teAdresseMAC[c],"02X")+"-"
         FIN
         sRetour = Gauche(sRetour, Taille(sRetour)-1)
         sErreur = ""
      SINON
         sErreur = "La récupération de l'adresse MAC à partir de l'IP "+ sAdresseIP+" a échoué."
      FIN
   SINON
      sErreur = "La récupération de l'adresse MAC à partir de l'IP "+ sAdresseIP+" a échoué."
   FIN
SINON
   sErreur = "L'adresse IP "+sAdresseIP+" n'a pas pu être convertie. Vérifier le format."
FIN

RENVOYER sErreur + sRetour
Cordialement, en espérant que ma collaboration soit profitable. Fred Image
PS: Il est important d'indiquer, dans la question, la version WD utilisée.
Note: Pas de question par MP, merci.
Avatar de l’utilisateur
Samifred
 
Messages: 3553
Inscription: Sam Nov 26, 2005 12:16 pm
Localisation: 128.0.0.0

Messagepar tunidev » Jeu Déc 27, 2007 8:12 pm

bonjour
une autre procedure existe ici
http://windevapi.free.fr/forum1.php?idr ... ture=1#589

Code: Tout sélectionner
SAISIE1=""

ent est composé de

  wszName est une chaîne ASCIIZ de 512
 
  dwIndex est un entier      // index of the interface
  dwType est un entier       // type of interface
  dwMtu est un entier        // max transmission unit
  dwSpeed est un entier      // speed of the interface
  dwPhysAddrLen est un entier      // length of physical address
  bPhysAddr est une chaîne ASCIIZ de 8  // physical address of adapter
 
  dwAdminStatus est un entier      // administrative status
  dwOperStatus est un entier       // operational status
  dwLastChange est un entier       // last time operational status changed
  dwInOctets est un entier         // octets received
  dwInUcastPkts est un entier      // unicast packets received
  dwInNUcastPkts est un entier     // non-unicast packets received
  dwInDiscards est un entier       // received packets discarded
  dwInErrors est un entier         // erroneous packets received
  dwInUnknownProtos est un entier    // unknown protocol packets received
  dwOutOctets est un entier        // octets sent
  dwOutUcastPkts est un entier     // unicast packets sent
  dwOutNUcastPkts est un entier    // non-unicast packets sent
  dwOutDiscards est un entier      // outgoing packets discarded
  dwOutErrors est un entier        // erroneous packets sent
  dwOutQLen est un entier          // output queue length
  dwDescrLen est un entier         // length of bDescr member
 
  bDescr est une chaîne ASCIIZ de 256  // interface description

FIN

ch est une chaîne=""
ind est un entier
tail est un entier
name est une chaîne ASCIIZ de 256
diment est un entier = Dimension(ent)

res est un entier 
res = AppelDLL32("Iphlpapi","GetIfTable",0,&tail,0)

SI tail>0 ALORS

  hmem est un entier   = AppelDLL32("kernel32","GlobalAlloc",0x40,tail)

  res  = AppelDLL32("Iphlpapi","GetIfTable",hmem,&tail,0)

  adr est un entier   = hmem + 4
  nb est un entier 

  AppelDLL32("kernel32","RtlMoveMemory",&nb,hmem,4)
  POUR ind = 1 A nb
    AppelDLL32("kernel32","RtlZeroMemory",&ent,diment)
    AppelDLL32("kernel32","RtlMoveMemory",&ent,adr,diment)

    SAISIE1 += "Index : "+ent.dwIndex + RC
    SAISIE1 += "Type : "+ent.dwType + RC
    SAISIE1 += "Speed : "+ent.dwSpeed + RC
    SAISIE1 += "Mtu : "+ent.dwMtu + RC
    SAISIE1 += "Adr len : "+ent.dwPhysAddrLen + RC
    SI ent.dwPhysAddrLen>0 ALORS
      i1 est un entier
      in1 est un entier 
      ch=""
      POUR i1 = 1 A ent.dwPhysAddrLen
        AppelDLL32("kernel32","RtlMoveMemory",&in1 , &ent.bPhysAddr + i1 - 1 , 1 )
        ch += NumériqueVersChaine(in1,"02X")
        SI i1<ent.dwPhysAddrLen ALORS
          ch+="-"
        FIN
      FIN
    FIN
    SAISIE1 += "Mac :  " + ch +RC
    SAISIE1 += "Status : "+ent.dwAdminStatus + RC
    SAISIE1 += "Operstatus : "+ent.dwOperStatus + RC
    SAISIE1 += "LastChange : "+ent.dwLastChange + RC
    SAISIE1 += "In octets : "+ent.dwInOctets + RC
    SAISIE1 += "In ucast : "+ent.dwInUcastPkts + RC
    SAISIE1 += "In NU Cast : "+ent.dwInNUcastPkts + RC
    SAISIE1 += "In Discards : "+ent.dwInDiscards + RC
    SAISIE1 += "In Error : "+ent.dwInErrors + RC
    SAISIE1 += "In Unknow : "+ent.dwInUnknownProtos + RC
    SAISIE1 += "Out Octets : "+ent.dwOutOctets + RC
    SAISIE1 += "Out Ucast : "+ent.dwOutUcastPkts + RC
    SAISIE1 += "Out NU Cast : "+ent.dwOutNUcastPkts + RC
    SAISIE1 += "Out Discards : "+ent.dwOutDiscards + RC
    SAISIE1 += "Out Errors : "+ent.dwOutErrors + RC
    SAISIE1 += "Out Qlen : "+ent.dwOutQLen + RC
    SAISIE1 += "Desciption : "+ent.bDescr + RC+RC

    adr += diment
  FIN

  AppelDLL32("kernel32","GlobalFree",hmem)
FIN
Avatar de l’utilisateur
tunidev
Site Admin
 
Messages: 1318
Inscription: Mar Sep 02, 2003 1:23 pm

Messagepar lepirate » Jeu Déc 27, 2007 11:01 pm

ok samifred

pour le moment je n'ai que testé ton dernier code, et ca marche sur mon PC ^^
cool, merci
lepirate
Membre Confirmé
 
Messages: 162
Inscription: Mar Déc 25, 2007 8:40 am

Messagepar lepirate » Ven Jan 11, 2008 7:02 pm

je reviens vers vous.....
bon le code marche tres bien mais ...

est il vrai qu'il est possible de modifier son adresse MAC ?
car voici une info embarrassante.... !

http://www.laboratoire-microsoft.org/t/16988/
lepirate
Membre Confirmé
 
Messages: 162
Inscription: Mar Déc 25, 2007 8:40 am

Messagepar tunidev » Ven Jan 11, 2008 8:10 pm

Avatar de l’utilisateur
tunidev
Site Admin
 
Messages: 1318
Inscription: Mar Sep 02, 2003 1:23 pm

Précédente


  • Advertisement

Retourner vers Forum Windev 10

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités