Ayuda con Macro (Porfa)

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Ayuda con Macro (Porfa)

Mensaje por melvinhn »

Mi pregunta es la siguiente
@ComputerName = da el nombre de la compu

He buscado una macro que me de el modelo de la pc

haciendo un .Bat con el siguiente codigo lo logro pero quisiera saber si en autoit hay alguna manera

Esto contiene dentro el archivo.bat
wmic csproduct get name
pause
exit

Muchas gracias por la ayuda brindada
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Ayuda con Macro (Porfa)

Mensaje por Ximorro »

Que yo sepa no hay macros para sacar esa información.
O la sacas de ese comando (que ahora me entero que existe) mandando el resultado a un archivo y leyéndolo desde AutoIt o por ejemplo lo puedes leer del registro, yo lo he encontrado aquí:
MsgBox(0, "Modelo", RegRead("HKLM\SOFTWARE\Microsoft\PCHealth\HelpSvc\OEMInfo", "Model"))

Pero otros datos que da wmic no los he visto, así que depende de lo que se busque se podrá utilizar el registro o tendrás que pasar por el shell...
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Re: Ayuda con Macro (Porfa)

Mensaje por melvinhn »

Pero en esa ruta no la he encontrado ya que no existe en el regedit
tambien en ejecutar te presenta esta opcion detallada
ejecutar>dxdiag
te da una informacion detallada de tu pc.
Avatar de Usuario
melvinhn
Hacker del Foro
Mensajes: 75
Registrado: 16 Jul 2011, 22:14
Ubicación: Honduras, Cortes, Puerto Cortes, Col Miraflores
Contactar:

Re: Ayuda con Macro (Porfa)

Mensaje por melvinhn »

Bueno en alguna pc esta ruta no existe
MsgBox(0, "Modelo", RegRead("HKLM\SOFTWARE\Microsoft\PCHealth\HelpSvc\OEMInfo", "Model"))
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Ayuda con Macro (Porfa)

Mensaje por Ximorro »

Hum, entonces no es un método seguro.

Pues mejor usa directamente wmic, veo en Microsoft Technet que está desde Windows XP, así que si no lo tienes que usar en cosas muy viejas te vale.

Tendrás que ejecutarlo desde AutoIt por ejemplo con RunWait y redireccionar el resultado a un archivo (otra alternativa es leer directamente la salida estándar del shell, pero es ligeramente más complicado).
Sería:
$salida = @TempDir & "\salida.txt"
RunWait(@ComSpec & " /c wmic csproduct get name > " & $salida, @TempDir, @SW_HIDE)


Así no hace falta un bat, se ve el shell, te busca cmd.exe (o command.com) él solito, escribe en el temporal...

Después sacas el dato del resultado y finalmente lo puedes borrar.
$modelo = FileReadLine($salida, 2) ;Parece que está en la segunda línea
FileDelete($salida)
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Obtener nombre del modelo del ordenador.

Mensaje por Chefito »

Mmmmm....seguro que hay una api de windows para esto, pero vete tu a saber cual es :smt005 . Sería buscarla a ver si aparece algo :smt017 .
Ximorro escribió:otra alternativa es leer directamente la salida estándar del shell, pero es ligeramente más complicado
Esta alternativa puede que guste más a causa de que no tienes que crear un archivo txt y luego trabajar con él. Mira en la ayuda las funciones run y StdoutRead, y sus ejemplos.

Otra alternativa que me gusta, ya que no tienes que ejecutar un archivo externo, es utilizar WMI para sacar este datos, entre muchos muchos muchos más que puedes obtener :smt002 :

Código: Seleccionar todo

$strComputer = "."
$objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & $strComputer & "\root\cimv2")
$colComputerSystem = $objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
For $objComputerSystem in $colComputerSystem
    ConsoleWrite ("Modelo de ordenador: " & $objComputerSystem.Model & @CRLF)
Next
Aahhhh, y por favor, especifica la próxima ver el Asunto del post mucho mejor que lo que has puesto. Mira mi asunto de este mensaje. Ayudará mucho más a las personas que busquen algo como esto.
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 ;).
Responder