Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Shutdowntool - bitte testen (https://www.delphipraxis.net/49402-shutdowntool-bitte-testen.html)

daoki 10. Jul 2005 22:24


Shutdowntool - bitte testen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Shutdown Tool Version 1.0.2.0

Über das Programm:

Dieses Programm ermöglicht es einem, seinen PC zu einer bestimmbaren Uhrzeit und an einem bestimmten Datum
*herunter zu fahren
*neu zu starten
*Benutzer abmelden
*Prozesse beenden




Systemvoraussetzungen:

Das Programm läuft unter:
*Windows XP und Windows 2000

Win9x habe ich nicht getestet, ab einschließlich Windows 98 müsste es aber funktionieren.

Anleitung:

Einfach das Programm starten und die gewünschte Aktion auswählen. Dann kann man entweder die Aktion mit SOFORT ausführen ( wie der Name schon sagt, sofort) oder man gibt eine Uhrzeit in den beiden Feldern ein.
Nur noch ein Klick auf AUSFÜHREN und der PC führt die Aktion zur ausgewählten Uhrzeit aus.
Wenn man das Programm minimiert, verschwindet es im Systemtray (neben der Uhr), es läuft aber trotzdem weiter.
Mit ABBRECHEN wird das Programm wieder in den Anfangszustand zurückversetzt.

Viel Spaß beim ausprobieren.


Kritik und Anregungen nehme ich dankend entgegen.


MfG DaOki

daoki 10. Jul 2005 23:13

Re: Shutdowntool bitte testen
 
*leer*
steht jetzt alles oben

Luckie 11. Jul 2005 01:49

Re: Shutdowntool bitte testen
 
Zum Programm:
  1. Warum ist es so riesig, auch die Schrift? Ich bin nicht blind.
  2. Warum sind die Schaltflächen nicht einheitlich groß?
  3. Warum läßt es sich maximieren?
  4. Bei der Uhrzeit kann man Buchstaben eingeben. :gruebel: (Eine Lösung findest du hier im Forum.) Die sekündlichen Fehlermeldungen kann man kaum schließen.
  5. Was passiret, wen man gar nichts ausgewählt hat? Entweder triffst du eine Vorauswahl oder du deaktivierst den Menüpunkt und die Schaltfläche bis eine Auswahl getroffen wurde.
  6. Klickt man auf den Menüpunkt 'nach neuer Version fragen' kommt die Fehlermeldung:
    Zitat:

    Ungültige Klassenzeichenfolge.
    Warum benutzt du nicht zum E-Mail senden die Shellexecute Funktion oder implementierst mit den Indy Komponenten nicht selber einen kleinen E-Mail Client zum Senden von E-Mails?
Zum Quellcode:
  1. Warum sind die Backupdateien (*.~*) mit im Archiv?
  2. Im Archiv befindet sich ein zweites Archiv nur mit der kompilierten Anwendung, warum?
  3. Im Code befindet sich mein Source, um einen Prozess zu beenden, aber weder in der Aboutbox noch im Code findet sich ein Hinweis auf mein Copyright.
  4. Warum befindet sich selbiger der Code in beiden Units? Wenn dann wird er doch nur in der Unit zum Prozess beenden gebraucht.
    • Ich bin der Meinung so was hat in einem Tiool zum Runterfahren des Rechners nichts verloren.
  5. Wozu brauchst du das überhaupt? OK, im Posting gelesen. Was hat das aber mit dem Timer zu tun?
  6. Wozu zwei Timer?
  7. Der Sourcecode ist schrecklich formatiert.
  8. Wenn du es uns schon mit Source gibst, dann kommentier ihn wenigstens etwas, damit man sich zurecht findet.
  9. Delphi-Quellcode:
    BubbleSort(Listbox1.Items);
    Die Listbox kennt die Eigenschaft Sort, brauchst du also nicht im Code zu machen.
  10. Zu viele globale Variablen.
  11. In der Funktion ExWindows hast du keinerlei Fehlerbehandlung drinne.

Zitat:

eine frage hätte ich da noch. wie kann ich eine meldung programmieren die mir 1 minute vor ablauf der zeit eien nachricht anzeigt wann die aktion ausgewählt wird?
Für eine Frage erstell bitte in der entsprechenden Sparte einen neuen Thread. Kleiner Hinweis: Application.MessageBox, MessageDlg, ShowMessage, MessageBox, ...

daoki 11. Jul 2005 06:55

Re: Shutdowntool bitte testen
 
hi lucky danke für deine tipps.
es ist nur so das ich von dem was du programmiert hast keinen plan hab (ist des überhaupt normales delphi oder was besonderes)? ich programmier erst seit 1 jahr in der schule und kann deswegen noch nicht so sehr viel.

mit deinem quellcode tut mir lied. den hab ich in einme forum( kp wo) bekommen. ist es ok wen ich dich im quellcode und in einer aboutbox erwähne?

die timer sind dafür da das ich einmal einen für die uhrzeit habe und einen für sdie aktion. kp wie man des ohne timer macht. wie gesagt ist auch viel zusammengeschustert.

Trotzdem danke für deine lritik

werde mit sie mal zu herzen nehmenm, evtl auch noch ein paar postings reinsetzen um hilfestellung zu bekommen

Gruß DaOki

Pseudemys Nelsoni 11. Jul 2005 08:08

Re: Shutdowntool bitte testen
 
Zitat:

ist des überhaupt normales delphi oder was besonderes
Das ist halt das direkte Arbeiten mit der API.

Zitat:

ist es ok wen ich dich im quellcode und in einer aboutbox erwähne?
Wenn ich punkt 3. von Luckie lese, dann hört sich das fast so an =)

Luckie 11. Jul 2005 12:26

Re: Shutdowntool bitte testen
 
Quellcode reicht schon, Aboutbox wäre aber auch OK. ;)

daoki 11. Jul 2005 17:10

Re: Shutdowntool bitte testen
 
So Luckie,

hab mir ein paar deiner Einwände durch den Kopf gehen lassen und sie verbessert. Zum Beispiel das Design ist jetzt ganz anders und ( du hattest recht) sieht sogar irgendwie fast besser aus.

Dein Copyright steht jetzt im Quelltext und in der Aboutbox.

Die Prozesse habe ich vorerst mal ausgeblendet weil ich grad net so die zeit habe mich in WinAPI :gruebel: einzuarbeiten.

Danke für die Tipps und die Kritik und vielleicht 'hoffentlich' noch folgende. :-D

Gruß DaOki

Hador 11. Jul 2005 17:57

Re: Shutdowntool bitte testen
 
Wie soll ich dir Verbnesserungsvorschläge zu deinem Quelltext geben, wenn dieser im Archiev nicht enthalten ist ? :gruebel:

Ansonsten:

- SOFORT finde ich ein wenig übertrieben. Es reicht, wenn du das normal schreibst.
- Es ist immer noch möglich Buchstaben als Uhrzeit angegeben (Worauf man erst einmal schnell Fehlermeldungen wegklicken darf)
- Lass das mit Outlook sein
- Nimm alle sowiso deaktivierten Features doch erstmal ganz raus
- Zum Aussehen: Ersetz da Standart Delphi Icon :wink:

daoki 11. Jul 2005 18:06

Re: Shutdowntool bitte testen
 
Zitat:

Es ist immer noch möglich Buchstaben als Uhrzeit angegeben (Worauf man erst einmal schnell Fehlermeldungen wegklicken darf)
ich finde dass man soi intelligent sein kann und eine Uhrzeit nur als Zahlen eingibt... da es aber anscheinend besser ist wenn ich das verhindere dass buchstaben reinkommen ok.

Hätte eher gedacht dass das SOFORT missverständlich ist.


Zitat:

Zum Aussehen: Ersetz da Standart Delphi Icon
kp mehr wie des geht und wo.

Zitat:

Lass das mit Outlook sein
ok war ja nur mal n versuch, und ich fands eigendlich ganz cool

Zitat:

- Nimm alle sowiso deaktivierten Features doch erstmal ganz raus
naja ich lass se maldeaktiviert und versuch des hinzukriegen und wenns gar net klappen sollte kann ich se immer noch löschen.

Gruß DaOki

PS: Quellcode is jetzt auch verfügbar hab nur vergesen ihn anzufügen :-D

Hador 11. Jul 2005 18:18

Re: Shutdowntool bitte testen
 
Zitat:

Zum Aussehen: Ersetz da Standart Delphi Icon
Projekt -> Optionen -> Anwendung

Zitat:

ich finde dass man soi intelligent sein kann und eine Uhrzeit nur als Zahlen eingibt... da es aber anscheinend besser ist wenn ich das verhindere dass buchstaben reinkommen ok.
Man wird wohl so intelligent sein, aber man kann ja mal aus Versehen auf ne Taste kommen, und wenn einem "Standart-PC-Benutzer" (Ich denke z.Z. an meinen Vater) dann plötzlich die Fehlermeldungen nur so um die Ohren fliegen, ist dass net ganz so toll.

Zitat:

Hätte eher gedacht dass das SOFORT missverständlich ist.
Wenn ich gerade mal so darüber nachdenke, bräuchtest du das Sofort eigentlich garnicht, da es dann einfacher ist, den PC so auszustellen.

--

Quellcode guck ich mir nachher mal an.


EDIT:
Zitat:

ok war ja nur mal n versuch, und ich fands eigendlich ganz cool
Heutzutage haben sehr viele Leute kein Outlook mehr. Aus meinem Bekanntenkreis weis ich das eigentlichnur von 2 Leuten
Und Alternativen wurden schon genannt.

daoki 11. Jul 2005 18:26

Re: Shutdowntool bitte testen
 
ok hast ja überall recht werde mich drumm kümmern

wie soll des gehn mit den buchstaben? Ich will net mit WinAPI oder so was rumhantieren weil ich des net kann.
Ich könnt ja zum Beispiel immer

Delphi-Quellcode:
if EditStunde='a' then //Fehlermeldung
if EditStunde='A' then //Fehlermeldung
if EditStunde='b' then //Fehlermeldung
...
aber des dauert ne weile und is au net so sicher oder ich machs mit

Delphi-Quellcode:
ifnot EditStunde=1..23 then
abe rob des klappt

hast du vielleicht ne gute möglichkeit

ringli 11. Jul 2005 18:31

Re: Shutdowntool bitte testen
 
Versuch es doch mal mit einem MaskEdit. ;-)

[EDIT]
Oder versuch es mal mit diesem Link

daoki 11. Jul 2005 18:38

Re: Shutdowntool bitte testen
 
ok mitr dem link is es besser erklärt.

aber würde meine version auch gehen? is halt hammers viel tipparbeit

mal schaun zum nächsten release mach ichs

wie funkt so ein maskedit? kann mir das jemand erklären?

Gruß DaOki

ringli 11. Jul 2005 18:43

Re: Shutdowntool Version 1.0.1.0
 
Erstell dir doch mal ein Testformular und zieh dir ein MaskEdit auf die Form. Ich meine da wäre sogar ein Beispiel für Uhrzeiten dabei. Ansonsten such hier mal ein bisschen. Das Thema wurde schon öfter behandelt.
Die OH ist hier auch relativ ergiebig. ;-)

Hador 11. Jul 2005 18:47

Re: Shutdowntool bitte testen
 
Zitat:

Zitat von daoki
aber würde meine version auch gehen? is halt hammers viel tipparbeit

Nein, aber fast.
Beim ersten
Zitat:

Delphi-Quellcode:
if EditStunde='a' then //Fehlermeldung
if EditStunde='A' then //Fehlermeldung
if EditStunde='b' then //Fehlermeldung

könntest du ja immer noch "1a" eingeben. Oder "11a" oder "122345346adfgr" :!:

Zitat:

Delphi-Quellcode:
if not (EditStunde=1..23) then ...

Ist fast richtig. Versuchs aber mit in statt mit =

daoki 11. Jul 2005 19:07

Re: Shutdowntool Version 1.0.1.0
 
Delphi-Quellcode:
if not (stundeint in 0..23) then begin
       Actionwaiting.Enabled:=false;
       if messagedlg('Bitte geben Sie eine gültige Uhrzeit ein!',mtError,[mbOk],mrOk)=mrok then
       begin
       EditStu.SetFocus;
       end;
       end;
da kommt immer ne meldung

operator ist auf diesen operandentyp nicht anwendbar


was jetzt habs mit interger als auch mit string werten versucht der cursor steht immer vor der 23

daoki 11. Jul 2005 19:24

Re: Shutdowntool Version 1.0.1.0
 
Zitat:

Die OH ist hier auch relativ ergiebig.
DIe ist manchmal so unverständlich und man sucht nur ewig nach den beschreibungen für wörter oder ausdrücke die in der eigendlichen beschreibung vorkommen
und am ende könnte man dann trotzdem :wall:

Hador 12. Jul 2005 13:46

Re: Shutdowntool - bitte testen
 
du hättest das gaze erst noch zu einem Integer umformen müssen und vorher natürlich noch abfragen müssen, ob Buchstaben eingegeben wurden. Hier mal der Fertige Quellcode für die Stunden.

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
   if (not (Key in ['0'..'9',#8])) or
      ((Length(Edit1.Text) = 2) and (Key <> #8)) or
      ((Length(Edit1.Text) = 1) and ((Edit1.Text[1] = '2')
                                and (not(Key in ['0'..'3',#8])))) then
   begin
      ShowMessage('Bla');
   end;
end;
Wie du siehst habe ich das On KeyPress Ereignis benutzt.
Es werden jetzt nur noch Zahlen von 1 bis 23 zugelassen.
#8 steht übrigens für die backspace Taste.

Was du nach einer falschen eingabe machst ist dir überlassen (begin ... end Teil)

Gruß Lars

daoki 12. Jul 2005 13:55

Re: Shutdowntool - bitte testen
 
Delphi-Quellcode:
procedure TMain.EditStuKeyPress(Sender: TObject; var Key: Char);
begin
   if (not (Key in ['0'..'9',#8])) or
      ((Length(EditStu.Text) = 2) and (Key <> #8)) or
      ((Length(EditStu.Text) = 1) and ((EditStu.Text[1] = '2')
                                and (not(Key in ['0'..'3',#8])))) then
   begin
      ShowMessage('Bitte eine gültige uhrzeit eingeben!');
      EditStu.SetFocus;
      EditStu.Clear;
   end;
end;
jetzt kommt zwar immer die meldung bei einem ungültigen zeichen aber sobald ich auf ok drücke ist der buchstabe trotzdem da! :wall:
was ist da jetzt los?
Bitte helfen

Luckie 12. Jul 2005 14:04

Re: Shutdowntool - bitte testen
 
Nimm doch erstmal einfach das als Grundlage.

axelf98 12. Jul 2005 14:06

Re: Shutdowntool - bitte testen
 
Füg in de Teil mit den Meldungen noch ein:
Delphi-Quellcode:
    key:=chr(0);

daoki 12. Jul 2005 14:08

Re: Shutdowntool - bitte testen
 
Zitat:

Zitat von axelf98
Füg in de Teil mit den Meldungen noch ein:
Delphi-Quellcode:
    key:=chr(0);

super jetzt klappts

daoki 12. Jul 2005 14:12

Re: Shutdowntool - bitte testen
 
Zitat:

Nimm doch erstmal einfach das als Grundlage.
naja so einfach hätte das sein können

wo kann ich eigendlich die ganzen tastennummern (das sind doch die tastennummern, oder?) herbekommen hab mal gegoogelt aber net wirklich was gefunden.

hat da jemand was dazu?

Gruß DaOki

Luckie 12. Jul 2005 14:13

Re: Shutdowntool - bitte testen
 
Nimm eine ganz normale ASCII Tabelle.

daoki 12. Jul 2005 14:18

Re: Shutdowntool - bitte testen
 
Zitat:

Zitat von Luckie
Nimm eine ganz normale ASCII Tabelle.

klar danke

daoki 14. Jul 2005 22:17

Re: Shutdowntool - bitte testen
 
an eurer nicht alzu regen beteiligung in diesem Thread schließe ich das ihr zufrieden seid mit dem Programm!?!

Ich würde mich über Kritik und weitere Anregungen freuen

Gruß DaOki

Sergej 14. Jul 2005 23:19

Re: Shutdowntool - bitte testen
 
Also ich würd mir noch en Edit wünschen, wo ich die Zeit bis zum Shutdown eingeben kann... Ich will nicht jedesmal ausrechnen um wieviel Uhr heruntergefahren werden soll.


Greetz Sergej

daoki 15. Jul 2005 04:48

Re: Shutdowntool - bitte testen
 
Zitat:

Zitat von Sergej
Also ich würd mir noch en Edit wünschen, wo ich die Zeit bis zum Shutdown eingeben kann... Ich will nicht jedesmal ausrechnen um wieviel Uhr heruntergefahren werden soll.


Greetz Sergej

stimmt.... auch keine schlechte idee lässt sich realisieren, mal schauen wann ich dazu komme....

bitte mehr kritik und anregungen, will ja schließlich lernen

Gruß DaOki

daoki 23. Jul 2005 18:15

Re: Shutdowntool - bitte testen
 
So, ich habe jetzt die neueste Version hochgeladen mit der neuen Funktion, das nun auch Prozesse zu einer bestimmten Zeit beendet werden können.

Schauts euch einfach an.

Gruß DaOki

ManuMF 25. Jul 2005 10:29

Re: Shutdowntool - bitte testen
 
Also, ich finde das Programm ganz nett.

Aber ich würde die Meldung beim Beenden des Programms nur zeigen, wenn wirklich eine Aktion ausgeführt wurde:

Delphi-Quellcode:
procedure TMain.BtnCloseClick(Sender: TObject);
begin
  if (Actionwaiting.Enabled) then begin    // Nur wenn der Timer enabled ist
    if (MessageDlg('Wollen Sie wirklich... ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
      Application.terminate;    // Ich benutze immer diesen Befehl
  end
  else
    Application.terminate;    // Wenn der Timer nicht aktiv ist, direkt beenden
end;

Das Ganze hat aber einen Haken: Wenn das Programm über das "X" beendet wird, gibt es keine Meldung. Aber das kann folgendermaßen über onCloseQuery behoben werden:

Delphi-Quellcode:
procedure TMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if (Actionwaiting.Enabled) then begin
    case MessageDlg('Wollen Sie wirklich... ?', mtConfirmation, [mbYes, mbNo], 0) of
      mrYes: application.Terminate;
      mrNo: CanClose := false;
    end;
  end;
end;

Gruß,
ManuMF

SubData 25. Jul 2005 10:40

Re: Shutdowntool - bitte testen
 
Ich verweise bei bestimmten Eingabeformaten auch gerne auf die RegExp Komponenten: http://www.regexpstudio.com

Code:
Datum TT.MM.YYYY       : ^((0[1-9]|[1-2][0-9])\.(0[1-9]|1[0-2])|30\.(01|0[3-9]|1[0-2])|31\.(01|03|05|07|08|10|12))\.[0-3][0-9]{3}$
Uhrzeit HH:MM:SS       : ^([0-1][0-9]|[2][0-3])\:[0-5][0-9]\:[0-5][0-9]$
Uhrzeit HH:MM          : ^([0-1][0-9]|[2][0-3])\:[0-5][0-9]$
[OT]
Andere RegExp, die ich mal gebastelt und verwendet habe, falls sie jemand braucht:
Code:
Farbwert Hexadezimal #XXXXXX : ^\#[0-9a-fA-F]{6}$
Boolischer Wert              : ^[0-1]$
E-Mail [email]Name@(...)Host.TLD[/email]    : ^[a-zA-Z0-9_]{2,100}\@.*[a-zA-Z0-9_]{2,100}\.[a-zA-Z0-9_]{2,5}$
IP xxx.xxx.xxx.xxx           : ^(0[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-1][0-9][0-9]|2[0-4][0-9]|25[0-5])$
Zahl (100.000 - 999.999.999) : ^([1-9][0-9]{5,8})$
Zahl (1970 - 2099)           : ^((19[7-9][0-9])|(20[0-9][0-9]))$
Zahl (0 - 31)                : ^([0-9]|([0-2][0-9]|3[0-1]))$
Zahl (0 - 127)               : ^(0[0-9]|0[0-9][0-9]|00[0-9]|[0-9]|[0-9][0-9]|1[0-1][0-9]|12[0-7])$
MD5 Hash String (32 Char)    : ^[0-9A-Z]{32}$
Zeile = nur Sternchen        : ^\*{1,}$
[/OT]

daoki 16. Aug 2005 23:03

Re: Shutdowntool - bitte testen
 
So jetzt ist die neueste Version online...meiner meinung nach ganz gute Verbesserungen...z.b. mit Prozesse beenden und mit einer funktion das datum anzugeben.


Gruß DaOki


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz