Detectar HD virtual

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Detectar HD virtual

Mensagem 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:\
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Me ajudem

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Re: Me ajudem

Mensagem 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar HD virtual

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Detectar HD virtual

Mensagem 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:

Código: Selecionar todos

MD c:\rochinha
SUBST r: c:\rochinha
DIR r:
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...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Re: Detectar HD virtual

Mensagem 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Detectar HD virtual

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Re: Detectar HD virtual

Mensagem 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??
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Detectar HD virtual

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder