Entwickler-Ecke

Windows API - Mit Buttonklick Windows Herunterfahrn, Standby, oder Sperrn


Dr. Wasserwurst - Mi 05.12.07 11:14
Titel: Mit Buttonklick Windows Herunterfahrn, Standby, oder Sperrn
Okay also ich würde gern nur mit einem Klick auf einem Button Windows: Herunterfahrn, Standby, oder Sperrn,... was es halt da so alles möglich ist?? Kann mir das vielleicht jemand vertelln?? :)

Moderiert von user profile iconNarses: Titel geändert.
Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Mi 05.12.2007 um 11:20


Delete - Mi 05.12.07 11:45
Titel: Re: Mit Buttonklick Windows Herunterfahrn, Standby, oder Spe
user profile iconDr. Wasserwurst hat folgendes geschrieben:
vertelln?? :)

"ver" was?

Bemüh mal die Suche.


Atreyu - Mi 05.12.07 11:48

Hier suchen:
http://www.dsdt.info/tipps/?kat=15


Wie wärs erstmal mit Grundfunktionen und Strukturen lernern?


Dr. Wasserwurst - Mi 05.12.07 14:56

Die Delphi Hilfe geht bei mir net ->> Vista kann doch keine .hlp Datein öfnen! Hab mir auch schon die Von Microsoft runtergeladen aber jetzt findet er die nich mehr!


JayEff - Mi 05.12.07 15:17

user profile iconDr. Wasserwurst hat folgendes geschrieben:
Die Delphi Hilfe geht bei mir net ->> Vista kann doch keine .hlp Datein öfnen! Hab mir auch schon die Von Microsoft runtergeladen aber jetzt findet er die nich mehr!

Was auch immer du uns damit sagen willst, willst du nicht trotzdem mal auf den Link klicken oder die Forensuche verwenden, [OT]oder uns erklären, was "vertelln" bedeutet? "Vierteln" im Sinne von Vierteilen? :nixweiss: mehr fällt mir dazu auch nicht ein[/OT]
Ausserdem wäre gut zu wissen, wie weit du schon bist, welche Funktionen dein Programm schon hat, was du noch hinzufügen willst etc...


Blackheart666 - Mi 05.12.07 15:26

Vertellen - Plattdeutsch für erzählen. :wink:


zuma - Mi 05.12.07 15:50

hei kunn wohl einige Spraaken, aber platt wohl nich.
dat hei vertelln nich kennt, het jo nu, dat hei keen platt schnackt.
Moakt aber nix, datt kunn nich all Lüe und datt is uk gaut so ;)
ick heff datt uk nich so mit datt schreebene platt,
schnacken un tohören is dor bannig lichter.

P.S. http://www.deutsch-plattdeutsch.de ;)


Atreyu - Mi 05.12.07 16:00

Da wir sowieso OT sind: Wer sich jetzt schon Vista (< XP beta) verwendet, muss sich über solche Sachen nicht wundern.


Dr. Wasserwurst - Mi 05.12.07 16:09

Mit der Hilfe wollte ich sagen das meine Delphi-Hilfe nicht geht! Warum auch immer??
Und auf den Link hab ich schon geklickt jo dats fein! thx
Und was ich so in das Programm will ist nur ein Button auf dem Steht Standby oder Herrunterfahnr steht und wenn ich auf den klick denn soll Windows auch aus gehn oder in Standby wechseln!! :)
Wollt ihr noch was wissen?? :)


Dr. Wasserwurst - Mi 05.12.07 19:32

Kann mir dat nich jemand erklär wie das geht ich bin zu dumm die Hilfe zu benutzen! please!!


Atreyu - Mi 05.12.07 21:20

Ey, schau doch mal selber.

Geh in Delphi, wähle den Button aus den Reitern, paltziere ihn in deiner Form. Dann ändere die Caption vom Button im Object Manager auf einen eigenen Text und auf das OnClick-Event kannst du dann eine Procedure legen.

Am besten kauf dir ein Delphi-Buch.

Und vorher benutz mal Google, dann findest du sowas hier: http://www.pcshow.de/tippstricks/delphi-tutorial.html
Denn ich glaube, keiner hat Lust, dir deinen Programmcode zu tippen.


Delete - Mi 05.12.07 21:33

user profile iconAtreyu hat folgendes geschrieben:
Da wir sowieso OT sind: Wer sich jetzt schon Vista (< XP beta) verwendet, muss sich über solche Sachen nicht wundern.

Und was hat diese absolut blödsinnige Aussage hier zu suchen?


Atreyu - Mi 05.12.07 21:38

Gott sei dank musst ich noch nicht unter Vista leiden. Aber ein paar Coder, die ich kenne. War deren Aussage, immer wenn sie sich beim Anpassen für dieses "halbfertige Betriebsystem" in den *popo* gebissen haben.
Nunja, vielleicht muss man die exakte Version berücksichtigen...


Christian S. - Mi 05.12.07 21:47

Kommt bitte wieder zum Thema zurück! :-)


Atreyu - Mi 05.12.07 21:53

Okay, Chef =)

Windoze herunterfahren:
http://www.dsdt.info/tipps/?id=200&search=herunterfahren

Hier steht auch noch was zum beenden/neustarten etc.
http://www.delphi-library.de/topic_Windows+beendenneustarten_8272.html


COMMANDER86 - Mi 05.12.07 22:20

Mahlzeit,

ich weiß nicht, ob das bei den "neuen" OS noch funktioniert. Bei der Win 9x/ME Schiene ging es zumindest über die "rundll32.exe". Ich kenne nur die Parameter für herunterfahren:

rundll32.exe user,exitwindows

Ausführen via ShellExecute könnte funktionieren.

Gruß


Atreyu - Mi 05.12.07 22:57

Hmm, könnte man dann nicht mit ShellExecute den "shutdown" Befehl von Win verwenden?


COMMANDER86 - Mi 05.12.07 23:27

KP... probier's mal aus. Vorher speichern und nix kann schief gehen. ;)


Delete - Do 06.12.07 09:57

user profile iconAtreyu hat folgendes geschrieben:
Hmm, könnte man dann nicht mit ShellExecute den "shutdown" Befehl von Win verwenden?

Dazu sind administrative Rechte erforderlich.


Atreyu - Do 06.12.07 12:46

Auf einer der Seiten, die ich gepostet hab, steht glaub, dass unter XP dazu immer eine gewisse Rechtevergabe vonnöten ist.
Aber gut, ich brauchs ja nicht...


Dr. Wasserwurst - Do 06.12.07 15:48

Ähm ich habe ein Quelle Text bekommen und zwar:


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:
29:
30:
31:
32:
33:
34:
procedure shutdown;  
begin  
  ExWindows(EWX_POWEROFF);  
end;  

 
{$WARN SYMBOL_PLATFORM OFF}  
procedure SuspendOrHibernate(ASuspend, AForce: Boolean);  
var  
  iVersionInfo : TOSVersionInfo;  
  iToken    : Cardinal;  
  iPriveleg : TTokenPrivileges;  
  iaResult  : Cardinal;  
begin  
  FillChar (iPriveleg, SizeOf (iPriveleg), #0);  
  iVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);  
   GetVersionEx(iVersionInfo);  
   
  if iVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT then   
  begin  
    Win32Check(OpenProcessToken (GetCurrentProcess,  
               TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, iToken));  
    Win32Check(LookupPrivilegeValue (NIL'SeShutdownPrivilege',  
               iPriveleg.Privileges[0].Luid));  

 
    iPriveleg.PrivilegeCount := 1;  
    iPriveleg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;  
   
    Win32Check(AdjustTokenPrivileges(iToken, False, iPriveleg,  
    Sizeof(iPriveleg), iPriveleg, iaResult));  
  end;  
     Win32Check(SetSystemPowerState(ASuspend, AForce));  
end;


Da ich ja aber noch dabei bin die Grundlagen zu lernen wolte ich mal fragen ob ich dafür noch etwas brauch (Button oder...)
Und wenn ich auf ausführn klick kommt dieser Fehler:
[Fehler] Unit1.pas(26): Undefinierter Bezeichner: 'ExWindows'

?????
Was muss ich ändern??

Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt


zuma - Do 06.12.07 16:26

Undefinierter Bezeichner heisst immer, das es keine Deklaration (der Var, funciton, etc) gibt.
In Deinem Fall:
Die Function/Procedure ExWindows ist nicht von dir programmiert worden und wurde auch nicht per Uses von einer anderen Unit eingebunden .... such einfach mal in allen pas-dateien auf deinem PC nach dem Wort und binde dann die Unit ein, in der du die Deklaration und implementation (evtl.) gefunden hast.

mal am rande:
Da du Grundlagen lernen möchtest, empfehle ich dir, erstmal was 'einfaches' wie z.b nen Taschenrechner, Adressverwaltung o.ä. zu programmieren, das wird dir sicher leichter fallen und dir nicht so schnell den Spass am proggen verleiden ...


Atreyu - Do 06.12.07 16:33

Hier gibt es eine ExWindows-Function: http://www.dsdt.info/tipps/?id=200&search=herunterfahren
(Der Link, den ich bereits gepostet hatte!)


Dr. Wasserwurst - Do 06.12.07 16:37

Ich habe nur diesen Text bekommen mehr nicht!
Keine Erklärung nichts weiter dazu!! Und Taschenrechner hab ich schon gemacht!!
Ich wollte einfach nur meinem Freund diese .exe Datei schicken und sein Pc sollt seine Status ganz einfach nur verändern!!
Und da das hier ein Forum ist dachte ich ich könne es hier mal fix rein schreiben was ich haben möchte und irgend jemand nimmt sich dann mal Zeit für mich und erklärt mir das denn vielleicht auch noch?? Und gut wers gewesen.
Klar kann ich mich auch hin setzten Monate lang mir diese Seiten durchlesen (was ich auch mache) und dann irgend wann von alleine drauf kommen wies geht! Ich würde es aber gerne Jetzt schon mal wissen auch um zu sehen was ein noch so erwartet!
Also will und kann mir jetzt einer Helfen??
Bitte?!


Atreyu - Do 06.12.07 17:17

Also programmieren muss man sich schon selbst beibringen, wenn man kein Geld für eine Ausbildung investieren will.
Du kannst jetzt auch nicht erwarten, dass dir jetzt jeder hier kaarklein alles erklärt, dafür ist so ein Forum normalerweise nicht da.
Wenn du für ein spezielles Problem Hilfe brauchst, dann kann man dir unter die Arme greifen, aber erwarte nicht, dass man dir komplizierten Code, für den du noch LANGE nicht reif bist, hier superlang erklärt.
Ich hab dir auch schon Links gepostet, wenn du die nicht nutzt, dann willst du nichts lernen. Von der Tips und Tricks Seite hab ich auch die Hälfte meines Projekts gebastelt.


Webo - Do 06.12.07 18:45

Hier noch ein Tipp von mir, falls du immer gleich auf fertige Quelltexte aus bist :http://www.dsdt.info/eh/ ! Schönes Programm, hilft in vielen Fällen, doch erklärt bekommts du es da nicht.

Gruß

Webo


Dr. Wasserwurst - Do 06.12.07 19:23

Okay das ist ein Argument!! :)
Gut denn lese ich erstmal ein bissen!!
Vielleicht meld ich mich ja noch mal!!
Aber wenn jemand Langeweile hat....(kann sich bei mir melden:))


elundril - Do 06.12.07 20:04

Da du anscheinend (sieht für mich danach aus) ein kleines Deffizit in Delphi für dieses Projekt hast, würde ich dir gerne diesen Crashkurs nahe legen: *-> Klickst du hier <-* [http://www.christian-stelzmann.de/index_tutorials_crashkurs.html]

lg elundril