Jump to content


Photo

Saber versión de todos los windows


  • Please log in to reply
5 replies to this topic

#1 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 18 July 2012 - 10:32 PM

Buenas amigos, otra vez visitandoles con una consulta...
lo que pasa es que deseo usar un comando para saber la versión de windows en donde estoy, he estado buscando y buscando y me he encontrado con varios códigos, aunque la mayoría solo era para todos los windows menos para win 7, entonces prácticando y probando resulta que estoy usando este código:



delphi
  1. procedure TForm1.Button3Click(Sender: TObject);
  2. begin
  3.   if (Win32MajorVersion=6) and (Win32MinorVersion=1) then ShowMessage('Tienes Windows 7');
  4.   if (Win32MajorVersion=6) and (Win32MinorVersion=0) then ShowMessage('Tienes Windows Vista');
  5.   if (Win32MajorVersion=5) and (Win32MinorVersion=1) then ShowMessage('Tienes Windows XP');
  6.  
  7. End;



El cual me está funcionando de maravilla, pero quisiera saber de ustedes expertos si está bien
formulado el código y si estaría bien si lo sigo usando.


Gracias de antemano.....  :)

  • 0

#2 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4945 posts
  • LocationMéxico

Posted 19 July 2012 - 07:08 AM

Gracias por compartir tu solución amigo...

Yo no valido la versión de windows en mis sistemas  *-)  *-) así que dejaré para los más avespados la opinión ténica,
  • 0

#3 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 19 July 2012 - 09:35 PM

Entonces espero la observación de los expertos...  :)
  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 19 July 2012 - 10:51 PM

Hola monchito_elroro,
Asi como está presentado el código no sugiere más problemas; ya mucho más no se puede mejorar. No veo porqué el compilador debería protestar a menos que hubiera un error.
O al menos es lo que yo entiendo a lo que te refieres cuando dices "si está bien formulado".

Ahora bien si tu duda va a si es la manera correcta, o al menos si en Lazarus hay alguna otra forma, no te sabría decir. Si bien ya dispongo de Lazarus (en realidad de CodeTyphon, y en Linux) aún no me he leído la documentación en profundidad como para responderte.

Lo que me extraña es justamente esos 6.1, 6.0, 5.1. Si tu dices que así como está funciona es porque así es, y en algún lado debe estar documentado que efectivamente 6.1 hace a W7, y así respectivamente. Pero no encuentro específicamente en donde.

Medio buscando en la red encontré algo parecido a tu código, que detecta en que SO se está ejecutando, MAC, Windows, DOS, o Linux:
http://www.lazarus.f...p?topic=15390.0

Saludos,
  • 0

#5 monchito_elroro

monchito_elroro

    Advanced Member

  • Miembros
  • PipPipPip
  • 260 posts

Posted 21 July 2012 - 06:07 PM

Buenas con todos, y gracias delphius por tu comentario.... si estoy bien cuando lo comenze a buscar probé con ese código sacado de un ejemplo en inglés... y había una página que lo explicaba, exactemente:

http://msdn.microsof...2(v=vs.85).aspx

Ahí se darán cuenta que la version (por ejemplo de windows 7) es 6.1 y cuando investigué supe que el primer número (6) es el  "MajorVersion" y el segundo (1) despues del punto es el "MinorVersion"

Hoy lo he probado otra vez en los tres sistemas (WinXP, vista y 7) y funciona bien...

Sólo quería saber su opinión y compartirlo con todos.... :)
  • 0

#6 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 21 July 2012 - 09:22 PM

Gracias monchito_elroro por el enlace. Ni se me ocurrió pensar y buscar en el MSDN  :p LOL

Saludos,
  • 0




IP.Board spam blocked by CleanTalk.