AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Frage zum Disconnect mit Indy und einer TCP/IP Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

Ein Thema von Harry Stahl · begonnen am 15. Jun 2015 · letzter Beitrag vom 16. Jun 2015
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:19
[QUOTE=Photoner;1305223]Ja die Message gibt es.

Eine schnelle Suche ergab:

WM_ENDSESSION message

https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

Ich glaube, es geht hier nicht das Herunterfahren. Die Notebooks schalten die Bildschirm ab und sind in einer Art Energiesparmodus. Ein Tastendruck und sie sind direkt wieder da. Allerdings wird hier ein Anmeldebildschirm angezeigt (wo ich aber kein Passwort erneut eingeben muss, da ich das so eingestellt habe). Also wird es eher um eine Abmeldenachricht gehen. Oder gibt es auch eine spezielle, ich gehen jetzt in den Energiespar-Modus Nachricht?

Die Clients empfangen jedenfalls keine Nachrichten vom Server, wenn sie in diesem Energiesparmodus sind (hier im Beispiel Windows 8.1 auf dem Surface Pro 3).
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#12

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:26
Auch ein interessanter Ansatz. Das würde sogar "Offline"-Arbeiten mit dem Datenbestand ermöglichen.
Wenn im Offline-Betrieb geschreiben werden soll, wird es sehr schnell wieder kompliziert. Manuelles Zusammenführen ist mühsam, vollautomatisches könnte zu Datenverlust führen.

Oder gibt es auch eine spezielle, ich gehen jetzt in den Energiespar-Modus Nachricht?
Natürlich
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:27
Oh weh, 6 Jahre her und schon vergessen...

Bei dieser Diskussion kam eine dunkle Erinnerung hoch und siehe da, hatte vor längerer Zeit diese Problematik in einer anderen Client/Server Anwendung schon mal eingebaut, also für alle, die das evtl. mal brauchen könnten, hier, wie es geht:

Delphi-Quellcode:
procedure TF_Main.WMPowerBroadcast(var MyMessage: TMessage);
begin
  if MyMessage.Msg = WM_POWERBROADCAST then begin
    // windows powermanagement message

    if (MyMessage.WParam = PBT_APMSUSPEND) or
       (MyMessage.WParam = PBT_APMSTANDBY) or
       (MyMessage.WParam = PBT_APMQUERYSUSPEND) or
       (MyMessage.WParam = PBT_APMQUERYSTANDBY)
    then begin
      // Hier hin, was getan werden muss, bevor Windows in den Standby darf,
      // z.B. Netzwerk- oder Datenbankverbindungen trennen, Timer abstellen, etc.
      // Seit Vista hat man hier nur noch max. 2 Sekunden Zeit was zu erledigen.

      if NetFileMode then begin
        mnu_CloseMainFileClick (self);
      end;

      MyMessage.Result := 1; // Standby/Ruhezustand erlauben
      // MyMessage.Result := BROADCAST_QUERY_DENY; // Standby/Ruhezustand verweigern

    end
    else
    if (MyMessage.WParam = PBT_APMRESUMECRITICAL) or
       (MyMessage.WParam = PBT_APMRESUMESUSPEND) or
       (MyMessage.WParam = PBT_APMRESUMESTANDBY)
    then begin
      // Windows kommt aus dem Standby/Ruhezustand wieder.
      // Hier z.B. Verbindungen wiederherstellen.
      hs_delay (2000, True);
      if LastNetFile <> 'then begin
        if EstablishServerConnection = 'OKthen begin
          GetFileFromServer (AsStr (['UserId=' + MyNetUserID, 'cmd=GetThisFile', 'Password=' + LastPW, 'FileName=' + LastNetFile]));
        end;
        LastNetFile := '';
      end;
    end;
  end;

  inherited;

end;
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:32
[QUOTE=BUG;1305239]Danke Bug, genau das war gemeint.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#15

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:47
Hallo,

vielen Dank! Das ist genau das was ich gesucht habe!
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Photoner

Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
 
Delphi 10.1 Berlin Starter
 
#16

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:52
Hallo,

vielen Dank! Das ist genau das was ich gesucht habe!
Das kam jetzt aber aus dem nichts
Chris
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#17

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 11:54
Die Clients empfangen jedenfalls keine Nachrichten vom Server, wenn sie in diesem Energiesparmodus sind (hier im Beispiel Windows 8.1 auf dem Surface Pro 3).
Voher aufwecken mit Wake-On-Lan?

https://technet.microsoft.com/de-de/...(v=ws.10).aspx

Wenn es denn geht.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 12:14
Wobei ich feststellen muss, dass man sich jetzt wohl für die Broadcast-Nachricht explizit registrieren muss, um diese zu erhalten (war früher definitiv nicht so).

Habe hier weitere Informationen dazu gefunden:

http://stackoverflow.com/questions/1...-use-in-delphi

Allerdings meckert der Compiler hier:

FHPOWERNOTIFY := RegisterPowerSettingNotification(Handle,
@GUID_MONITOR_POWER_ON, DEVICE_NOTIFY_WINDOW_HANDLE);

und sagt TGUID und Pointer seien Inkompatible Typen

Die Variable ist als

const
GUID_MONITOR_POWER_ON: TGUID = '{02731015-4510-4526-99e6-e5a17ebd1aea}';

definiert. Wie geht's richtig?
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 12:22
Wobei es mehrere GUIDS gibt. Welche mag wohl die richtige für den Energiesparmodus sein:
Delphi-Quellcode:
  GUID_POWERSCHEME_PERSONALITY: TGUID = '{245d8541-3943-4422-b025-13A784F679B7}';
  GUID_MIN_POWER_SAVINGS: TGUID = '{8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c}';
  GUID_MAX_POWER_SAVINGS: TGUID = '{a1841308-3541-4fab-bc81-f71556f20b4a}';
  GUID_TYPICAL_POWER_SAVINGS: TGUID = '{381b4222-f694-41f0-9685-ff5bb260df2e}';
  GUID_ACDC_POWER_SOURCE: TGUID = '{5d3e9a59-e9D5-4b00-a6bd-ff34ff516548}';
  GUID_BATTERY_PERCENTAGE_REMAINING: TGUID = '{a7ad8041-b45a-4cae-87a3-eecbb468a9e1}';
  GUID_IDLE_BACKGROUND_TASK: TGUID = '{515c31d8-f734-163d-a0fd-11a08c91e8f1}';
  GUID_SYSTEM_AWAYMODE: TGUID = '{98a7f580-01f7-48aa-9c0f-44352c29e5C0}';
  GUID_MONITOR_POWER_ON: TGUID = '{02731015-4510-4526-99e6-e5a17ebd1aea}';
  Mit Zitat antworten Zitat
Photoner

Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
 
Delphi 10.1 Berlin Starter
 
#20

AW: Frage zum Disconnect mit Indy und einer TCP/IP Verbindung

  Alt 16. Jun 2015, 12:37
Delphi-Quellcode:
function RegisterPowerSettingNotification(const hRecipient: THandle;
  const PowerSettingGuid: TGUID; const Flags: DWORD): HPOWERNOTIFY; stdcall;
Lass das mit dem @. Parameter ist vom Typ TGUID.

PBT_APMSUSPEND event

https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Chris

Geändert von Photoner (16. Jun 2015 um 12:46 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 09:19 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