Fórum Diretorio Windows #262515

17/12/2004

0

:shock:
é o seguinte antes de abrir o programa o sistema tem q verificar se existe um arquivo q esta na pasta windows\system mas o q acontece q ha uma diferença na pata do windows 2000 pois a pasta onde esta salvo o sistema operacional é winnt e nao windows e com isso ao rodar o aplicativo no win 2000 nao ira abrir ,gostaria de saber se tem como o sistema localizar o arquivo necessario na pasta do windows\system (mas ten q localizar a pasta do windows ).


Guilherme

Guilherme

Responder

Posts

17/12/2004

Rafs

Utilize o método GetSystemDirectory que assim, independente do S.O. você obterá o diretório de sistemas correto.


Responder

Gostei + 0

17/12/2004

Rafael Miguel

Fala mano véio.

Tente esse código:

procedure TForm1.FormCreate(Sender: TObject);
var
   Str: PAnsiChar;
begin
  StrCopy(Str, ´´);
  GetSystemDirectory(Str, 255);
end;


Agora vc tem que descobrir como passar esse tipo de char para string normal do Delphi.

Espero ter ajudado.


Responder

Gostei + 0

17/12/2004

Guilherme

[quote:590c46557e=´Rafael Miguel´]Fala mano véio.

Tente esse código:

procedure TForm1.FormCreate(Sender: TObject);
var
   Str: PAnsiChar;
begin
  StrCopy(Str, ´´);
  GetSystemDirectory(Str, 255);
end;


Agora vc tem que descobrir como passar esse tipo de char para string normal do Delphi.

Espero ter ajudado.[/quote:590c46557e]

sou meio novato anto no delphi como na idade 14 aninhos

de uma olhada no codigo q ta no sistema
var
F: TextFile;
S: string;
begin
if not FileExists(´c:\winnt\sgcpro.dll´) Then Begin
ShowMessage(´Arquivo de Segurança nao Encontrado!´);
Application.Terminate;
End;
AssignFile(F, ´c:\winnt\sgcpro.dll´);
Reset(F);
Readln(F, S);
if StrToDate(S) < Date then Begin
ShowMessage(´Licença Expirada! Entre em Contato com o Distribuidor´);
Showmessage(´E-mail Gborges_13@yahoo.com.br´);
Application.terminate;
End;
CloseFile(F);

na onde esta (´c:\winnt|sgcpro.dll´) no lugar de ter que coloar o caminho do S O gostaria q encontrace altomaticamente ! Como fazo isso .


Responder

Gostei + 0

17/12/2004

Martins

Olá colega!

tente desse jeito.
function RetornaSysDir: string;
var
MeuBuffer: Array [1..128] of Char;
retorno: Integer;
Begin
retorno:=GetSystemDirectory(@MeuBuffer,128);
if (retorno>128) OR (retorno=0) then
RetornaSysDir:=´´
else
RetornaSysDir:=StrPas(@MeuBuffer);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
      Edit1.Text:=RetornaSysDir;
end;


Acredito deva servir para o q vc deseja.

Espero ter lhe ajudado!

Martins


Responder

Gostei + 0

19/12/2004

Guilherme

eu tentei mas nao consegui .Descupa ai pessoal mais sou mto novato como iria ficar no meu codigo q esta assima.
Obrigado pela compreensao


Responder

Gostei + 0

20/12/2004

Martins

eu tentei mas nao consegui .Descupa ai pessoal mais sou mto novato como iria ficar no meu codigo q esta assima. Obrigado pela compreensao

veja se assim funciona.
function RetornaSysDir: string;  //Função para pegar o diretório do Win.
var 
MeuBuffer: Array [1..128] of Char; 
retorno: Integer; 
Begin 
retorno:=GetSystemDirectory(@MeuBuffer,128); 
if (retorno>128) OR (retorno=0) then 
   RetornaSysDir:=´´ 
else 
    RetornaSysDir:=StrPas(@MeuBuffer); 
End; 

{** Sua função **}

var 
F: TextFile; 
S: string; 
begin 
if not FileExists(RetornaSysDir+´\sgcpro.dll´) Then Begin 
ShowMessage(´Arquivo de Segurança nao Encontrado!´); 
Application.Terminate; 
End; 
AssignFile(F, RetornaSysDir+´\sgcpro.dll´); 
Reset(F); 
Readln(F, S); 
if StrToDate(S) < Date then Begin 
ShowMessage(´Licença Expirada! Entre em Contato com o Distribuidor´); 
Showmessage(´E-mail Gborges_13@yahoo.com.br´); 
Application.terminate; 
End; 
CloseFile(F); 


Veja se assim funciona e poste aqui novamente ok!

Espero ter ajudado.



Martins


Responder

Gostei + 0

20/12/2004

Guilherme

Valeu galera vc´s me ajudaram mto !!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar