GARANTIR DESCONTO

Fórum Remover o Messenger do Windows XP via Delphi #291166

09/08/2005

0

Caros colegas, estou com um problema. Quero criar uma rotina para desintalar o Messenger do Windows XP.

Preciso ler um valor no registro do windows, na chave Key_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion (Valor é o PathName) então preciso que o Windows execute um comando, estou fazendo assim:

procedure TForm1.Button3Click(Sender: TObject);
var
Registry: TRegistry;
Path: String;
begin
{ Cria o objeto TRegistry }
Registry := TRegistry.Create;
{ seta a chave raiz; ex. hkey_local_machine }
Registry.RootKey := hkey_local_machine;
{ Abre e cria a chave }
Registry.OpenKey(´Software\Microsoft\Windows NT\CurrentVersion´, true);
{ Lê o valor }
Path := Registry.ReadString(´PathName´);
{ Fecha e libera a chave}
Registry.CloseKey;
Registry.Free;
{Executa o comando}
Winexec(´Rundll32 advpack.dll,LaunchINFSection´+Path+´\INF\msmsgs.inf,BLC.remove´, SW_SHOWNORMAL);
end;

Criei uma variavel Path: String, para armazenar o valor do registro.

Então preciso que o windows execute um command com base no path da instação do windows.

WinExec (´RunDLL32 .dll,LaunchINFSection´+Path+´\INF\msmsgs.inf,BLC.Remove´, SW_SHOWNORMAL);

Mas quando compilo da erro de incompatibilidade de Strting com Pchar:
Incompatible types: ´String´ and ´PChar´

Sendo que ao ler o valor PathName no registro obtenho um valor string, já para executar o comando a variavel deve ser PChar... acredito que tenha que converter a Variavel Path de String para Pchar. Como posso fazer isso?


Ibraimjr

Ibraimjr

Responder

Posts

09/08/2005

Sandra

Criei uma variavel Path: String, para armazenar o valor do registro. Então preciso que o windows execute um command com base no path da instação do windows. WinExec (´RunDLL32 .dll,LaunchINFSection´+Path+´\INF\msmsgs.inf,BLC.Remove´, SW_SHOWNORMAL); Mas quando compilo da erro de incompatibilidade de Strting com Pchar: Incompatible types: ´String´ and ´PChar´ Sendo que ao ler o valor PathName no registro obtenho um valor string, já para executar o comando a variavel deve ser PChar... acredito que tenha que converter a Variavel Path de String para Pchar. Como posso fazer isso?

ibraimjr,

Se o problema é converter a variável Path de String para PChar, basta usar:
WinExec (´RunDLL32 .dll, LaunchINFSection´ + PChar(Path) + ´\INF\msmsgs.inf, BLC.Remove´, SW_SHOWNORMAL);


Verifique se atende ao seu propósito. :D


Responder

Gostei + 0

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

Aceitar