Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 29.01.10 01:27 
Ich hab einen PC (Dimension 4550) hinter einem Speedport W701v, den ich per WOL fernstarten möchte.
Das geht dummerweise NUR, wenn ich den Netzschalter zum Beenden von windows verwende (In den Energieoptionen ist für den der Ruhezustand eingetragen, geht auch) oder über Start->beenden.
Nur dann reagiert er auf das Magic Packet.

Wenn ich den PC vollkommen runterfahre oder per Befehl ("powrprof.dll,SetSuspendState Hibernate" oder SetSuspendState(true,false,false) ) dann reagiert er gar nicht da drauf.
Warum das? Wie kann ich den per Programm in den "anderen" Ruezustand versetzen?
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 30.01.10 18:16 
Hi, hast Du dieses msdn.microsoft.com/d...ibrary/bb978915.aspx
mal durchgelesen?
Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Sa 30.01.10 19:20 
ja.
ich rufe Suspendstate(1,0,0) auf

also sollte es gehn
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Sa 30.01.10 19:35 
ist mir doch klar.
ich meine ob Du den Aufruf so machst wie vorgegeben, um die richtige Meldung zu erhalten!
So müsstest Du ja auch die Meldung erhalten, ob es geht oder nicht!

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 31.01.10 00:51 
Hmm, was meinst du genau?
Am Ende fährt der PC definitiv in den Ruhezustand, nicht standby und fehler sonst werden auch keine ausgegeben
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 31.01.10 04:02 
Für Standby-Modus ist der Übergabewert 0. Nicht 1.

Bei richtigen Aufruf:
Zitat:

Liefert die Funktion SetSuspendState einen Wert ungleich 0 zurück, so war der Aufruf erfolgreich. Bei einer Rückgabe von 0 war der Aufruf erfolglos - die Fehlerursache können Sie dann über die Fehlernummer aus Err.LastDllError ermitteln


Testest Du vorher auf IsPwrHibernateAllowed?

Hast Du die Möglichkeit, Dein Prog auf einen anderen Pc zu testen?

Ansonsten Poste mal die Procedure, sonst wird es nur ein rumraten :?

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 31.01.10 12:29 
Ich will ja Ruhezustand --> Wert 1
Testen brauche ich nicht, da ich WEIß, dass der Ruhezustand aktiviert ist. Darum entfällt auch eine Prüfung des Rückgabewertes, da der PC offensichtlich in den Ruhezustand fährt.

Code Wäre:
ausblenden 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:
var
  _SetSuspendState: function (Hibernate, ForceCritical, DisableWakeEvent: BOOL): BOOL stdcall = nil;

function LinkAPI(const module, functionname: string): Pointer; forward;

function SetSuspendState(Hibernate, ForceCritical,
  DisableWakeEvent: Boolean): Boolean;
begin
  if not Assigned(_SetSuspendState) then
    @_SetSuspendState := LinkAPI('POWRPROF.dll''SetSuspendState');
  if Assigned(_SetSuspendState) then
    Result := _SetSuspendState(Hibernate, ForceCritical,
      DisableWakeEvent)
  else
    Result := False;
end;

function LinkAPI(const module, functionname: string): Pointer;
var
  hLib: HMODULE;
begin
  hLib := GetModulehandle(PChar(module));
  if hLib = 0 then
    hLib := LoadLibrary(PChar(module));
  if hLib <> 0 then
    Result := getProcAddress(hLib, PChar(functionname))
  else
    Result := nil;
end;


Aufruf einer der beiden (bei beiden das gleiche Ergebnis)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
          //SetSuspendState(true,false,false);
          shellexecute(0,'open','rundll32.exe','powrprof.dll,SetSuspendState Hibernate',
               nil,
               SW_SHOW);


Problem ist NICHT, dass er nicht in den Ruhezustand fährt, sondern dass er sich nicht wieder wecken lässt.
Wenn man den gleichen PC ohne Veränderungen per Start->Beenden->Ruhezustand in den Ruhezustand fährt, funktioniert es aber.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 31.01.10 16:25 
Hi,

ist ja richtig kompliziert, nicht der Code sondern die einstellungen in Windoof Energieoptionen
Egal was Du für Parameter übergibst,
er führt den code so aus, welche Einstellung in Energieoptionen/Ruhezustand eingestellt ist.
Sobald Du in Energieoptionen/Ruhezustand, das aktivierts, fährt er komplet runter.(er ist ausgeschaltet) warum auch immer.
Unabhängig von Energieoptionen/Erweitert und CodeParameter.

Wenn das Deaktiviert ist, geht er im sogenannten Standby Modus und WOL funct.
Unabhängig was Du in Energieoptionen/Erweitert einstellst oder CodeParameter steht.

:eyes: :nut:

rofl

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 31.01.10 16:47 
Ich versteh dich nicht.

Nochmal das Problem kurz:

Ausgangszustand: 1 PC läuft, Ruhezustand aktiviert
Aktion: a)Ruhezustand per Start->Ruhezustand
b)Ruehzustand durch obigen Code
Ergebnis: a)PC im Ruhezustand, per WOL weckbar
b)PC im Ruhezustand, nicht per WOL weckbar
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 31.01.10 17:14 
Auch wenn Du mich jetzt für Unwissent hälst

Start->Copmuterauschalten Standby/Ausschalten/Neustarten

Start->Ruhezustand :roll: hab ich nicht, oder nicht aktiv oder welche Einstellung ist das? noch nie gesehen oder benötigt
:oops:

Bitte um Aufklärung. Bevor ich Dir eine Antwort geben kann.
Es kann ja sein, das ich was in windows noch nicht kenne :wink:

Gruss ALf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1555
Erhaltene Danke: 70

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: So 31.01.10 17:18 
Wenn der Ruhezustand in den Energieoptionen aktiviert ist, wird der Knopf durch drücken von [SHIFT] sichtbar.
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 31.01.10 17:33 
Richtig. mit shift.
Alternativ: Standbyschalter funktion auf Ruhezustand legen oder über taskmanager. ist alles das gleiche
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 31.01.10 17:44 
Nice, Hab wieder was gelernt :beer:

Ergebnis: a)PC im Ruhezustand, per WOL weckbar.
- Bei mir nicht :hair: keine Ahnung warum. Vermute irgendwas mit Board oder Bios. Rechner ist komplett Down.
- lediglich die Einstellungen (geöffnete Fenster usw.) bleiben erhalten.

b)PC im Ruhezustand, nicht per WOL weckbar. so ist es bei mir auch.

mh.... jetzt bin ich sprachlos und gebe auf :nixweiss: :gruebel:

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: So 31.01.10 18:32 
WOL muss aktiviert werden.
BIOS, und unter windows:
gerätemanager: Gerät kann pc ruhezustand wecken. (Eigenschaften vom netzwerkadapter)

Eigendlich funktioniert es bei komplett ausgeschaltetem PC. Leider bei diesem speziellen nur aus dem ruhezustand. seltsam aber ist so
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: So 31.01.10 19:03 
mh..
Bios, WOL ist aktiv.
Netzwerk Eigenschaft, nur Standbymodus, Ruhezustand nix.
NVIDIA nForce 10/100/1000 MbPs

Man lernt nie aus, welche vielen kleine unterschiede es gibt bei den PC(Boards/Bios NetzKarten).
Damit soll windows nun klar kommen und alles richtig machen :lol:

Nun ist auch klar warum bei einem es funct und bei andern nicht!

Tut mir Leid das ich da nicht Helfen konnte :cry:
Aber teste Dein Prog doch mal auf einem anderen PC!

Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!