LER VARIÁVEIS DE AMBIENTE

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Marsenne
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 14 Fev 2008 14:14
Localização: Brasília

LER VARIÁVEIS DE AMBIENTE

Mensagem por Marsenne »

Recentemente um programa alterou o autoexec.bat onde defino algumas variáveis do clipper como a quantidade de arquivos que podem ser abertos. Quero que meu sistema, na inicialização, possa ler as variáveis do Sistema Operacional para verificar se não foram alteradas. Existe alguma função que eu possa verificar isto? Se não, existe uma forma de ler o arquivo .bat e verificar se ele está correto?
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Apenas lembrando que caso houver alteração em 98 tem que reiniciar o micro, e em XP deve apenas reiniciar o sistema(comigo funciona 100%)

Código: Selecionar todos

***************
Function AJUSTA
***************
vWIN=0
IF File("C:\CONFIG.SYS")                  //WIN98 E 95
   vWIN=1
ENDIF
IF File("C:\WINDOWS\SYSTEM32\CONFIG.NT")  // WIN XP
   vWIN=2
ENDIF
IF File("C:\WINNT\SYSTEM32\CONFIG.NT")   // WIN 2000
   vWIN=3
ENDIF

fflag := .t. // flag para FILES
cflag := .t. // flag para BUFFERS
cline:=''

IF vWIN=1
   fhandle := fopen("C:\CONFIG.SYS")
   d_arq = fcreate("C:\CONFIG.BAK",0)  // back-up
ELSEIF vWIN=2
   fhandle := fopen("C:\WINDOWS\SYSTEM32\CONFIG.NT")
   d_arq = fcreate("C:\CONFIG.BAK",0)
ELSEIF vWIN=3
   fhandle := fopen("C:\WINNT\SYSTEM32\CONFIG.NT")
   d_arq = fcreate("C:\CONFIG.BAK",0)  // back-up
ENDIF

do whil freadln(fhandle,@cline,LINE_SIZE)
   if 'FILES'$uppe(cline)
      cline := 'FILES=100'
      fflag := .f.
   elseif 'BUFFERS'$uppe(cline)
      cline := 'BUFFERS=30'
      cflag := .f.
   endif
   fwriteln(d_arq,cline)
enddo
if fflag
   fwriteln(d_arq,'FILES=100')
endi
if cflag
   fwriteln(d_arq,'BUFFERS=30')
endi

fclose(fhandle)
fclose(d_arq)

IF vWIN=1
   COPY FILE C:\CONFIG.BAK TO C:\CONFIG.SYS
ELSEIF vWIN=2
   COPY FILE C:\CONFIG.BAK TO C:\WINDOWS\SYSTEM32\CONFIG.NT
ELSEIF vWIN=3
   COPY FILE C:\CONFIG.BAK TO C:\WINNT\SYSTEM32\CONFIG.NT
ENDIF

IF vWIN=1
   fhandle := fopen("C:\AUTOEXEC.BAT")
   d_arq = fcreate("C:\AUTOEXEC.BAK",0)
ELSEIF vWIN=2
   fhandle := fopen("C:\WINDOWS\SYSTEM32\AUTOEXEC.NT")
   d_arq = fcreate("C:\AUTOEXEC.BAK",0)
ELSEIF vWIN=3
   fhandle := fopen("C:\WINNT\SYSTEM32\AUTOEXEC.NT")
   d_arq = fcreate("C:\AUTOEXEC.BAK",0)
ENDIF

do whil freadln(fhandle,@cline,LINE_SIZE)
   if 'SET PLL='$uppe(cline)
   elseif 'SET CLIPPER='$uppe(cline)
   elseif 'IF NOT EXIST C:\TEMP MD C:\TEMP'$uppe(cline)
   else
      fwriteln(d_arq,cline)
   endi
enddo
fwriteln(d_arq,'IF NOT EXIST C:\TEMP MD C:\TEMP')
fwriteln(d_arq,'SET CLIPPER=//F:121//DYNF:8//BADCACHE//SWAPK:65535//SWAPPTAH:"C:\TEMP"//TEMPPATH:"C:\TEMP"')
fclose(fhandle)
fclose(d_arq)

IF vWIN=1
   COPY FILE C:\AUTOEXEC.BAK TO C:\AUTOEXEC.BAT
ELSEIF vWIN=2
   COPY FILE C:\AUTOEXEC.BAK TO C:\WINDOWS\SYSTEM32\AUTOEXEC.NT
ELSEIF vWIN=3
   COPY FILE C:\AUTOEXEC.BAK TO C:\WINNT\SYSTEM32\AUTOEXEC.NT
ENDIF
return nil
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Se você preferir pode também usar o Blinker para linkar seu sistema e esquecer esse problema de sempre ter que configurar o AUTOEXEC e CONFIG e serve para qualquer versão, basta no seu scrip de linkagem usar :

BLINKER EXECUTABLE CLIPPER //F:240 //DYNF:8

ou se preferir usar seus próprios ajustes.

Usando assim você nunca mais precisará se procupar com isso, além das outras vantagens do uso do Blinker.

Ps. Se você usa a versão 5.3 do Clipper o Exospace também tem uma opção semelhante.

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)
Marsenne
Usuário Nível 1
Usuário Nível 1
Mensagens: 16
Registrado em: 14 Fev 2008 14:14
Localização: Brasília

LER VARIÁVEIS DE AMBIENTE

Mensagem por Marsenne »

Eu utilizo o RTLINK até hoje pois não entendo do BLINKER. Existe alguma documentação em português do BLINKER e onde posso baixá-lo?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: LER VARIÁVEIS DE AMBIENTE

Mensagem por Maligno »

Marsenne escreveu:Eu utilizo o RTLINK até hoje pois não entendo do BLINKER. Existe alguma documentação em português do BLINKER e onde posso baixá-lo?
Para baixar o BLinker, clique aqui. A documentação está junto na forma forma de um HLP, que é em inglês. Não adianta querer fugir do inglês. Vai ter que encarar um dia. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Vou postar um Script padrão, aí é só você adaptar ao seu sistema e correr pro abraço.

Código: Selecionar todos

BLINKER INCREMENTAL OFF
BLINKER OVERLAY PAGEFRAME ON
BLINKER EXECUTABLE CLIPPER //F:200 //DYNF:8 //E:1024
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 9
BLINKER EXECUTABLE EXTENDED
NOBELL
OUTPUT C:\BR\SISTEMA 
#acima o nome do executavel que sera gerado se for omitido será
#o nome do programa principal e será gerado na mesma pasta

BEGINAREA  
   FILE SISETMA
   FILE FUNCOES
   FILE UTIL
   FILE __WAIT
   FILE TIMESLIC
   FILE FULLSCRN
ENDAREA
#Acima você deverá especificar cada OBJ da sua aplicação
LIB C:\CLIPPER5\LIB\VL2_52
LIB C:\CLIPPER5\LIB\BLXCLP52
LIB C:\CLIPPER5\LIB\CLIPPER
LIB C:\CLIPPER5\LIB\EXTEND
LIB C:\CLIPPER5\LIB\TERMINAL
LIB C:\CLIPPER5\LIB\DBFNTX
#Acima você deve especificar as LIBs que são usadas na sua aplicação
#As que são padrão do clipper não precisam ser especificadas
#Mas neste caso você terá que ter a linha SET LIB no AUTOEXEC

O caractere # é usado para inserir um comentário no arquivo de script
Segue abaixo onde baixar o NG do Blinker 4.0, mas funciona muito bem para qualquer versão.
http://www.whitetown.com/ng/blinker4.zip

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)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Clipper escreveu:Se você preferir pode também usar o Blinker para linkar seu sistema e esquecer esse problema de sempre ter que configurar o AUTOEXEC e CONFIG e serve para qualquer versão, basta no seu scrip de linkagem usar :

BLINKER EXECUTABLE CLIPPER //F:240 //DYNF:8

ou se preferir usar seus próprios ajustes.
Marcelo, conforme diz o help do BLinker (vide o help do comando), não será possível usar esse valor de 240 se não houver no CONFIG.SYS um valor maior ou igual a este. Portanto, não dá pra escapar de ajustar o CONFIG. Isso é compreensível, haja vista que o valor de FILES é uma variável de ajuste do SO. O BLinker não tem como aumentar isso por sua própria conta. Só pode diminuir.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Maligno

Eu sabia desse detalhe é que me esqueci, faz tanto tempo que não tenho esse tipo de problema.

Mas como eu não acredito muito no Windows (vide abaixo o motivo), fui testar e realmente dá pau.

Motivo pra eu não acreditar em tudo que o Windows diz :
No AUTOEXEC.NT do XP é informado que o XP não processa o AUTOEXEC.BAT, mentira ! O XP processa normalmente o AUTOEXEC.BAT sem que seja necessária qualquer ateração no XP.

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)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Clipper escreveu:Motivo pra eu não acreditar em tudo que o Windows diz :
No AUTOEXEC.NT do XP é informado que o XP não processa o AUTOEXEC.BAT, mentira ! O XP processa normalmente o AUTOEXEC.BAT sem que seja necessária qualquer ateração no XP.
Ah, sim. É quase igual ao caso da efetivação da alteração do AUTOEXEC.NT no XP. Há quem altere o AUTOEXEC.NT e ele já faz diferença na próxima sessão DOS aberta. Pra mim não dá. Tenho que rebootar. Por essas e outras, não mexo mais nisso. Variáveis de ambiente eu altero diretamente no Registry.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
clauber
Usuário Nível 3
Usuário Nível 3
Mensagens: 263
Registrado em: 22 Jul 2004 21:17
Localização: ceara

Mensagem por clauber »

caro maligno, como poderia eu acessar os dados do registy usando o clipper, com blinker....
""
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

A alteração que disse que faço é manual mesmo. Tenho um arquivo pronto pra isso. É só clicar. Mas pelo Clipper também dá pra acessar o Registry usando a biblioteca WAPI. Clique aqui para ver a thread que temos a respeito dela.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder