LER VARIÁVEIS DE AMBIENTE
Moderador: Moderadores
LER VARIÁVEIS DE AMBIENTE
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?
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
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
xHarbour.org + Hwgui + PostgreSql
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
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)
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)
LER VARIÁVEIS DE AMBIENTE
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?
Re: LER VARIÁVEIS DE AMBIENTE
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.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?
[]'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!
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!
Prezado Colega
Vou postar um Script padrão, aí é só você adaptar ao seu sistema e correr pro abraço.
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
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
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)
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)
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.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.
[]'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!
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!
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
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)
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)
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.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.
[]'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!
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!
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!
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!



