| Autor |
Beitrag |
kens
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 15:23
hi,
ich bau mir nen kleines programm um meinen pc nach eingestellter zeit runterzufahren,
doch die variablen sind in integer und sollen als pointer eingegeben werden, guckt am besten selbst:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); var a,b,c : integer; begin a := StrToInt(edit1.text); b := StrToInt(edit2.text); c := a*3600+b*60; ShellExecute(0, Nil,'C:\WINDOWS\system32\shutdown.exe', '-s -t',pchar(c) , nil, SW_NORMAL); end; |
es soll C:\WINDOWS\system32\shutdown.exe -s -t 21 ausgeführt werden und als 21 soll die variable c eingesetzt werden
vielen dank
Moderiert von Gausi: Delphi-Tags hinzugefügtModeriert von Christian S.: Topic aus Dateizugriff verschoben am Mo 16.07.2007 um 20:06
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 09.07.07 15:26
Hallo!
Täusch ich mich, oder sind die Argumente für Shellexecute falsch.. 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: Mo 09.07.07 15:29
Hallo! Delphi-Quelltext 1:
| ShellExecute(0, nil, PChar('C:\WINDOWS\system32\shutdown.exe -s -t'+IntToStr(c)), nil , nil, SW_NORMAL); | könnte funktionieren.
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 09.07.07 15:35
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 15:51
@zeitgeist: da stürzt das programm ab, aber ich kann compilieren
@dunkel: da passiert nix, aber ich kann compilieren
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 09.07.07 15:58
Shutdown funktioniert erst ab W2K!!!
Delphi-Quelltext 1:
| shellExecute(handle, pchar('command'), pchar('shutdown.exe -s -t ' + inttostr(c)), nil, pchar(''), sw_ShowNormal); |
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 16:02
das funktioniert auchnich und ich hab xp und schonmal ohne variablen getestet,das funktioniert
wenn ich jezz nochmal teste stüzt das programm mit folgender meldung ab: project1.exe raised exception class EConvertError with message ""std" is not a valid integer value. process stopped. use step or run to continue, also könnte das von dunkel doch funktioneren, muss nurma neustarten oder so
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 09.07.07 16:06
kens hat folgendes geschrieben: | | das funktioniert auchnich und ich hab xp und schonmal ohne variablen getestet,das funktioniert |
Delphi-Quelltext 1:
| ShellExecute(0, 'open', PChar('C:\WINDOWS\system32\shutdown.exe -s -t '+IntToStr(c)), nil , nil, SW_NORMAL); |
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 16:10
da passiert garnix, geht das bei dir??
ich mein wenn am anfang dieses open steht gehts nich und wenn ich das pchar vor alles setzte stürzt das programm mit dem fehler ab
Zuletzt bearbeitet von kens am Mo 09.07.07 16:16, insgesamt 1-mal bearbeitet
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 09.07.07 16:14
bin gleich daheim..dann probier ichs..
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 16:26
vergiss nich mit start -> ausführen -> shutdown -a das abzubrechen
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 09.07.07 16:30
ich kenn den befehl sehr gut, trotzdem danke :wink:
ich würde in den befehl noch ein -f (Force) einbauen, denn sonst bekommst du probleme wenn du zum bleistift ein word-dokument offen hast..dann schließt er es nicht und der pc fährt herunter :)
LG Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Zuletzt bearbeitet von ZeitGeist87 am Mo 09.07.07 16:31, insgesamt 1-mal bearbeitet
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 09.07.07 16:30
Warum so umständlich ??? Hier im Forum gibt's ne Anleitung, wie das ganze mit InitiateSystemShutdown viel einfacher geht ... Man müsste halt mal suchen ...
Ach ja: F1 findest Du in der obersten Reihe, 2. Taste von Links ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 16:42
ne ich würds gern übern die shutdown.exe machen
und ich such keine taste sondern hilfe, is doch die f1 funktion 
|
|
Timosch
      
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Mo 09.07.07 16:53
Was hast du den gegen ExitWindowsEx: www.delphi-library.d...neustarten_8272.htmlEin externes Programm aufzurufen ist die schlechteste Möglichkeit, so was zu machen. Ich hab selbst unter Win2k komischerweise keine shutdown.exe (Oh, im Resource Kit ist eine...). Wenn es API-Funktionen gibt, dann benutzt man API-Funktionen.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mo 09.07.07 21:26
naja ich wollt das nur ganz einfach machen, da ich das sonst unter start ausführen selbst in sekunden eingebe, kann ja nich so schwer sein 
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Do 12.07.07 11:48
kens hat folgendes geschrieben: | kann ja nich so schwer sein  |
So wie es aussieht scheint es für Dich ja schon etwas schwerer zu sein.
Also probiere jetzt bitte mal den Sourcecode von hier:
www.delphi-library.d...neustarten_8272.html
_________________ Ein Nutzer der Ecke
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Do 12.07.07 12:28
Um mal zu deinem ursprünglichen Code zurückzukommen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var a,b,c : integer; str: string; begin a := StrToInt(edit1.text); b := StrToInt(edit2.text); c := a*3600+b*60; str := '-s -t ' + inttostr(c); ShellExecute(0, Nil,'C:\WINDOWS\system32\shutdown.exe', PChar(str), nil, SW_NORMAL); end; |
Gruß
Calculon
--
|
|
kens 
Hält's aus hier
Beiträge: 8
|
Verfasst: So 15.07.07 12:50
dankeeeeeeeeeeeeeeeeeeeeee @ calculon
zu matin: hab ewig nicht mit delphi zu tun gehabt und dachte ich hab es hier mit profis zu tun die helfen und nich nerven (nich so böse gemeint wies klingt) ... in meinen augen sah das ganz einfach aus und aus fehlern lernt man ja, aber mich da durch ewige tutorials zu schlagen nur um eine funktion zu erstetzen die ich schon habe ist in meinen augen zeitverschwendung.
wenn mir jetzt noch jemand sagt, warum die exception nicht funktionert bin ich wunschlos glücklich
Delphi-Quelltext 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:
| procedure TForm1.Button1Click(Sender: TObject); var a,b,c : integer; str: string; begin try a := StrToInt(edit1.text); b := StrToInt(edit2.text); c := a*3600+b*60; if c <= 299 then begin str := '-s -t ' + inttostr(c); ShellExecute(0, Nil,'C:\WINDOWS\system32\shutdown.exe', PChar(str), nil, SW_NORMAL); end else begin ShowMessage ('Wert ist zu klein! Mindestens 5 Minuten'); edit1.Text := 'Stunden'; edit2.Text := 'Minuten'; end; except ShowMessage ('Keine erlaubte Eingabe!'); edit1.Text := 'Stunden'; edit2.Text := 'Minuten'; end; end; |
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 16.07.07 16:14
kens hat folgendes geschrieben: | dankeeeeeeeeeeeeeeeeeeeeee @ calculon
zu matin: hab ewig nicht mit delphi zu tun gehabt und dachte ich hab es hier mit profis zu tun die helfen und nich nerven (nich so böse gemeint wies klingt) ... in meinen augen sah das ganz einfach aus und aus fehlern lernt man ja, aber mich da durch ewige tutorials zu schlagen nur um eine funktion zu erstetzen die ich schon habe ist in meinen augen zeitverschwendung.
wenn mir jetzt noch jemand sagt, warum die exception nicht funktionert bin ich wunschlos glücklich
Delphi-Quelltext 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:
| procedure TForm1.Button1Click(Sender: TObject); var a,b,c : integer; str: string; begin try a := StrToInt(edit1.text); b := StrToInt(edit2.text); c := a*3600+b*60; if c <= 299 then begin str := '-s -t ' + inttostr(c); ShellExecute(0, Nil,'C:\WINDOWS\system32\shutdown.exe', PChar(str), nil, SW_NORMAL); end else begin ShowMessage ('Wert ist zu klein! Mindestens 5 Minuten'); edit1.Text := 'Stunden'; edit2.Text := 'Minuten'; end; except on e: exception do begin ShowMessage ('Keine erlaubte Eingabe!'); edit1.Text := 'Stunden'; edit2.Text := 'Minuten'; end; end; end; | |
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
|