Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   atributos (https://www.clubdelphi.com/foros/showthread.php?t=31870)

diniremix 19-05-2006 23:22:12

atributos
 
hola atod@s y saludos

mediante llamadas al api o parecedidas mediante codigo delphi podria darle atributos a mis archivos como de solo lectura, ocultos de sistema etc..:(
uso shellexecute y trato d localizar un archivo y pasarle los parametros pero no m los acepta

por ej (especulando:) ) se podria hacer algo asip?
Código Delphi [-]
shellexecute(Form1.handle,nil,'attrib C:\fichero.txt +H +R +S','',sw_shownormal);

agradezco las sugerencias

gracias po sus respuestas:cool:

delphi.com.ar 19-05-2006 23:24:57

SetFileAttributes o SetFileAttributes es lo que buscas...
Código Delphi [-]
var
  Attrs : Word;
begin
  Attrs := FileGetAttr('MyFile.sys');

  if Attrs and faHidden <> 0 then
    FileSetAttr('MyFile.sys', Attrs – faReadOnly);
end;

En el foro hay varios ejemplos al respecto,
Saludos!

diniremix 19-05-2006 23:43:47

hola gracias delphi.com.ar

muy interesante trato d entender (y lo hago) pero nop entiendo esta linea...
Código Delphi [-]
var
  Attrs : Word;
begin
  Attrs := FileGetAttr('MyFile.sys');
 
//esta!!
  if Attrs and faHidden <> 0 then
    FileSetAttr('MyFile.sys', Attrs – faReadOnly);
//hasta aqui

end;

entiendo lo q escribiste asip:

a attrs le asignas la ruta del fichero...:)
y ahora evaluas si el archivo esta oculto y attrs es <>0 cierto?...:cool:
finalmente fijas el atributo d solo lectura (Attrs – faReadOnly) al archivo..

corregirme...

ah saludos y gracias por el codigo!

seoane 20-05-2006 00:44:06

Con el permiso de Federico creo que yo puedo explicartelo. La funcion FileGetAttr devuelve un numero, en el que cada bit significa un atributo (si el bit esta a 1 el atributo esta presente). Por lo tanto para saber si un atributo esta presente hacemos la operacion AND sobre el con un numero que tiene todos los bits a cero menos el que nos interesa, de este modo si el resultado es mayor que cero es que el bit que nos interesaba estaba a uno.

:D Espero no haberte liado mas

diniremix 21-05-2006 01:48:26

hola y salu2
gracias amigo seoane por el comentario lo explicaste como dicen acá
"con plastilina":) :D

muy instructivo gracias
y .... d nuevo gracias:) ;)

P.D.
no nos olvidemos del amigo delphi.com.ar tambien muchas gracias a él por la idea :) :D


La franja horaria es GMT +2. Ahora son las 12:37:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi