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.
Direccion MAC del PC
Re: Direccion MAC del PC
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.
#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.
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Direccion MAC del PC
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 ):
Tendrías que tratar el texto que te devuelve la función, pero eso es fácil.
Saludos.
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 ):
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
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 ;).
Re: Direccion MAC del PC
Gracias Chefito. Eres un TOP.