Página 1 de 1
Detectar HD virtual
Enviado: 21 Jul 2008 18:08
por Nascimento
Amigos sou novo nesse ambiente e venho pedir uma ajuda
fiz um programa em clipper q descompacta na memoria virtual e o problema e que podem ter acesso as imformaçoes simplis mente colocando um Hd no D:\ eu queria um codigo q na hora que ele colocar um hd do D:\ o nao copiasse nada , ou limpasse totalmente a original no caso C:\
Re: Me ajudem
Enviado: 21 Jul 2008 22:37
por alaminojunior
Seja muito bem vindo ao fórum.
Meu querido, só um detalhe: da maneira como você intitulou o tópico, cheguei a pensar que você estivesse com um problema mais grave: dinheiro, problemas na família, saúde, etc....
Desculpe a brincadeira, mas se for mais objetivo já no título do tópico, sua resposta chegará mais rápido.
E mais uma vez desculpe, mas a minha limitação não permitiu entender a sua dúvida. Se puder ser mais claro.
Um abraço, e é muito bom tê-lo no fórum.
Re: Me ajudem
Enviado: 22 Jul 2008 01:15
por Nascimento
Obrigado amigo :{ amigo eu fiz um programa em clipper que verifica o serial do hd q ele esta se for valido descompacta um arquivo.zip em uma unidade virtual criada antes no autoexec.bat e config sys oque esta acontecendo é que se colocar outro HD no secundario todo conteudo do arquivo.zip descompactará em vez de ser na unidade virtual descompactara no outro HD colocado no secundario, ai eu queria acrescentar umas linhas de codigos ao meu fonte para que se colocar outro HD no secundario o programa verifique se tiver um HD colocado no secundario nao processe o arquivo.zip
de uma mensagem de alerta tipo "Retire o HD secundario para que o programa funcione"
por isso venho pedir a ajuda de voceis ja que estou começando em clipper 5.3
Detectar HD virtual
Enviado: 22 Jul 2008 10:31
por Pablo César
Josivan Nascimento escreveu:eu fiz um programa em clipper que verifica o serial do hd
Seria sempre muito bom que postassem seus código-fontes ou parte deles para compor as questões quando tiverem dúvidas e dificuldades. Isso iria poupar tempo e trabalho.
Quanto seu problema (se é que eu entendí), você deveria em vez de impossibilitar a descompactação (por causa de nova instalação de HD, o que ocupa uma unidade lógica) você deveria criar (na minha opinião) um DISCO VIRTUAL em outra unidade posterior a ultima unidade física instalada. Para isso você precisa além de rever seu conceito sobre esta questão toda, você deveria modificar os arquivos de inicialização do PC (autoexec/Config, não lembro onde é feito a criação do disco virtual, seria bom você postar também) ou até mesmo criar um arquivo de lote para esse fim. Mas antes deverias verificar a existência de Hard Disks instalados. Para isso você conta com uma função da CA-TOOLS (CT.LIB) chamada DRIVETYPE() que ao executá-la retorna um valor, sendo que se este valor for igual a TRÊS é hard disk e ZERO é um RAM DISK.
Obs.: Caso você ache que não deveria rever seu conceito sobre a questão, isto é, de impossibilitar a descompactação em disco virtual. Primeiro precisariamos avaliar para que fim é feito a descompactação. Segundo, por quê você não quer descompactar caso seja instalado um novo HD ?.
Nota do Moderador:
O título foi modificado, atendendo as normas do fórum. Lembrando que o próprio autor do tópico pode fazer essa alteração de título do tópico, bastando editar a primeira mensagem.
Re: Detectar HD virtual
Enviado: 24 Jul 2008 17:19
por rochinha
Amiguinho
Acho que o seu caso é de manter a segurança do aplicativo.
Bom voce pode usar um RAMDRIVE/RAMDISK que até as versões de Windows 98 poderiam ser usadas. Para Windows XP e 200X voce tera de usar um RAMDISK modificado para uso com estes sistemas.
Pensando nisto disponibilizei em
http://www.5volution.com.br/downloads/forum/ramdisk.rar
Outro meio é usar uma pasta no HD principal ligada a uma letra de drive especificada por voce por meio de SUBSTituição:
A pasta em questão pode ser excluida ao final da operação ou apenas seu conteudo excluido pois a pasta existirá fisicamente no drive em que for criada.
Outra sugestão é voce tornar seu programa PORTATIL.
Para isto voce poderá usar o ThinStall para capturar a instalação de seu sistema e coloca-la em um unico EXEcutável.
Ao ser executado ele prepara um ambiente de trabalho para seu aplicativo que é transparente ao usuário e seguro para voce, mas isto é estória para outro tópico...
Re: Detectar HD virtual
Enviado: 25 Jul 2008 19:41
por Nascimento
so preciso de aumentar ao meu fonte que se detectar outro HD no IDE 2 interrompa o processo e exiba uma mensagem tipo "RETIRE O HD DA IDE2 E REINICIE A MAQUINA" sim e eu uso o MS-DOS
Re: Detectar HD virtual
Enviado: 25 Jul 2008 21:45
por rochinha
Amiguinho
Se voce impoe ao usuário por meio de programa o que ele deve ou não usar em sua maquina, isto acarretará um desconforto.
Depois uma mensagem deste tipo mostra ao usuário sua falha de segurança.
O mais correto é que seu programa esteja apto a criar a descompactação na unidade que estiver disponivel.
Porque o usuário não pode ter um segundo HD? fica mais confortável que ele nem perceba isto e que seu programa encontre meios de driblar este problema e coexistir em paz.
Como colocado por outro colega, uma imagem vale mais que mil palavras: poste o codigo de seu Autoexe.bat e Config.sys para analisar-mo-los.
Mesmo assim ainda fica muito vago o seu intuito de descompactar um arquivo.
Qual o seu conteudo?
Porque tem de ser descompactado no uso diário?
Pelo que entendi a cada abertura seu sistema verifica um HD e descompacta o arquivo .ZIP.
Porque tantas descompactações? Isto degrada o ambiente.
Garanto que se voce apresentar mais parametros poderemos dar solução ao seu caso ou apresentar exemplo ou codigo que satisfaça sua necessidade.
Re: Detectar HD virtual
Enviado: 26 Jul 2008 14:18
por Nascimento
Código: Selecionar todos
IF LASTKEY() = 109
_DDMODE(3)
DDSVCSR := SETCURSOR(1)
INKEY()
SETCURSOR(DDSVCSR)
RESTSCREEN(0, 0, MAXROW(), MAXCOL(), L19)
SCROLL()
SETPOS(0, 0)
__KILLREAD()
L18 := {}
__COPYFILE("c:\imagens\4.jpg", "d:\imagens.arj")
SET(17, "off")
__RUN("c:\arj.exe e -g145524h -y d:\imagens.arj d: *.*")
__RUN("del d:\imagens.arj")
SET(17, "on")
__QUIT()
esse abaixo é o config
Código: Selecionar todos
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DOS=HIGH,UMB
DEVICE=C:\DOS\RAMDRIVE.SYS 16384 512 1024 /E
FILES=30
BUFFERS=30
SWITCHES=/F /K /N
e o
autoexec so chama o game.exe que ta parte do codigo acima
e por isso nao quero q ninguem tenha acesso ao jogo descompactado na ramdrive
vi que se colocar uum hd na IDE2 o conteudo de imagens.arj e descompactado no hd q o cara colocou entendeu amigos??
Re: Detectar HD virtual
Enviado: 26 Jul 2008 15:23
por rochinha
Agora entendi,
Veja, o RAMDRIVE.SYS não é tão maleável e acaba por não permitir voce de incluir uma letra de drive para o mesmo. Ele acaba pegando a primeira letra disponivel.
Se voce usar o RAMDRIVE que eu disponibilizei voce terá mais exito pelo fato do mesmo permitir alterar a letra de drive do disco virtual em registro.
Voce pode analisar o seguinte .BAT:
Código: Selecionar todos
@echo off
set RAMD=
set CDROM=
echo.
echo Preparing to start your computer.
echo This may take a few minutes. Please wait...
echo.
a:\findramd
if errorlevel 255 goto no_ramdrive
if not errorlevel 3 goto no_ramdrive
goto do_shift
:loop
if errorlevel %1 goto no_shift
:do_shift
set cdrom=%2
shift
shift
if not %1*==* goto loop
goto no_ramdrive
:no_shift
set ramd=%2
if "%RAMD%"=="C" goto c_drive
goto success
:c_drive
echo Windows 98 has detected that drive C does not contain a valid FAT or
echo FAT32 partition. There are several possible causes.
echo.
echo 1. The drive may need to be partitioned. To create a partition on the drive,
echo run FDISK from the MS-DOS command prompt.
echo.
echo 2. You may be using third-party disk-partitioning software. If you are using
echo this type of software, remove the Emergency Boot Disk and restart your
echo computer. Then, follow the on-screen instructions to start your computer from
echo a floppy disk.
echo .
echo 3. Some viruses also cause your drive C to not register. You can use a virus
echo scanning program to check your computer for viruses.
echo.
goto success
:no_ramdrive
echo The Windows 98 startup disk could not create a temporary drive for the
echo diagnostic tools. This may be because this computer has less than the
echo minimum required extended memory.
echo.
:success
Este .BAT é usado para criar um disco virtual com arquivos do MS-DOS para uma instalaçõa de Windows 98. e ele acaba trocando as letras do CD-ROM de lugar para entrar com o RAMDRIVE no lugar fazendo com que o CD-ROM fique com a letra E: ou F:
Se lhe servir, provavelmente voce conseguirá fazer com que o drive que estiver usando a letra D: assuma outra letra e seu disco virtual entre como D:
Outro método é voce usar o SUBST para forçar o drive D: em outra letra,
subst r: d:\, colocando este comando no inicio de seu .BAT.
Verifique.