AGB  ·  Datenschutz  ·  Impressum  







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

Hilfe bei Autostart und .Bat Datei

Ein Thema von CreekMary · begonnen am 10. Feb 2008 · letzter Beitrag vom 10. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
CreekMary
(Gast)

n/a Beiträge
 
#1

Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 13:13
Hallo

Ich bin grad dabei mein erstes Programm zu schreiben, darum bitte keine "Fremdwörter"

Also, mein Programm soll sich automatisch in die Registry als Autostart eintragen. Aus einem anderen Thread hier im Forum hab ich diesen Sourcecode für die Registry Eintragung einfach genommen.
Desweitere soll mein Programm nach 60 Minunten den PC automatisch herunterfahren (Gelöst per .BAT datei mit "Shutdown -s") und schließlich soll mein Programm sich auch noch von selbst beenden.

Hier ist erstmal der Source Code meines Programms:
Delphi-Quellcode:
unit MeinProgrammU;

interface

uses
  Windows, Messages, Registry, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
  var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    Reg.WriteString('EigenesProgramm', ParamStr(0));
    Reg.CloseKey;
  finally
    Reg.Free;
    Sleep (3600000);
    WinExec('Shutdown.bat', SW_SHOWNORMAL);
    close;
end;
end;
end.
Nun gibt es folgende Probleme:

1. Das Programm beendent sich nicht.
2. Nach dem Neustart funktioniert meiner ansicht nach alles nur der PC wird nicht herunter gefahren.


Bitte beachten (und genau das finde ich das komische), dass bei ersten mal öffnen, das Programm seine Funktionen alles ausführt, nur beim nächsten mal, wo es über den Autostart gestartet wird funktioniert das herunterfahren nicht mehr =(

Hoffe ihr könnt mir helfen. Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 13:26
hallo und willkommen in der dp

dein problem ist deine sleep funktion, mit der sagst du ihm quasi, das er in dem quellcode erst na einer stunde weiter machen soll, deswegen beendet er das programm auch nicht, weil er quasi ne pause macht!!! auch dein 2 problem sollte daran ligen..


edit:
ach ja, mit dem runterfahren nach dem neustarten hat er wahrscheinlich probleme, weil er die "*.bat" datei nicht findet, denn bei dem neustart hat er einen anderen augenblicklichen pfad drinne, als wenn du dein programm direkt startest! abhilfe schafft dabei, eine pfadangabe mit dem winexec parameter zu übergeben..

und noch als anmerkung, die funktion winexec ist veraltet und nur noch für kompatiblität abwärtshalber vorhanden..
z.b. createprocess!!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 13:27
Hi CreekMary,
zuallererst Wilkommen in der DP!

Dann hab ich noch 5 Fragen:
1.) Hast du es schon mal mit kürzeen Zeiten für einen Testlauf versucht?
2.) Warum benutzt du eine BatDatei, wenn es auch in der EXE miteinkompiliert werden kann (MSDN-Library durchsuchenShellExecute(...))??
3.) Arbeitet die Anwendung richtig??
4.) Im Regestry-Zweig HKCU werden die Programme erst nach der Anmeldung ausgeführt. Wie sieht es da aus?
5.) Warum bei jedem Programmstart den Regestry-Key überschreiben, wenn er doch schon da ist?

rollstuhlfahrer

EDIT: über den Win-Befehl shutdown kann man mit Hilfe des -t eine bestimme Zeit festlegen, bis die Aktion ausgeführt wird.
Bernhard
  Mit Zitat antworten Zitat
CreekMary
(Gast)

n/a Beiträge
 
#4

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 13:38
Zitat von lbccaleb:
dein problem ist deine sleep funktion, mit der sagst du ihm quasi, das er in dem quellcode erst na einer stunde weiter machen soll, deswegen beendet er das programm auch nicht, weil er quasi ne pause macht!!! auch dein 2 problem sollte daran ligen..
An der Sleep unktion kanns meiner Ansicht nach nicht liegen, da das Programm ja, per Hand gestartet, einwandfrei läuft. Das Problem ist nur, das wenn das Programm nach einem Neustart automatisch im Hintergrund läuft (durch den Autostart eintrag in der Registry), der PC nicht mer herunter gefahren wird. Das Programm ist aber gestartet worden (Autostart funktioniert !!!) da bin ich mir sicher da man das Programm ja in der Taskleiste und im Taksmanager sehn kann.


Zitat von rollstuhlfahrer:
Dann hab ich noch 5 Fragen:
1.) Hast du es schon mal mit kürzeen Zeiten für einen Testlauf versucht? Ja aber es funktioniert trotzdem nicht. Ich hab es schon mit 10 Sekunden, 30 Sekunden und 1 Minute probiert.
2.) Warum benutzt du eine BatDatei, wenn es auch in der EXE miteinkompiliert werden kann ( ShellExecute (...))?? Weil ich mich mit dem ShellExecute nicht auskenne. Da sind mir zu viele Parameter drinn, die ich nicht verstehe. Ich weiß das Winexec veraltert ist aber es ist so schön einfach. Wenn du mir bei der ShellExecute hilfst nehm ich auch gern die =)
3.) Arbeitet die Anwendung richtig?? Beim ersten mal Programmstart funktioniert alles !!! Nach dem Neustart des PCs und des Starts des Programms per Autostart Funkzioniert alles auser das Herunterfahrn des PCs funktioniert alles.
4.) Im Regestry-Zweig HKCU werden die Programme erst nach der Anmeldung ausgeführt. Wie sieht es da aus? Versteh ich net was soll damit sein?
5.) Warum bei jedem Programmstart den Regestry-Key überschreiben, wenn er doch schon da ist? Weil ich nicht weiß wie ich das programmiern soll, dass das Programm prüft ob schon eine Eintragung vorhanden ist.
Ich hoffe ihr versteht wo mein Problem liegt und ich nerve euch nicht zu doll =)

Danke jetzt schon einmal
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 13:43
schau dir noch mal den edit in meinem 1 post an^^

und für shellexecute findest du hier was:

shellexecute und sich helfen dir auch welche hier bei der anwendung von shellexecute
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
sk0r

Registriert seit: 1. Mai 2007
181 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 13:50
Anstatt die BAT-Datei zu starten, solltest du lieber ExitWindowsEx(EWX_SHUTDOWN, 0); nehmen.
  Mit Zitat antworten Zitat
CreekMary
(Gast)

n/a Beiträge
 
#7

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 14:18
also das hier:
Zitat von sk0r:
Anstatt die BAT-Datei zu starten, solltest du lieber ExitWindowsEx(EWX_SHUTDOWN, 0); nehmen.
funktioniert irgendwie garnicht da macht er einfach nix.

und wegen dem hier:
Zitat von lbccaleb:
edit:
ach ja, mit dem runterfahren nach dem neustarten hat er wahrscheinlich probleme, weil er die "*.bat" datei nicht findet, denn bei dem neustart hat er einen anderen augenblicklichen pfad drinne, als wenn du dein programm direkt startest! abhilfe schafft dabei, eine pfadangabe mit dem winexec parameter zu übergeben..
versteh ich schon was du meinst, nur das komische ist das er die .Bat datei ja findet. Falls ich mich da irre was für eine Lösung gibts den für das Problem? Den mit dem Shell Execute is das ja dann noch nicht vom Tisch gewischt.
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 14:29
na gebe einfach eine pfad an, (ich weiß ja nicht wo deine datei sich befindet) zb so:
    WinExec('C:\Shutdown.bat', SW_SHOWNORMAL); ich denke mal dann sollte er das mit dem runterfahren machen..
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 14:30
nochmal zu ShellExecute:

Bei MSDN staht folgendes Beispiel:
Code:
ShellExecute(handle, 'open', file, params, verz, SW_SHOWNORMAL);
Setze einfach für file den kompletten absoluten Dateinamen ein. bei params kannst du NULL eintragen und bei verz evt. auch.
hieße:
Code:
ShellExecute(handle, 'open', 'C:\Verzeichnis1\Verzeichnis2\Datei.bat', NULL, NULL, SW_SHOWNORMAL);
Ob das mit NULL so einfach geht bin ich mir nicht sicher (MSDN bezieht sich sehr auf C-Compiler) ansonsten einfach ein LeerString


rollstuhlfahrer

PS: shutdown sieht so aus
Code:
ShellExecute(handle, 'open', 'shutdown', '-r -f -t 3600', NULL, SW_SHOWNORMAL);  reboot in 3600 sek
Bernhard
  Mit Zitat antworten Zitat
CreekMary
(Gast)

n/a Beiträge
 
#10

Re: Hilfe bei Autostart und .Bat Datei

  Alt 10. Feb 2008, 15:46
Zitat:
PS: shutdown sieht so aus
Code:
ShellExecute(handle, 'open', 'shutdown', '-r -f -t 3600', NULL, SW_SHOWNORMAL);  reboot in 3600 sek
Wenn ich dies hier anwende sagt er mir:
Inkompatible Typen: 'Variant' und 'PChar'

  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 22:41 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