Fórum Como evitar que o executável seja aberto em rede? #378500
28/05/2010
0
Minha dúvida:
Como posso fazer para bloquear o acesso ao executável do programa por outro computador, exceto o qual naquele onde está instalado?
Já tentei bloquear a instância mas ela só funciona no próprio computador, permitindo a criação de nova instância e abertura em outro computador da rede.
Aristeu Sales
Curtir tópico
+ 0Posts
28/05/2010
Fábio Cruz
Crie uma tabela com a informação que o sistema já está em uso, mas não esqueça de limpar depois que fechar
Gostei + 0
28/05/2010
Aristeu Sales
Gostei + 0
28/05/2010
Emerson Nascimento
ao inicar o programa você pega o nome da máquina atual e verifica se ele esta contide no arquivo ini. se não estiver, você cancela a execução do programa.
algo assim:
no fonte do projeto:
program Project7;
uses
Forms,
Dialogs,
SysUtils,
Classes,
Windows,
Unit12 in 'Unit12.pas' ;
{$R *.res}
var
lOk: boolean;
sl: TStringList;
arq: string;
compname: array[0..MAX_COMPUTERNAME_LENGTH+1] of char;
scompname: string;
ntam: cardinal;
begin
Application.Initialize;
arq := 'sistema.ini';
ntam := MAX_COMPUTERNAME_LENGTH+1;
GetComputerName(compname, ntam);
scompname := AnsiUpperCase(Trim(compname));
lOK := False;
if FileExists(arq) then
begin
sl := TStringList.Create;
try
sl.LoadFromFile(arq);
lOK := Pos(scompname, sl.Values['Maquinas']) > 0;
if not lOk then
ShowMessage('O sistema não pode ser executado por este computador ('+scompname+')');
finally
FreeAndNil(sl);
end;
end
else
ShowMessage('Arquivo de controle [sistema.ini] não encontrado. O sistema não poderá ser executado.');
if lOK then
begin
Application.CreateForm(TForm12, Form12);
Application.Run;
end
else
Application.Terminate;
end.
no arquivo sistema.ini (você pode colocar o conteúdo criptografado):
[EXECUTAR]
Maquinas=SERVER001;CLIENT002;
no exemplo apresentado, o sistema só poderá ser executado a partir da máquina SERVER001 e da CLIENT002.
Gostei + 0
17/06/2010
Carlos Mazzi
Gostei + 0
17/06/2010
Adalberto Brasaca
Gostei + 0
18/06/2010
Aristeu Sales
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)