AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm in Autostart setzen?

Ein Thema von CalganX · begonnen am 22. Jul 2002 · letzter Beitrag vom 29. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Programm in Autostart setzen?

  Alt 22. Jul 2002, 17:45
Hi @all!
Ich habe eine Frage: ich möchte, dass man auf Knopfdruck mein Programm (Verzeichnis: "C:\myProg\Prog.exe") in den Autostart / aus dem Autostart heraus gesetzt wird.
Wie mache ich das unter Delphi???

Chris1308
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2
  Alt 22. Jul 2002, 17:49
Ich würde das über einen Registry-Eintrag in "HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr entVersion\Run" lösen. Das wäre dann ein neuer Eintrag vom Typ 'String' mit der vollständigen Pfadangabe zu Deinem Programm. Das Bearbeiten der Registry haben wir hier kürzlich erst gehabt.

Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 22. Jul 2002, 18:08
Erstell doch lieber eine Verknüpfung im Autostart Ordner anstatt die Reg weiter voll zu Müllen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 22. Jul 2002, 21:07
Moin Daniel B,

allerdings ist es erheblich einfacher den Registryeintrag zu realisieren, als einen Shortcut in Autostart zu erstellen (falls man nich eine fertige lnk Datei kopiert).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 22. Jul 2002, 21:30
Zitat von Christian Seehase:
allerdings ist es erheblich einfacher den Registryeintrag zu realisieren, als einen Shortcut in Autostart zu erstellen
Hi Christian,

natürlich hast du da recht. Nur ich bin der Meinung, wenn man die möglichkeit hat auf die Reg zu verzichten dann sollte man das auch machen.
Bei 9x/ME wo man regelmässig 1x im Monat oder alle 2Monate formatiert und neuinstalliert, da ist es egal. Aber bei NT/2k/XP, würde ich es mir schon überlegen.
Denn da muss man Müll sehr lange mit sich rumschleppen.
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#6
  Alt 22. Jul 2002, 22:19
Hier ist mal Code um eine Verknüpfung zu erstellen:
Code:
function CreateLink(lpszPathObj,lpszPathLink,
  lpszDesc: string):Boolean;
var
  psl: IShellLink;
  ppf: IPersistFile;

const
  IID_IPersistFile:
     TGUID = (D1:$0000010B;
              D2:$0000;
              D3:$0000;
              D4:($C0,$00,$00,$00,$00,$00,$00,$46));
begin
  result := False;
  if SUCCEEDED(CoCreateInstance(CLSID_ShellLink,
                                nil,
                                CLSCTX_INPROC_SERVER,
                                IID_IShellLinkA,
                                psl)) then
    begin
      psl.SetPath(PChar(lpszPathObj));
      psl.SetDescription(PChar(lpszDesc));
      if SUCCEEDED(psl.QueryInterface(IID_IPersistFile,
                   ppf)) then
        begin
          ppf.Save(StringToOLEStr(lpszPathLink),TRUE);
          Result := true;
          ppf._Release; //---> Runtime-Error wenn aktiv
        end;
    end;
  psl._Release; // ---> Runtime-Error wenn aktiv
end;
Im Usesteil hab ich
Code:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  activex, comobj, shlobj, StdCtrls;
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#7
  Alt 23. Jul 2002, 09:48
[quote]// ---> Runtime-Error wenn aktiv [/qoute]
Was meinst du damit? Ich habe den Code noch nicht ausprobiert, da die File jetzt ersteinmal in der Regedit steht.

Chris1308
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#8
  Alt 23. Jul 2002, 12:37
Hi Chris1308,

die _Release-Kommandos würde ich einfach weglassen, da Delphi in SachenCOM die intelligenteste Entwicklungsumgebnug ist (_AddRef/_Release, IDispatch.Invoke()) und COM-Objekte, wenn deren Gültigkeitsbereich endet oder auf die gleiche Variable eine neue Referenz gelegt wird, automatisch dereferenziert werden.

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Programm in Autostart setzen?

  Alt 4. Mai 2004, 18:49
Hallo,

kann mir jemand folgenden Code erklären und vielleicht auch sagen, wie man ihn anwenden muss:

Code:
function CreateLink(lpszPathObj,lpszPathLink,
  lpszDesc: string):Boolean;
var
  psl: IShellLink;
  ppf: IPersistFile;

const
  IID_IPersistFile:
     TGUID = (D1:$0000010B;
              D2:$0000;
              D3:$0000;
              D4:($C0,$00,$00,$00,$00,$00,$00,$46));
begin
  result := False;
  if SUCCEEDED(CoCreateInstance(CLSID_ShellLink,
                                nil,
                                CLSCTX_INPROC_SERVER,
                                IID_IShellLinkA,
                                psl)) then
    begin
      psl.SetPath(PChar(lpszPathObj));
      psl.SetDescription(PChar(lpszDesc));
      if SUCCEEDED(psl.QueryInterface(IID_IPersistFile,
                   ppf)) then
        begin
          ppf.Save(StringToOLEStr(lpszPathLink),TRUE);
          Result := true;
          ppf._Release; //---> Runtime-Error wenn aktiv
        end;
    end;
  psl._Release; // ---> Runtime-Error wenn aktiv
end;
mfg
Helmi
  Mit Zitat antworten Zitat
Plat

Registriert seit: 17. Dez 2003
40 Beiträge
 
#10

Re: Programm in Autostart setzen?

  Alt 7. Mai 2004, 17:48
Probiers mal damit

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  reg : TRegistry;
begin
  reg := tregistry.create;
  with reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true);
    WriteString('deinprogname', paramstr(0));
    CloseKey;
    free;
  end;

end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz