¿¿¿ Como Controlar o Acesso aos Arquivos ???

01/05/2003

0

Bom, é o seguinte: Tenho um programa que trava todas as teclas de funcoes, Ctrl+Alt+Del, Alt+F4, Alt+Tab...etc...

Nesse programa tem alguns icones que EU MESMO adiciono, e que somente eles podem funcionar. Os icones do desktop ficam escondidos por tras do programa e nao podem ser acessados.

Até ai tudo bem, o problema é: No meu programa tem o icone do Internet Explorer, pois ele pode ser acessado pelo usuario, porém o usuario nao deve ter acesso aos arquivos do disco, mas se ele abre o Internet Explorer pelo meu programa e digita C:\ , pronto......ele tem acesso aos arquivos pelo IE.

Como faço para bloquear isso ?


Responder

Posts

01/05/2003

Spy

Por favor pessoal, se alguem souber plis, to precisando mesmo, jah procurei em varios sites + ainda nao achei, se alguem souber por favor.

Caso eu ache eu coloco o fonte aki.

Desde jah Obrigado.


Responder

01/05/2003

Spy

Bom pessoal consegui bloquear o acesso aos arquivos pelo IE, atraves do evento click, agora soh falta deixar ele ´automatico´.
Como prometi, o código está aí:


Function GetText(WindowHandle: hwnd):string;
var
txtLength : integer;
buffer: string;
begin
TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
txtlength := txtlength + 1;
setlength (buffer, txtlength);
sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1]));
result := buffer;
end;

function GetURL:string;
var
ie,toolbar,combo,
comboboxex,edit,
worker,toolbarwindow:hwnd;
begin
ie := FindWindow(pchar(´IEFrame´),nil);
worker := FindWindowEx(ie,0,´WorkerA´,nil);
toolbar := FindWindowEx(worker,0,´rebarwindow32´,nil);
comboboxex := FindWindowEx(toolbar, 0, ´comboboxex32´, nil);
combo := FindWindowEx(comboboxex,0,´ComboBox´,nil);
edit := FindWindowEx(combo,0,´Edit´,nil);
toolbarwindow := FindWindowEx(comboboxex, 0, ´toolbarwindow32´, nil);
result := GetText(edit);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
label1.Caption:=GetURL;
url:=(Copy(GetURL,1,1));
label2.caption:=url;

if (url=´C´) or (url=´F´) or (url=´\´) then
begin
PostMessage(FindWindow(´IEFrame´, nil), WM_CLOSE,0,0);
end;

end;


Responder

01/05/2003

Spy

Bom pessoal consegui bloquear o acesso aos arquivos pelo IE, atraves do evento click, agora soh falta deixar ele ´[b:63bf6e5592]automatico[/b:63bf6e5592]´. Como prometi, o código está aí: Function GetText(WindowHandle: hwnd):string; var txtLength : integer; buffer: string; begin TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0); txtlength := txtlength + 1; setlength (buffer, txtlength); sendmessage (WindowHandle,wm_gettext, txtlength, longint(@buffer[1])); result := buffer; end; function GetURL:string; var ie,toolbar,combo, comboboxex,edit, worker,toolbarwindow:hwnd; begin ie := FindWindow(pchar(´IEFrame´),nil); worker := FindWindowEx(ie,0,´WorkerA´,nil); toolbar := FindWindowEx(worker,0,´rebarwindow32´,nil); comboboxex := FindWindowEx(toolbar, 0, ´comboboxex32´, nil); combo := FindWindowEx(comboboxex,0,´ComboBox´,nil); edit := FindWindowEx(combo,0,´Edit´,nil); toolbarwindow := FindWindowEx(comboboxex, 0, ´toolbarwindow32´, nil); result := GetText(edit); end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin label1.Caption:=GetURL; url:=(Copy(GetURL,1,1)); label2.caption:=url; if (url=´C´) or (url=´F´) or (url=´\´) then begin PostMessage(FindWindow(´IEFrame´, nil), WM_CLOSE,0,0); end; end;



Pra automatizar, coloque um timer com intervalo de 10 e no evento OnTimer coloque o seguinte:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Caption:=GetURL;
url:=(Copy(GetURL,1,1));
label2.caption:=url;
if (url=´C´) or (url=´F´) or (url=´\´) then
begin
PostMessage(FindWindow(´IEFrame´, nil), WM_CLOSE,0,0);
end;
end;


Para testar se está automatico mesmo eh soh colocar as duas janelas em modo ´restaurar´ uma do lado da outra....e conforme vc vai digitando na barra de endereços do IE, vai aparecendo no label1 do programa, se digitar C:\ ......ou file:///C.......ou \Algum Diretorio.......o programa fecha o IE automaticamente.... ou seja....pela barra de endereços nao tem + como acessar arquivos.

Vlw.


Responder

02/05/2003

Rebel_inside

Bom, ainda não entendi qual aplicação vc deseja fazer, mas isso não vem ao caso :P

Outra solução seria criar um form simulando o IE (usando o TWebBrowser) porém em ambos os casos - essa solução e a sua - se o usuário clicar em um link que está direcionando para um arquivo (ou pasta), ele irá conseguir acessar os arquivos do mesmo jeito.

Não sei se há uma solução definitiva para ´os seus problemas´. E se houver, você tem que estudar muito, mas muito mesmo, a API do windows. Como por exemplo usando Hooks (ganchos).


Responder

02/05/2003

Spy

A aplicacao q eu estou fazendo eh para uma Lan, na verdade sao dois programas, o client e o servidor, tem as funcoes basicas do tipo, logar...deslogar...cadastrar etc...

o programa eh executado em modo shell, toma a tela inteira, eh como um ´Windows´ (tem ateh alguns bugs heehhe)....tem um botao chamado Iniciar....q abre um menu com as opcoes do usuario tipo...cadastro dele...conta dele....etc...

tem a parte de manutencao do programa tbm...q da pra adicionar icones no desktop do programa e etc...

na lan o usuario nao pode ter acesso aos arquivos...por exemplo....se o usuario acessar o regedit ele pode fazer uma boa bagunça no pc...por isso ele soh pode ter acesso aos icones q estao no desktop do programa (q nao tem como fechar....nem tabular entre outro)....

soh q se fosse apenas jogos estaria tudo mil maravilhas....
soh q tem a porcaria do IE q o usuario pode abrir....isso eh q ta me atrapalhando..pois pelo IE ele pode acessar os arquivos.

Bom eu bloqueei o acesso a qualquer diretorio e arquivo pela barra de endereços do IE...soh que tem akele negocio que vc me falou neh, se o cara clicar em um link direcionado pra algum diretorio vai abrir !

Bom eu consegui bloquear isso tbm, + soh qndo o link aponta p/ diretorios, qndo ele aponta p/ arquivos ai o arquivo abre ! :/

To tentando descobrir uma forma de nao abrir... se alguem souber... por favor, posta aki.

Se eu descobrir como, eu volto aki e posto.


Responder

02/05/2003

Spy

se o usuário clicar em um link que está direcionando para um arquivo (ou pasta), ele irá conseguir acessar os arquivos do mesmo jeito. Não sei se há uma solução definitiva para ´os seus problemas´. E se houver, você tem que estudar muito, mas muito mesmo, a API do windows. Como por exemplo usando Hooks (ganchos).



Pra tudo se existe uma solucao! :)

Tai a solucao, demorei + fiz:)


procedure TForm1.Timer1Timer(Sender: TObject);
var
FechaDl: LongBool;
begin
url:=(Copy(GetURL,1,1));
[b:e84df2bb32]FechaDl := PostMessage(FindWindow(pchar(´#32770´),nil), WM_CLOSE,0,0);[/b:e84df2bb32]
if (url=´C´) or (url=´F´) or (url=´\´) then
begin
PostMessage(FindWindow(´IEFrame´, nil), WM_CLOSE,0,0);
end;
end;


Responder

07/07/2004

Spin3s

Ola.. Spy.. fiz do jeito que vc disse e tal , mas num funciona naum.. ele bloquea o salvar como.. e etc.. mas quando eu digito o texto na barrinha la aparece do memso jeito...



só uma duvida esse URL que vc usa no codigo , é uma varivel String?? onde eu declaro ela?


Responder

08/07/2004

Dopi

Ola SPY, interessante a sua aplicação... mas bastante dificil de executar....

Acho que uma maneira de ganhar acesso a arquivos da máquina é atraves de qualquer Save/Open Dialog... Geralmente nessas janelas o usuário também pode apagar, copiar, criar arquivos como se estivesse no Windows Explorer


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar