Problema ao criar atalho de internet

01/12/2021

0

Estou com um problema na criação de atalho da internet. Estou utilizando a seguinte função para criar os atalhos:

procedure CriarAtalhoDaNet(const FileName, URL, Icon : string);
var

INI : TIniFile;
directory : string;

begin

directory := ExtractFilePath (Application.ExeName);
INI := TIniFile.Create(directory + FileName + ''.url'');

with INI do
try

//Escrevendo a URL do Atalho
WriteString(''InternetShortcut'',''URL'',URL);

//Extraindo Ícone de um Executável, neste caso do EXE do Internet Explorer
WriteString(''InternetShortcut'',''IconFile'', Icon);

//Colocando o ìndice do ícone, porque o executavel possui mais de um Ícone
WriteString(''InternetShortcut'',''IconIndex'',''0'');

finally
FreeAndNil(INI);
end;

FreeAndNil(INI);

end;

E dentro de um botão, eu chamo a função da seguinte forma: CriarAtalhoDaNet(''Teste'', ''https://www.google.com.br'', ''C:\Delphi\teste\Win32\Debug\Icons\AreaDeArquivos.ico'');
Assim que é executado essa função, o programa cria o arquivo .url corretamente e caso eu abra ele cai no site do google.

Porém, se eu executar o programa novamente, trocando apenas a URL da função, por exemplo: CriarAtalhoDaNet(''Teste'', ''https://www.youtube.com'', ''C:\Delphi\teste\Win32\Debug\Icons\AreaDeArquivos.ico'');
Ele não sobrescreve a URL que está no arquivo .url

Conforme está na função, já tentei usar o FreeAndNil para liberar o objeto, já tentei utilizar somente o Free para as informações não ficarem presas.

Mesmo apagando o arquivo, ele não cria novamente com a URL que eu solicitei, só vai funcionar se eu executar o programa em outro diretório, mas depois de executar em outro diretório, aquele também já era.
Fiz várias confirmações de que ele recebe o valor correto quando eu chamo a função, inclusive se eu acessar as Propriedades do arquivo, na aba "Documento da Web" ele fica com a URL da primeira vez que foi executado (que nessa ocasião seria https://www.google.com.br), mas caso eu acesse a aba "Detalhes" terá na coluna Propriedade a "URL" com o valor "https://www.youtube.com".

Consegui verificar, que quando troco o nome depois de executado o programa pela segunda vez, ele troca para a URL correta. Por exemplo: Executei a primeira vez com a URL: https://www.google.com.br, em seguida apaguei o arquivo e executei a segunda vez com a URL: https://www.youtube.com. Ele ficará salvo a URL: https://www.google.com.br (Que está incorreto), mas caso eu altere o nome do arquivo manualmente de "Teste" para "Teste1", ele recebe a URL: https://www.youtube.com.(OBS: Caso eu volte o nome para "Teste", ele volta a URL para https://www.google.com.br)

Estou quebrando a cabeça já tem uns dias com esse problema, não sei mais o que fazer.
Lucas Ribeiro

Lucas Ribeiro

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar