IDENTIFICAR O O.S.
Olá Pessoal !
Como identificar o O.S. instalado ?
Simplismente que retorne: Windows XP, Windows7 32bits ou Windows7 64bits.
Um abraço e desde já agradeço.
Como identificar o O.S. instalado ?
Simplismente que retorne: Windows XP, Windows7 32bits ou Windows7 64bits.
Um abraço e desde já agradeço.
é + ou - assim pessoal:
Em um módulo:
Option Explicit
Private Declare Function RtlGetVersion Lib [Ô]NTDLL[Ô] (ByRef lpVersionInformation As Long) As Long
Public Function NativeGetVersion() As String
Dim tOSVw(&H54) As Long
tOSVw(0) = &H54 * &H4
Call RtlGetVersion(tOSVw(0))
NativeGetVersion = Join(Array(tOSVw(4), tOSVw(1), tOSVw(2)), [Ô].[Ô])
End Function
Public Function VersionToName(ByRef sVersion As String) As String
Select Case sVersion
Case [Ô]1.0.0[Ô]: VersionToName = [Ô]Windows 95[Ô]
Case [Ô]1.1.0[Ô]: VersionToName = [Ô]Windows 98[Ô]
Case [Ô]1.9.0[Ô]: VersionToName = [Ô]Windows Millenium[Ô]
Case [Ô]2.3.0[Ô]: VersionToName = [Ô]Windows NT 3.51[Ô]
Case [Ô]2.4.0[Ô]: VersionToName = [Ô]Windows NT 4.0[Ô]
Case [Ô]2.5.0[Ô]: VersionToName = [Ô]Windows 2000[Ô]
Case [Ô]2.5.1[Ô]: VersionToName = [Ô]Windows XP[Ô]
Case [Ô]2.5.3[Ô]: VersionToName = [Ô]Windows 2003 (SERVER)[Ô]
Case [Ô]2.6.0[Ô]: VersionToName = [Ô]Windows Vista[Ô]
Case [Ô]2.6.1[Ô]: VersionToName = [Ô]Windows 7[Ô]
Case Else: VersionToName = [Ô]Unknown[Ô]
End Select
End Function
Em um form:
Private Sub cmd_IdeOS_Click()
[ô]
Call MsgBox(VersionToName(NativeGetVersion))
End Sub
Um abraço pessoal !
Em um módulo:
Option Explicit
Private Declare Function RtlGetVersion Lib [Ô]NTDLL[Ô] (ByRef lpVersionInformation As Long) As Long
Public Function NativeGetVersion() As String
Dim tOSVw(&H54) As Long
tOSVw(0) = &H54 * &H4
Call RtlGetVersion(tOSVw(0))
NativeGetVersion = Join(Array(tOSVw(4), tOSVw(1), tOSVw(2)), [Ô].[Ô])
End Function
Public Function VersionToName(ByRef sVersion As String) As String
Select Case sVersion
Case [Ô]1.0.0[Ô]: VersionToName = [Ô]Windows 95[Ô]
Case [Ô]1.1.0[Ô]: VersionToName = [Ô]Windows 98[Ô]
Case [Ô]1.9.0[Ô]: VersionToName = [Ô]Windows Millenium[Ô]
Case [Ô]2.3.0[Ô]: VersionToName = [Ô]Windows NT 3.51[Ô]
Case [Ô]2.4.0[Ô]: VersionToName = [Ô]Windows NT 4.0[Ô]
Case [Ô]2.5.0[Ô]: VersionToName = [Ô]Windows 2000[Ô]
Case [Ô]2.5.1[Ô]: VersionToName = [Ô]Windows XP[Ô]
Case [Ô]2.5.3[Ô]: VersionToName = [Ô]Windows 2003 (SERVER)[Ô]
Case [Ô]2.6.0[Ô]: VersionToName = [Ô]Windows Vista[Ô]
Case [Ô]2.6.1[Ô]: VersionToName = [Ô]Windows 7[Ô]
Case Else: VersionToName = [Ô]Unknown[Ô]
End Select
End Function
Em um form:
Private Sub cmd_IdeOS_Click()
[ô]
Call MsgBox(VersionToName(NativeGetVersion))
End Sub
Um abraço pessoal !
tem uma classe aki ...
dim VerWin as new cSystemInformation
msgbox VerWin.GetOSVerEnum
vê se isso presta ...
dim VerWin as new cSystemInformation
msgbox VerWin.GetOSVerEnum
vê se isso presta ...
Caro XAVIER
Fiz este exemplo para que possa estudar e analisar o código:
O Visual Basic possui limitações quanto a alguns sistemas operacionais atuais:
desktop Windows 7/8.
server Windows 2003/2008/2012........ etc.........
Sua necessidade de identificar plataformas como Windows 7 (x86) e (x64) ou superior talvez fique difÃcil utilizando o Visual Basic 6.
Plataforma x64 não tem recursos da linguagem para extrair de forma correta e precisa algumas informações........
Repare neste exemplo que que mesmo em plataforma x86 [ô]32 bits[ô] não há distinção quanto a Windows 2008 e Windows 7.....
Eu utilizo parte deste código para suporte a sistema operacional Windows95/98/2000/XP/2003........ [ô]já descontinuados[ô].
Boa Sorte
Fiz este exemplo para que possa estudar e analisar o código:
O Visual Basic possui limitações quanto a alguns sistemas operacionais atuais:
desktop Windows 7/8.
server Windows 2003/2008/2012........ etc.........
Sua necessidade de identificar plataformas como Windows 7 (x86) e (x64) ou superior talvez fique difÃcil utilizando o Visual Basic 6.
Plataforma x64 não tem recursos da linguagem para extrair de forma correta e precisa algumas informações........
Repare neste exemplo que que mesmo em plataforma x86 [ô]32 bits[ô] não há distinção quanto a Windows 2008 e Windows 7.....
Eu utilizo parte deste código para suporte a sistema operacional Windows95/98/2000/XP/2003........ [ô]já descontinuados[ô].
Boa Sorte
Beleza WOLFFIRE !
Na verdade o que está faltando é só identificar se é 32 bits ou 64 bits.
Obrigado.
Na verdade o que está faltando é só identificar se é 32 bits ou 64 bits.
Obrigado.
A princÃpio, o sistema rodará somente em xp e win7 ambos na arquitetura 32bits. Embora a nova geração de máquinas seja 64bits.
Um sistema criado no vb6 em 32bits, se compilado em 64 bits, funcionará bem ? Basta somente compilar ?
Perdoem a minha ignorância pessoal. é que estou sempre aprendendo...
Um sistema criado no vb6 em 32bits, se compilado em 64 bits, funcionará bem ? Basta somente compilar ?
Perdoem a minha ignorância pessoal. é que estou sempre aprendendo...
VB6 nunca é compilado para 64 bits, ele é um programa de 32 bits que gera programas apenas de 32 bits, porém o Windows de 64 bits também roda programas de 32 bits sem nenhum problema.
Para identificar se é ou não x64 tem que usar a API IsWow64Process, ela retorna true se o seu programa é de 32 bits e está rodando em um sistema operacional de 64 bits, porém ela só está disponÃvel no XP SP2 para frente, então tem que verificar se ela está disponÃvel ou não no sistema. Aqui tem um exemplo de como usar ela http://www.freevbcode.com/ShowCode.asp?ID=9043, só que geralmente não é necessário saber essa informação para o programa funcionar.
Quanto a detectar se é versão desktop ou versão servidor tem como também, é praticamente a mesma coisa que o AJSO passou, porém no exemplo dele é usado a estrutura OSVERSIONINFO, e para poder diferenciar entre desktop e server precisa usar a estrutura OSVERSIONINFOEX que possui algumas informações extras, onde uma delas é o tipo do produto, se é workstation, server ou domain controller
Para identificar se é ou não x64 tem que usar a API IsWow64Process, ela retorna true se o seu programa é de 32 bits e está rodando em um sistema operacional de 64 bits, porém ela só está disponÃvel no XP SP2 para frente, então tem que verificar se ela está disponÃvel ou não no sistema. Aqui tem um exemplo de como usar ela http://www.freevbcode.com/ShowCode.asp?ID=9043, só que geralmente não é necessário saber essa informação para o programa funcionar.
Quanto a detectar se é versão desktop ou versão servidor tem como também, é praticamente a mesma coisa que o AJSO passou, porém no exemplo dele é usado a estrutura OSVERSIONINFO, e para poder diferenciar entre desktop e server precisa usar a estrutura OSVERSIONINFOEX que possui algumas informações extras, onde uma delas é o tipo do produto, se é workstation, server ou domain controller
Valeu Pessoal !
Tópico encerrado , respostas não são mais permitidas