Avatar billede rekun Nybegynder
23. august 2008 - 19:35 Der er 13 kommentarer og
1 løsning

Slette sit eget program

Hej Eksperter...

jeg har brugt denne kode til at få mit program til at starte op sammen med windows
const RunKey = '\Software\Microsoft\Windows\CurrentVersion\Run\';
var
Registry : TRegistry;
begin
  Registry := TRegistry.Create;
  try
      Registry.RootKey := HKEY_CURRENT_USER;
      if Registry.OpenKey(RunKey, FALSE) then
      begin
          Registry.WriteString('WinMap', ParamStr(0));
      end;
  finally
      Registry.Free;
  end;

Så mit spørgsmål er delt op i 2...
1 Hvordan sletter jeg denne key i registreringsdatabasen igen
2 Hvordan får jeg slettet min exe fil ( har tænkt på noget med RunOnce i registreringsdatabasen, men kan ikke finde ud af det )
Avatar billede spil2vind Nybegynder
23. august 2008 - 19:44 #1
Du skal bruge RunOnce kommandoen
Avatar billede rekun Nybegynder
23. august 2008 - 20:03 #2
ja, mem hvordan gør jeg det?
Avatar billede spil2vind Nybegynder
23. august 2008 - 20:56 #3
Skriv i registreringsdatabasen, under RunOnce
Avatar billede rekun Nybegynder
23. august 2008 - 21:31 #4
ja, men hvad skal jeg skrive der???
Avatar billede stone Forsker
23. august 2008 - 22:18 #5
Du kan ikke slette et kørende *.exe program men du kan gøre at den sletter programmet næste gang windows kører.

uses Registry;

procedure TForm1.Button1Click(Sender: TObject) ;
var reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := False;
reg.OpenKey(
  'Software\Microsoft\Windows\
  CurrentVersion\RunOnce',
  False) ;
reg.WriteString('Delete Me!',
  'command.com /c del Dummy.txt') ;
reg.CloseKey;
reg.free;
end;
Avatar billede hrc Mester
23. august 2008 - 23:09 #6
Dette link viser hvordan man sætter en batch-process igang:

http://www.swissdelphicenter.ch/torry/showcode.php?id=123
Avatar billede rekun Nybegynder
26. august 2008 - 14:56 #7
stone var først...

så hvis du smider et svar, så skal du få dine point
Avatar billede mcgoat Nybegynder
26. august 2008 - 15:02 #8
Syntes jeg læste et andet sted det var muligt at køre et program "kun" i hukommelsen, og derved kunne slette filen fra sit eget program, nogen der kender noget til det?
Avatar billede stone Forsker
26. august 2008 - 18:00 #9
Her svar.....
Avatar billede stone Forsker
26. august 2008 - 18:03 #10
mcgoat...

Du skal nok selv oprette et spørgsmål vedr. din kommentar, da det er dårlig etik at stille spørgsmål inde i andres spørgsmål....

//stone
Avatar billede hrc Mester
26. august 2008 - 21:45 #11
Nu hvor spørgsmålet er stillet fik jeg tidligere den idé om man kunne have en tråd kørende. Altså noget med et eget adresseområde.

Hvis man kunne starte en sådan tråd (altså ikke et eksternt program vha. execute), kunne man måske få den til at slette exe-filen, når programmet lukkede.

Er der - og det er relevant for denne spørger - nogen der ved om man kan lave en forældreløs tråd? Se http://www.eksperten.dk/spm/843136

Hvis ikke stone havde nævnt etik, var jeg nok bare fortsat i dette spørgsmål. Det er jo stadig relevant for spørgeren.
Avatar billede mcgoat Nybegynder
27. august 2008 - 11:23 #12
Var ikke ment som et egentlig spørgsmål, bare at _hvis_ man kunne, så ville det måske være en bedre løsning til rekun :-)
Avatar billede stone Forsker
27. august 2008 - 13:20 #13
ok... mcgoat så undskylder jeg min kommentar
Avatar billede rekun Nybegynder
27. august 2008 - 15:31 #14
mcgoat -> det ville det helt sikkert, men det er nok inden for min nuværende evner at lave :D

lukker og slukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester