AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi C# Warum klappt Abmeldung bei laufendem Programm nicht?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum klappt Abmeldung bei laufendem Programm nicht?

Ein Thema von Chewie · begonnen am 27. Aug 2006 · letzter Beitrag vom 28. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 20:48
Der ein oder andere kennt vielleicht mein Programm RunAs-Tray.

Ich hab nun herausgefunden, dass Windows sich nicht mehr abmelden kann, wenn das Programm läuft. Ich weiß aber nicht, was ich machen könnte, was das Abmelden verhindert.

Das einzige, was ich mir vorstellen könnte, dass es damit zu tun hat, ist folgender Ereignishandler:

Code:
void MainFormClosing(object sender, System.ComponentModel.CancelEventArgs e)
      {
         e.Cancel = true;
         Hide();
      }
Das verwende ich, um zu bewirken, dass das Programm bei einem Klick auf das X versteckt wird.

Ist das der Grund oder hat jemand sonst eine Idee, woran das liegen könnte? Der Code ist im Archiv enthalten, falls jemand drüberkucken will.


Danke schonmal!
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#2

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:23
Ich muss im Voraus sagen, dass ich C# nicht wirklich kann. Allerdings würde ich an deiner Stelle dann vielleicht auf die WM_ENDSESSION - Nachricht reagieren.

Zitat:
The WM_ENDSESSION message is sent to an application after the system processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the session is ending.
Denn mit deinem Befehl verhinderst du ja, dass dein Programm regulär beendet werden kann
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:33
Ist bei den Argumenten ein Hinweis azuf den Schließungsgrund drin? Der z.B. aufs Herunterfahren von Windows hinweist?

@Daniel G: Ja, genau das, aber auf nachrichten reagieren ist in C# meist der unschönere Ansatz
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:36
Zitat von DGL-luke:
@Daniel G: Ja, genau das, aber auf nachrichten reagieren ist in C# meist der unschönere Ansatz
So kange Windows auf Nachrcihten basiert, wirst du nicht da drumrumkommen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#5

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:40
Zitat von DGL-luke:
@Daniel G: Ja, genau das, aber auf nachrichten reagieren ist in C# meist der unschönere Ansatz


Was ist das denn für eine Sprache, bei der das Verarbeiten von Systemnachrichten ein "unschöner Ansatz" ist? In meinen (nicht - C#) - Augen ist das die einzige sinnvolle Lösung...
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:49
Zitat von DGL-luke:
Ist bei den Argumenten ein Hinweis azuf den Schließungsgrund drin? Der z.B. aufs Herunterfahren von Windows hinweist?
Leider nicht. Neben Cancel sind in den Event-Args nur Standardsachen wie ToString etc. drin
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:53
@Daniel G / Luckie: Naja, immerhin ist C# fürs .Net-Framework gebaut. Und das ist ein Framework, sollte einem die WinAPI-Arbeit also komplett abnehmen. Dazu gehört auch das Reagieren auf Windows-Nachrichten. Wenn sich das System beendet, sollte das Framework das eben z.B. per Event ans progamm melden - indem es das im MainFormClosing angibt.

Und wenn es keine andere Lösung gibt, muss man halt auf Nachrichten reagieren, das ist aber dann ein Designfehler im .Net-Framework.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#8

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:55
Zitat von DGL-luke:
@Daniel G / Luckie: Naja, immerhin ist C# fürs .Net-Framework gebaut.
*Nicht gewusst hat'*

Wie gesagt, ich kenne mich mit C# nicht aus, aber das wäre die Standard - Prozedur für mich in Win32 - Delphi (und C/C++ sicher auch).
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:59
Ich denke nicht, dass das der einzige (und damit beste) Weg ist, denn eine Applikation statt zu schließen nur zu verstecken und ein Tray-Symbol anzeigen sollte doch nicht außergewöhnliches sein, oder?

Vermutlich muss ich die Ereignisbehandlung anders bewerkstelligen, nur wie?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Warum klappt Abmeldung bei laufendem Programm nicht?

  Alt 27. Aug 2006, 21:59
@Daniel G: Ja, is klar.

Aber z.B. in Linux wirst du die Möglichkeit nicht haben, mal eben einen nachrichtenpoller zu bauen.... was allerdings afaik in .Net möglich ist, Mono etc. werden das wohl emulieren.

@Chewie: Wie bereits gesagt, es ist möglich, du kannst die Nachrichtenschleife anpieksen. Wie genau kann ich dir jetzt nicht sagen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:31 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