Fórum extensão própria #229721
04/05/2004
0
Olá meu amigos!! :D
Preciso criar uma extensão particular para o meu programa, isto é muito importante para mim hj e não estou sabendo como fazer... vou tentar passar uma noção do que o programa faz e o que ele teria que fazer ok??
Existe um administrador criado em delphi, onde o usuário entra com strings, imagens e vídeos. Ao final de enteradas todas informações ele finaliza a sessão e é gerado um arquivo ini com todas as informações interadas e mais 3 arquivos txt contendo: menu, submenu, conteudo, e os arquivos de imagem são renomeados e salvos numa pasta img
Porque? Porque depois existe um interpretador criado em flash, que fará a leitura destes arquivos e criará um front-end com as informações interadas. o arquivo ini é só para que o cara possa abrir de novo se ele quiser captaram?
O problema é o seguinte, se o neguinho abrir o arquivo txt e alterar o conteúdo de texto que tem lá, ou se ele descobrir como o sistema gerencia imagens etc, o administrador e seus bloqueios perdem o sentido...! A idéia era a seguinte:
Depois que o usuário terminar tudo, o programa deveria juntar todas essas informações num arquivo só, tipo ´nome_do_cliente.dit´ .... depois, qdo o cara fosse abrir, ou executar o cd gerado, ao clicar no executável, ele automaticamente faria uma cópia temporária de todo o conteúdo para a pasta temporaria do windows, terminando de visualizar, tudo seria apagado captaram?
Então:
Teriamos uma pasta com somente dois arquivos:
nome_do_cliente.dit
cliente.exe
mesmo na hora de abrir, seria interessante que o cliente abrisse o .dit, mas o problema é que não sei se é possível consultar ou gerar uma rotininha qualquer que faça a leitura apenas das informações do ini etc.... Bom, se não ficou claro, mande-me perguntas que eu tento explicar melhor ok?
ps. Num adianta ser um arquivo txt renomeado pq. tenho que ´compilar´ ou ´encriptar´ as informações contidas nesse arquivo ok?
Agradeço a ajuda se possível...
abs people :roll:
Preciso criar uma extensão particular para o meu programa, isto é muito importante para mim hj e não estou sabendo como fazer... vou tentar passar uma noção do que o programa faz e o que ele teria que fazer ok??
Existe um administrador criado em delphi, onde o usuário entra com strings, imagens e vídeos. Ao final de enteradas todas informações ele finaliza a sessão e é gerado um arquivo ini com todas as informações interadas e mais 3 arquivos txt contendo: menu, submenu, conteudo, e os arquivos de imagem são renomeados e salvos numa pasta img
Porque? Porque depois existe um interpretador criado em flash, que fará a leitura destes arquivos e criará um front-end com as informações interadas. o arquivo ini é só para que o cara possa abrir de novo se ele quiser captaram?
O problema é o seguinte, se o neguinho abrir o arquivo txt e alterar o conteúdo de texto que tem lá, ou se ele descobrir como o sistema gerencia imagens etc, o administrador e seus bloqueios perdem o sentido...! A idéia era a seguinte:
Depois que o usuário terminar tudo, o programa deveria juntar todas essas informações num arquivo só, tipo ´nome_do_cliente.dit´ .... depois, qdo o cara fosse abrir, ou executar o cd gerado, ao clicar no executável, ele automaticamente faria uma cópia temporária de todo o conteúdo para a pasta temporaria do windows, terminando de visualizar, tudo seria apagado captaram?
Então:
Teriamos uma pasta com somente dois arquivos:
nome_do_cliente.dit
cliente.exe
mesmo na hora de abrir, seria interessante que o cliente abrisse o .dit, mas o problema é que não sei se é possível consultar ou gerar uma rotininha qualquer que faça a leitura apenas das informações do ini etc.... Bom, se não ficou claro, mande-me perguntas que eu tento explicar melhor ok?
ps. Num adianta ser um arquivo txt renomeado pq. tenho que ´compilar´ ou ´encriptar´ as informações contidas nesse arquivo ok?
Agradeço a ajuda se possível...
abs people :roll:
Gamasou
Curtir tópico
+ 0
Responder
Posts
04/05/2004
Motta
ve se ajuda ...
674 - Usando o Registro do Windows
Nesta matéria veremos como trabalhar com o registro do windows utilizando suas ´Api´s´. Esta matéria possui algumas técnicas que tratam o registro do windows. Veja as dicas desta matéria:
Como definir, que uma certa extensão de arquivo seja aberta pelo seu programa.
Como escrever e ler algum valor no registro do windows.
E o que escrever lá, para que sua aplicação seja inicializada junto com o windows.
Vejamos então a primeira dica:
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure TForm1.Button1Click(Sender: TObject);
Var
Reg : TRegistry;
Begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(´\MeuPrograma´, True);
WriteString(´´, ´Arquivo do meu programa´); //Nome dado ao arquivo de sua aplicação. ´Ex: Imagem Gif´.
CloseKey;
OpenKey(´MeuPrograma\DefaultIcon´, True);
// O primeiro parâmetro da linha de comando abaixo, é para escrever uma string vazia.
// E o último parâmetro é para colocar o ícone da sua aplicação nos arquivos que serão abertos por ela.
WriteString(´´, Application.ExeName + ´,0´);
CloseKey;
OpenKey(´MeuPrograma\shell\open\command´, True);
WriteString(´´, Application.ExeName + ´ ´¬1´´);
CloseKey;
RootKey := HKEY_CLASSES_ROOT;
OpenKey(´\.ext´, True); // Substitua o ´ext´ pela extensão que você deseja utilizar.
WriteString(´´, ´MeuPrograma´);
CloseKey;
end;
finally
Reg.CloseKey;
Reg.Free;
end;
End;
Acredito que você tenha conseguido aplicar esta técnica que lhe pode ser bastante útil. Vamos então ver a segunda dica, com ela você aprenderá como ler ou escrever um valor no registro do windows:
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure button1.click(sender: Tobject);
var
Reg: Tregistry;
begin
Reg:=Tregistry.create;
with Reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
Openkey(´Software\Microsoft\Outlook Express\5.0\Default Settings\Recent Stationery List´,false);
writestring(´File0´, ´Natureza.htm´);
writestring(´File1´, ´Dia Claro.htm´);
closekey;
end;
end;
No caso acima nós exemplificamos o que é escrever no registro, Neste exemplo nós trocamos de ordem os papeis de carta do Microsoft Outlook Explorer, embora você possa alterar qualquer registro já existente no ´regedit´. Se o que você que é incluir um registro e não editar, como nós fizemos, basta que no primeiro parâmetro da linha de comando ´writestring´, você coloque um nome para o seu registro, que não exista nesta pasta.
Agora no código abaixo veremos como ler um valor de um registro qualquer:
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure button1.click(sender: Tobject);
var
Reg: Tregistry;
S: String;
begin
Reg:=Tregistry.create;
with Reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
OpenkeyReadOnly(´SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\´,false);
s:=readstring(´version´);
closekey;
end;
edit.text:=s;
end;
Neste caso nós pegamos o registro ´version´, que significa a versão do windows, colocamos o seu valor na variável ´s´ e depois à ´jogamos´ num ´edit´ qualquer, apenas para que possamos visualizá-la.
Agora que você já sabe como escrever no registro do windows, veremos o que precisamos escrever, para colocar a nossa aplicação para ser inicializada junto com o windows.
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure button1.click(sender: Tobject);
var
Reg: Tregistry;
begin
Reg:=Tregistry.create;
with Reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
Openkey(´\MICROSOFT\WINDOWS\CURRENTVERSION\RUN´,false);
writestring(´MeuPrograma´, pchar(application.exename));
closekey;
end;
end;
Com mais essa dica, finalizo a nossa matéria que ensina a trabalhar com o registro do windows. Espero que você tenha gostado e que lhe seja bastante útil.
fonte HP:www.lloydsoft.hpg.ig.com.br
obs: nao testei !!
674 - Usando o Registro do Windows
Nesta matéria veremos como trabalhar com o registro do windows utilizando suas ´Api´s´. Esta matéria possui algumas técnicas que tratam o registro do windows. Veja as dicas desta matéria:
Como definir, que uma certa extensão de arquivo seja aberta pelo seu programa.
Como escrever e ler algum valor no registro do windows.
E o que escrever lá, para que sua aplicação seja inicializada junto com o windows.
Vejamos então a primeira dica:
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure TForm1.Button1Click(Sender: TObject);
Var
Reg : TRegistry;
Begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(´\MeuPrograma´, True);
WriteString(´´, ´Arquivo do meu programa´); //Nome dado ao arquivo de sua aplicação. ´Ex: Imagem Gif´.
CloseKey;
OpenKey(´MeuPrograma\DefaultIcon´, True);
// O primeiro parâmetro da linha de comando abaixo, é para escrever uma string vazia.
// E o último parâmetro é para colocar o ícone da sua aplicação nos arquivos que serão abertos por ela.
WriteString(´´, Application.ExeName + ´,0´);
CloseKey;
OpenKey(´MeuPrograma\shell\open\command´, True);
WriteString(´´, Application.ExeName + ´ ´¬1´´);
CloseKey;
RootKey := HKEY_CLASSES_ROOT;
OpenKey(´\.ext´, True); // Substitua o ´ext´ pela extensão que você deseja utilizar.
WriteString(´´, ´MeuPrograma´);
CloseKey;
end;
finally
Reg.CloseKey;
Reg.Free;
end;
End;
Acredito que você tenha conseguido aplicar esta técnica que lhe pode ser bastante útil. Vamos então ver a segunda dica, com ela você aprenderá como ler ou escrever um valor no registro do windows:
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure button1.click(sender: Tobject);
var
Reg: Tregistry;
begin
Reg:=Tregistry.create;
with Reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
Openkey(´Software\Microsoft\Outlook Express\5.0\Default Settings\Recent Stationery List´,false);
writestring(´File0´, ´Natureza.htm´);
writestring(´File1´, ´Dia Claro.htm´);
closekey;
end;
end;
No caso acima nós exemplificamos o que é escrever no registro, Neste exemplo nós trocamos de ordem os papeis de carta do Microsoft Outlook Explorer, embora você possa alterar qualquer registro já existente no ´regedit´. Se o que você que é incluir um registro e não editar, como nós fizemos, basta que no primeiro parâmetro da linha de comando ´writestring´, você coloque um nome para o seu registro, que não exista nesta pasta.
Agora no código abaixo veremos como ler um valor de um registro qualquer:
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure button1.click(sender: Tobject);
var
Reg: Tregistry;
S: String;
begin
Reg:=Tregistry.create;
with Reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
OpenkeyReadOnly(´SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\´,false);
s:=readstring(´version´);
closekey;
end;
edit.text:=s;
end;
Neste caso nós pegamos o registro ´version´, que significa a versão do windows, colocamos o seu valor na variável ´s´ e depois à ´jogamos´ num ´edit´ qualquer, apenas para que possamos visualizá-la.
Agora que você já sabe como escrever no registro do windows, veremos o que precisamos escrever, para colocar a nossa aplicação para ser inicializada junto com o windows.
Uses
Windows, Messages .... Registry; // Não esqueça de adicionar a Unit Registry na sessão uses...
procedure button1.click(sender: Tobject);
var
Reg: Tregistry;
begin
Reg:=Tregistry.create;
with Reg do
begin
rootkey:=HKEY_LOCAL_MACHINE;
Openkey(´\MICROSOFT\WINDOWS\CURRENTVERSION\RUN´,false);
writestring(´MeuPrograma´, pchar(application.exename));
closekey;
end;
end;
Com mais essa dica, finalizo a nossa matéria que ensina a trabalhar com o registro do windows. Espero que você tenha gostado e que lhe seja bastante útil.
fonte HP:www.lloydsoft.hpg.ig.com.br
obs: nao testei !!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)