Direccion MAC del PC

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
kotoqu
Aprendiz de Mago
Mensajes: 46
Registrado: 11 Oct 2008, 01:40

Direccion MAC del PC

Mensaje por kotoqu »

Hola amigos gusto en saludarlos.

Les cuento que estoy desarrollando un pequeño programa con autoit y la idea es que funcione exclusivamente para cada ordenador en el que se intala. Se me ocurre la idea de vincularlo a la Direccion fisica o MAC para que no se pueda usar en otro ordenador.
El tema es que no conozco la función para que autoit obtenga la direccion mac del equipo.

Si me pudieran ayudar con esto estaría muy agradecido.
Muchas gracias desde ya.
kotoqu
Aprendiz de Mago
Mensajes: 46
Registrado: 11 Oct 2008, 01:40

Re: Direccion MAC del PC

Mensaje por kotoqu »

Se me ocurrió una sola idea para obtener, comparto el código.

#include <Process.au3>
$rc = _RunDos("getmac > mac.txt") ; Con esto consigo la MAC desde la consola y creo un txt con datos.
$Fline = FileReadLine ("mac.txt",4) ; Con esto consigo la MAC fija.
$MAC = StringLeft ($Fline, 14) ; Recogo los numeros de la MAC.
ClipPut ($MAC) ; Lo guardo en un ClipPut para usarlo luego
Filedelete ("mac.txt") ; Borro el archivo.

If $MAC == "AC-72-89-8B-C8" Then

MsgBox (0,"","MAC Exitosa")

Else
MsgBox (0,"","MAC No Corresponde")

EndIf

; No es muy elegante pero me sacó del apuro.
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Direccion MAC del PC

Mensaje por Chefito »

Hombre, como primer intento no está mal. Lo que pasa que te has complicado mucho la vida y, como tú bien dices, no es elegante.
Puedes hacer esto mismo pero sin tener que generar un fichero de texto. Puedes guardar en una variable todo lo que te devuelve la consola. Mira el parámetro opt_flag de la función run. Mira la opción $STDOUT_CHILD, que junto con la función StdoutRead tienes todo solucionado (mira el ejemplo de esta última en la ayuda).

También puede utilizar apis de win para obtener la mac, o un objeto WMI. Por ejemplo, un código que te hace ésto lo puedes encontrar aquí: http://www.autoitscript.com/forum/topic ... try1023328

Y puedes utilizar una función de este código para sacar el texto resultante del comando getmac (para que hacer lo que ya está hecho :smt002 ):

Código: Seleccionar todo

#include <Constants.au3>

MsgBox(0, "", _RunStdOutRead("getmac"))

Func _RunStdOutRead($sCommand, $sWorkingDirectory = @SystemDir)
     Local $iPID = Run(@ComSpec & ' /c ' & $sCommand, $sWorkingDirectory, @SW_HIDE, $STDOUT_CHILD + $STDERR_CHILD), $sOutput = ''
     While 1
          $sOutput &= StdoutRead($iPID)
          If @error Then
               ExitLoop
          EndIf
     WEnd
     Return $sOutput
EndFunc   ;==>_RunStdOutRead
Tendrías que tratar el texto que te devuelve la función, pero eso es fácil.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
kotoqu
Aprendiz de Mago
Mensajes: 46
Registrado: 11 Oct 2008, 01:40

Re: Direccion MAC del PC

Mensaje por kotoqu »

Gracias Chefito. Eres un TOP.
Responder