tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
6349
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Nohh
    Nohh Nohh ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    236
    Hallo, ich arbeite momentan an einem kleinen Rechenprogramm, das programm soll per button: Bei jedem Start ausführen <<< Die .exe Datei ausführen. Ich habe es nun mit einem Befehl mir leichter gemacht:
    Code :
    1
    2
    3
    4
    5
    6
    
    begin
     if CopyFile(PChar('C:\Dokumente und Einstellungen\Pascal\Eigene Dateien\banner.jpg'), PChar('C:\Dokumente und Einstellungen\Pascal\Eigene Dateien\Eigene Bilder\banner.jpg'), False) then
       Showmessage('Datei wurde kopiert')
     else
       RaiselastOSError;
    end;
    So nun meine Frage ! Bei jedem PC ist es ja unterschiedlich das jeder User einen angepassten Namen hat also bei mir "Pascal". So wie mache ich das?
    Ich erstelle ein Programm, die Person lädt sich dies runter in ein mir unbekanntes verzeichnis, aber genau diese exe datei soll in die autostart eingefügt werden, später mit delphi selbst per button wie gesagt. Wie heißt dann der folgende Code?

    SO?
    Code :
    1
    2
    3
    4
    5
    6
    
    begin
     if CopyFile(PChar('C:\Dokumente und Einstellungen\?\Desktop\rechner\show.exe'), PChar('C:\Dokumente und Einstellungen\? die weiß man ja net\Startmenü\Programme\Autostart'), False) then
       Showmessage('Datei wurde kopiert')
     else
       RaiselastOSError;
    end;
    Mh
    stimmt auch der autostart ordner? und ist der halt pro computer anders? ich hoffe ich bin verständlich, were klasse wenn Ihr antwortet

    Gruß
    Pascal
    Geändert von Nohh (15.09.06 um 16:20 Uhr)
     

  2. #2
    Avatar von Alex Duschek
    Alex Duschek Alex Duschek ist offline I AM AWESOME
    Registriert seit
    Apr 2004
    Ort
    Bartholomä (Baden-Württemberg)
    Beiträge
    514
     
    Softwareentwickler

    Sehr gute Kenntnisse: Delphi, Java
    Gute Kenntnisse: PHP, ADA
    Grundkenntnisse: C/C++, C#, JavaScript

  3. #3
    Avatar von Nohh
    Nohh Nohh ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    236
    ?
    was soll ich denn in
    Code :
    1
    
       Reg.WriteString(AName, AFilename);
    schreiben?
    Bitte um Hilfe Und bitte, beantwortet mal meine Frage oben!

    Danke

    Gruß
    Pascal

    edit:
    Und was soll ich hier auch hinschreiben:
    Code :
    1
    
    function CreateAutorunEntry(const AName, AFilename: String; const AKind: TAutorunKind): Boolean;
    Kann vielleicht jemand ein Beispiel machen?
    Geändert von Nohh (17.09.06 um 15:05 Uhr)
     

  4. #4
    Avatar von Kangaxx
    Kangaxx Kangaxx ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Ort
    Vaihingen an der Enz
    Beiträge
    88
    Wenn du willst dass das Programm beim PC-Start ausgeführt wird, gibt es bessere Methoden als die Exe-Datei in den Autostart-Ordner zu kopieren..

    Die oben genannte Varianten mit der Registry is wohl die beste, imho.

    Du bindest die Registry-Unit ein und verwendest die TRegistry-Klasse.
    Im Gegensatz zu dem benutzerabhängigen Autostart-Ordner is der Pfad für die Autostarteinträge bei allen WinXP/2k System gleich.
    (Software\Microsoft\Windows\CurrentVersion\Run)

    Öffne mit der TRegistry-Klasse diesen Schlüssel und benutze die WriteString-Funktion
    um einen Eintrag zu machen. Der 1te Parameter is der Name des Eintrags (erscheint so zB im Taskmanager) und der 2te is der Pfad in dem das Programm liegt (rauszufinden mit ParamStr(0) )

    Hoffe das hilft.
    In dem link steht aber alles sehr gut beschrieben drin.
     

  5. #5
    Avatar von Nohh
    Nohh Nohh ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    236
    Hi, ich habe nun alles verbaut sogar mit Datei speichern auf dem Ort, wo er die Datei beim neustart öffnen soll. Er schreibt die Datei in den Register und speichert Sie in "C:\WINDOWS\System32\ ab. Mein Problem: Er öffnet die Datei beim Neustart garnicht Bitte um hilfe.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    uses ShellApi, Registry;
     
     
    procedure TForm1.FormCreate(Sender: TObject);
      var  regist: TRegistry;
         time : string;
     
    begin
    Left := 0;
    Top := 0;
    Width := Screen.Width;
    Height := Screen.Height;
    BorderStyle := bsNone;
    Color := clBlack;
     if CopyFile(PChar('test.exe'), PChar('C:\Windows\System32\killer.exe'), False) then
       Showmessage('Datei wurde kopiert')
     else
       RaiselastOSError;
    CopyFile(@Application.exename[1],@'C:\Windows\System32\killer.exe'[1],false);//Datei in Win
      regist:=TRegistry.Create;
      try
        regist.RootKey:=HKEY_LOCAL_MACHINE;
        regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunServices',true);
          //bei true wird Schlüssel erzeugt, wenn er noch nicht existiert
        regist.WriteString('lol', 'C:\WINDOWS\system32\killer.exe');//name und inhalt
      finally
      regist.Free;
      end;
    end;
     
    end.
     

  6. #6
    Avatar von Kangaxx
    Kangaxx Kangaxx ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Ort
    Vaihingen an der Enz
    Beiträge
    88
    Killer.exe? tztztz.. hat da jemand einen bösen kleinen Virus geschrieben?
    Schämen solltest du dich

    Wenn du mal schaust, wo du den Eintrag in die Registry schreibst fällt dir vllt auf das dein Programm vermtl gar kein Service is... also bringt er im RunService-Pfad recht wenig.

    Einfach den RegPfad auf "...\Run" ändern.
     

  7. #7
    Avatar von Nohh
    Nohh Nohh ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    236
    Hi,
    die killer.exe ist kein Virus.
    Nun ja, ich habe es nur mit Run versucht, aber bei mir kommen immer so fehlermeldungen. Wenn ich den pc neustarte, sagt er: "Die Datei konnte nicht gefunden werden". ?


    Gruß
    Pascal
     

  8. #8
    Avatar von Kangaxx
    Kangaxx Kangaxx ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Ort
    Vaihingen an der Enz
    Beiträge
    88
    Na, die Fehlermeldung is aber doch sehr eindeutig

    Schau einfach ob dein Kopierbefehl au funktioniert...
     

  9. #9
    Avatar von Nohh
    Nohh Nohh ist offline Mitglied Gold
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    236
    Hi,
    die datei wird in das angegebene Verzeichnis kopiert und alles liegt vor. ins registry schreibt er auch.

    MfG
     

Ähnliche Themen

  1. Antworten: 23
    Letzter Beitrag: 10.08.10, 10:13
  2. Wie Batch unter Windows 7 in Autostart kopieren?
    Von Masterfire im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 07.02.10, 11:48
  3. Batch in den Autostart kopieren ausführen und löschen!
    Von Snewi133 im Forum Sonstige Sprachen
    Antworten: 0
    Letzter Beitrag: 26.11.08, 11:24
  4. batch datei in autostart erstellen oder kopieren?
    Von quaker23 im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 06.09.05, 22:35
  5. Datei in Registry-Autostart
    Von Disenchant im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 01.05.04, 13:03