Avatar billede jonat Nybegynder
11. november 2003 - 20:59 Der er 8 kommentarer og
2 løsninger

Åben program ved logon

Jeg har lavet et program som tæller hvor lang tid jeg er logget på. men her kommer problemet.. hvordan får jeg mit program til at starte hver gang jeg logger på og slutte hver gang jeg logger af. den skal gerne laves sådan at den kun gør det inde under en bestemt bruger. (Win xp pro)
og hvad skulle jeg gøre hvis den skulle starte ved computerstart??
Avatar billede Slettet bruger
11. november 2003 - 21:05 #1
Du kan bestemme filens brugerrettigheder, og lægge en executable i windows startup folder.

Det er dog lidt en sideløsning, da jeg vidst mener man kan hardcode det istedet. Men hvis det bare er til test, er det vel okay.
Avatar billede jonat Nybegynder
11. november 2003 - 21:09 #2
Hvor ligger "windows startup folder"?
Avatar billede netpxg Nybegynder
11. november 2003 - 21:11 #3
Læg det programmer - > start for den pågældende bruger.
Når man logger af eller windows lukkes kaldes "canclose" eller terminate eller hvad det nu hedder i dit program, så hvis der skal ske noget ved logoff, er det her det skal gøres.
Hvis det skal starte ved boot kan du benytte "Scheduled task", run at boot time.
Endelig kan man jo også rettet "Run" i registry, den findes jo i "current user" og "local machine".
Avatar billede jonat Nybegynder
11. november 2003 - 21:16 #4
Jeg har tidligere brugt denne kode til at finde skrivebordet. kan man ikke bruge noget ligendene til at finde
"programmer - > start for den pågældende bruger."?

procedure TForm1.Button5Click(Sender: TObject);
var
  MyReg: TRegIniFile;    //NB Registry skal tilføjes Uses
begin
  MyReg := TRegIniFile.Create(
    'Software\MicroSoft\Windows\CurrentVersion\Explorer');
  Showmessage(MyReg.ReadString('Shell Folders', 'Desktop', ''));
  MyReg.Free;
end;
Avatar billede athlon-pascal Juniormester
11. november 2003 - 21:25 #5
Gør det direkte via registreringsdatabasen, med de dertil indrettede nøgler:
http://www.swissdelphicenter.ch/torry/showcode.php?id=396 :-)

Der er dog en enkelt ting der skal ændres i eksemplet, for at programmet kun starter op for en bestemt bruger:

uses
  Registry;

procedure SetAutoStart(AppName, AppTitle: string; bRegister: Boolean);
const
  RegKey = '\Software\Microsoft\Windows\CurrentVersion\Run';
  // or: RegKey = '\Software\Microsoft\Windows\CurrentVersion\RunOnce';
var
  Registry: TRegistry;
begin
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_CURRENT_USER; // HKEY_LOCAL_MACHINE; // Her har jeg ændret :-)
    if Registry.OpenKey(RegKey, False) then
    begin
      if bRegister = False then
        Registry.DeleteValue(AppTitle)
      else
        Registry.WriteString(AppTitle, AppName);
    end;
  finally
    Registry.Free;
  end;
end;

// Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
  // 1.Parameter: Path to your Exe-File
  // 2. Parameter: the Title of your Application
  // 3. Set (true) or Unset (false) Autorun
  SetAutoStart(ParamStr(0), 'Title of your Application', True);
end;
Avatar billede jonat Nybegynder
11. november 2003 - 21:30 #6
Dvs. at ved proceduren:
procedure SetAutoStart(AppName, AppTitle: string; bRegister: Boolean);

man så skriver "setautostart(application.exename,'Tælle program',og så 'true' hvis den skal være der og 'false' hvis den ikke skal være der)"?
Avatar billede athlon-pascal Juniormester
11. november 2003 - 21:35 #7
Netop :-)
Avatar billede athlon-pascal Juniormester
11. november 2003 - 21:38 #8
Prøv at gå ned i din startmenu og vælge kør.
Skriv msconfig og tryk enter.
Vælg fanebladet Start.
Kig under Placering i listen, du vil se, at mange af de programmer der starter når Windows starter, er registreret i registreringsdatabasen, altså at de er indstillet til at starte på samme måde :-)
Avatar billede jonat Nybegynder
11. november 2003 - 21:38 #9
--> pacr00n dit svar fungere også men jeg tror den med registeringsdatabasen fungere bedst.
--> athlon-pascal
1000 tak.. jeg har lige testet det og det funger bare... :->

Men der er point til jer begge.
Avatar billede jonat Nybegynder
11. november 2003 - 21:41 #10
--> athlon-pascal ja det har du ret i men nu må jeg nok hellere få givet de point... :-)

endnu engang tak for hjælpen!
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