VERSAO DO SIST.OPER ?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

managercorp
Usuário Nível 3
Usuário Nível 3
Mensagens: 138
Registrado em: 16 Nov 2004 11:03
Localização: recife
Contato:

VERSAO DO SIST.OPER ?

Mensagem por managercorp »

ANTIGAMENTE SE COLOCAVA
@ 10,10 SAY OS()
E O CLIPPER DIZIA EX: DOS 5.0
QUE ERA O QUE SE VIA NO RESULTADO DO COMANDO (VER)
PELO PROMPT DO DOS

HOJE OS SISTEMAS BASICAMENTE SO MOSTRAM DOIS RESULTADOS
NO CASO DO WINDOWS 98
WINDOWS 98 [VERSAO.........
NO CASO DO XP
MICROSOFT WINDOWS XP..........

SO QUE O RETORNO DO COMANDO OS()
CONTINUA SENDO DOS 5.00 OU DOS 7.00
COMO FACO PARA GUARDAR O RESULTADO DO COMANDO VER
DO PROMPT DO DOS EM UMA VARIAVEL NO CLIPPER

EX:
SE O RESULTADO DE VER E WINDOWS 98
ENTAO MINHA VARIAVEL SISTEMAOP='WINDOWS 98'

PELO OS() SO APARECE DOS 5.00, ASSIM SENDO NAO SEI COMO IDENTIFICAR SE A ESTACAO E 98 OU XP

ALGUEM PODE ME AJUDAR
POIS TENHO ROTINAS QUE FUNCIONAM COM UM COMANDO NO 98 E COM OUTRO NO XP, E O SISTEMA DE SABER AUTOMATICAMENTE QUAL CHAMADA VAI FAZER.

NAO ADIANTA PEDIR PRA MIM COLOCAR UMA VARIAVEL NO AUTOEXEC.BAT TIPO ASSIM SISTEMA='XP', POIS NAO ADIANTA, MEUS CLIENTES TEM BASES COM 45 ESTACOES E NAO POSSO IR EM CADA UMA ALTERANDO O AUTOEXEC.
TEM DE SER AUTOMATICO QUANDO EU BAIXAR O NOVO EXE.

AGRADECO QUEM ME AJUDAR....
Alexandre Pessoa
alexandre@managercorp.com.br
81-96152319
managercorp
Usuário Nível 3
Usuário Nível 3
Mensagens: 138
Registrado em: 16 Nov 2004 11:03
Localização: recife
Contato:

Eu mesmo Resolvi

Mensagem por managercorp »

ja que ninguem desenrolou essa, eu mesmo arranjei um jeito
vou citar abaixo a solucao, possa ser que sirva para alguem:

VSISTEMAO='XP'
IF .NOT. FILE("C:\WINDOWS\SYSTEM32\WIN.COM")
VSISTEMAO='98'
ENDIF
IF VSISTEMAO='XP'
! CMD /C START /MAX /high WORDVIEW.EXE teste.doc
ENDIF
IF VSISTEMAO='98'
RUN START /MAX WORDVIEW.EXE teste.doc
ENDIF
Alexandre Pessoa
alexandre@managercorp.com.br
81-96152319
lima
Usuário Nível 1
Usuário Nível 1
Mensagens: 26
Registrado em: 06 Jul 2004 08:49

Mensagem por lima »

Olá

Voce pode testar a variavel de ambiente, ex:-
ComanXp:= ''
IF AT('NT', GETENV('OS') ) > 0
ComanXp:= 'cmd /c start /High '
END

Até +
Lima
Visitante

Mensagem por Visitante »

Alexandre...

O ideal é você usar a forma como o lima falou, analisando a variável de sistema OS com a função GetEnv, se for XP/2000 ela vai retornar Windows_NT.

A forma como você tem feito poderá te trazer problemas quando você se deparar com algum windows xp que não foi instalado na pasta C:\Windows.

Um Clip Abraço
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Só um probleminha...

Tentando descobrir um meio de ajudar o alexandre tentei a opção do GETENV("OS") porém não retorna nada, reparei que o mesmo acontece com todas as variaveis de ambiente criadas pelo windows XP, quando são variaveis criadas pelo usuário retorna beleza.

Outra coisa que tentei (e que me deixou com mais raiva do XP) foi capturar a saida do comando VER, observem que se executo o comando VER direto no DOS ele retorna o nome do Windows (XP/2000/98), porem se coloco o seguite comando dentro do programa RUN VER >SO.TXT, quando vou ver dentro do SO.TXT só tem MS-DOS versao 5.00.500 - Vai entender uma p... dessas ?

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
managercorp
Usuário Nível 3
Usuário Nível 3
Mensagens: 138
Registrado em: 16 Nov 2004 11:03
Localização: recife
Contato:

Foi isto mesmo

Mensagem por managercorp »

Foi isto mesmo que detectei Marcelo
por enquanto vou fazendo do meu jeito como falei acima
se na pasta windows\system32 tem o arquivo win.com
e porque e xp ou nt.
e assim vamos levando. gostei do Marcelo, viu e foi atras pra ter certeza, tambem sou assim, valeu Marcelo.
Alexandre Pessoa
alexandre@managercorp.com.br
81-96152319
Visitante

Mensagem por Visitante »

Lamento ter que opinar o contrário Marcelo e Alexandre...

Eu achei um absurdo o que vocês escreveram e resolvi fazer o teste.

Criei um prgzinho Chulo, com apenas isso:

csistema:=Getenv("OS")
? csistema

compilei e rodei

apareceu na minha tela:

Windows_NT

Acho que o problema deve estar com o Windows de vocês.

Meu windows xp é:
Versão 5.1 compilação 2600.xpsp2_sp2_gdr.050301-1519: Service Pack 2

Verifiquem o windows de vocês, pois no meu funcionou direitinho.
Eu apenas achei estranho, pois em alguns programas meus eu utilizo a variável criada pelo xp "SYSTEMROOT" que devolve a pasta onde está instalado o Windows e nunca tive problema.

Um Clip Abraço
trapezus
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 06 Out 2005 21:38

Mensagem por trapezus »

Caro Alexandre

A opção do Marcus é a mais acertada. Tentei o exemplo que ele passou aqui no fórum e deu certíssimo.

Convêm testar em seus programas.

Trapezus :xau
trapezus
Usuário Nível 1
Usuário Nível 1
Mensagens: 10
Registrado em: 06 Out 2005 21:38

Mensagem por trapezus »

Em complemento à resposta anterior.

Pensando em estabelecer o ambiente de trabalho, cheguei à seguinte solução.

Não sei se é a mais correta porém pode ser útil com algumas alterações.

Código: Selecionar todos

run ver >> os.txt
   var:= memoread("os.txt")
   for x:= 1 to Len(Trim(var))
      do case
      case SubStr(var, x, 10) = "Microsoft "
         if (SubStr(var, x+10, 10) = "Windows XP")
            op:= "XP"
         elseif (SubStr(var, x+10, 10) = "Windows 98")
            op:= "98"
         else
            op:= "MSDOS"
         endif
         exit
      endcase
   next
run del os.txt
Um Abraço
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

Mensagem por Dudu_XBase »

Boa noite Galera.
Vcs tbm podem fazer assim.
Existem duas funções da Oslib que unidas retornam a versão do DOS:
* OL_OsVerMaj()
* OL_OsVerMin()

? alltrim( str( OL_OsVerMaj() ) ) + "." + ;
alltrim( str( OL_OsVerMin() ) )


Versões Retornadas com o Sistema Operacional

Código: Selecionar todos

95               DOS 7.0
95 OSR 2.5  DOS 7.10
98               DOS 7.07
98SE           DOS 7.10
ME              DOS 8.0
NT4             DOS 5.00
2000            DOS 5.00
XP               DOS 5.00 
// Ultima versão da Oslib criada pelo Dave Pearson
http://www.davep.org/clipper/oslib106.zip

Já no xharbour vc pode usar essas funções para pegar a versão do SO.
os_iswinnt
os_iswin95
os_iswin98
os_iswinme
os_iswinnt351
os_iswinnt4
os_iswin2000
os_iswinxp
os_iswin2003
os_iswtsclient
os_versioninfo

Criei esse exe em xharbour para exemplificar
http://geocities.yahoo.com.br/dudu_xbase/version.zip

ele tb atualiza a variavel de Ambiente OS utilizada pelo Lizander.


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Responder