Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fenster läßt sich auf neuem Desktop nicht verschieben (https://www.delphipraxis.net/37636-fenster-laesst-sich-auf-neuem-desktop-nicht-verschieben.html)

Luckie 8. Jan 2005 04:29


Fenster läßt sich auf neuem Desktop nicht verschieben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich lasse eine Messagebox auf einem anderen Desktop erscheinen. Die Schaltfläche kann ich anklicken, aber ich kann sie nicht verschieben. Warum ist das so?

SirThornberry 8. Jan 2005 08:35

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
ist das nur bei messageboxen so oder prinzipiell?

tommie-lie 8. Jan 2005 08:56

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Kann man denn die Position eines Fensters im Quelltext ändern? Evtl liegt es daran, daß auf diesem Desktop keine Shell vorhanden ist, oder vielleicht auch daran, daß man die MEssageBox nicht über's X schließen kann? :gruebel:

By the way: Wie oft sollen wir dir noch sagen, daß du Quellcode zu deinen Fragen mitliefern sollst? :mrgreen:

Luckie 8. Jan 2005 12:47

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Zitat:

Zitat von tommie-lie
By the way: Wie oft sollen wir dir noch sagen, daß du Quellcode zu deinen Fragen mitliefern sollst? :mrgreen:

Neugirieg, wie das geht? ;) Der Quellcode kommt erst, wenn ich selber verstanden habe, was da passiert.

tommie-lie 8. Jan 2005 12:55

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Zitat:

Zitat von Luckie
Neugirieg, wie das geht? ;)

Nö, wieso? :angel2: :mrgreen:

Zitat:

Zitat von Luckie
Der Quellcode kommt erst, wenn ich selber verstanden habe, was da passiert.

Viellecht könnte man dir dann aber auch sagen, warum es nicht so geht, wie es gehen sollte. Ich kriege das sicherlich auch so hin, du wirst wohl auch nichts anderes machen als einen neuen Desktop erzeugen und zu den zu aktivieren. Aber ich bin zu faul mir den Code selbst zu schreiben, nur damit ich was zum rumfummeln habe und evtl rauskriege, warum du dein Fenster nicht bewegen kannst. Da fummel' ich lieber an dir... ähh... deinem Quellcode rum http://www.delphi-forum.de/images/sm...con_tongue.gif

Luckie 8. Jan 2005 15:34

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
So es hat der Flag DESKTOP_CREATEMENU gefehlt. Kompletten Code gibt es hier: SwitchDesktop.

tommie-lie 8. Jan 2005 16:53

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Abgesehen davon, daß der Aufruf sowieso fehl schlägt, was versprichst du dir von:
Delphi-Quellcode:
CloseDesktop(OldDesk);
? Ich würde Dinge nicht schließen, die ich nicht selbst geöffnet habe, selbst wenn ich sie gar nicht schließen kann (siehe GetLastError). ;-)


Zitat:

Zitat von Luckie
So es hat der Flag DESKTOP_CREATEMENU gefehlt.

Interessant, für was Windows alles ein Menü haben möchte :-?
Vermutlich wegen dem "Verschieben"-Eintrag im Systemmenü? :gruebel:

Luckie 8. Jan 2005 17:02

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Zitat:

Zitat von tommie-lie
Abgesehen davon, daß der Aufruf sowieso fehl schlägt, was versprichst du dir von:
Delphi-Quellcode:
CloseDesktop(OldDesk);
? Ich würde Dinge nicht schließen, die ich nicht selbst geöffnet habe, selbst wenn ich sie gar nicht schließen kann (siehe GetLastError). ;-)

Ich schließe nicht den Dektop, sondern gebe das Handle wieder frei. ;) Und diese Funktion von einem Service aufgerufen wird, dann darf man das auch. Kannst du ja weglassen in einer GUI Anwendung.

tommie-lie 8. Jan 2005 17:20

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Zitat:

Zitat von Luckie
Ich schließe nicht den Dektop, sondern gebe das Handle wieder frei. ;)

:gruebel: Aber du hast das Handle doch gar nicht erzeugt? Du hast dir doch nur mit GetThreadDesktop nur ein bereits existentes Handle besorgt. Aber laut GetLastMassage und laut Rückgabewert des Calls schlägt die Funktion im Augenblick fehl, zumindest auch in deiner Demo-EXE, wie's in 'nem Service aussieht, der sich auf seiner Station anders austoben kann, als normale Programme, weiß ich nicht.

Zitat:

Zitat von Luckie
Und diese Funktion von einem Service aufgerufen wird, dann darf man das auch.

Selbst bei einem Service finde ich das fragwürdig, würde Windows den Desktop vom Service nicht von alleine wieder freigeben, sobald der Service beendet wurde?

Luckie 8. Jan 2005 17:26

Re: Fenster läßt sich auf neuem Desktop nicht verschieben
 
Zitat:

If the function succeeds, the return value is a handle to the desktop associated with the specified thread. You do not need to call the CloseDesktop function to close the returned handle.
Und Keith Brown hat e sin seinem Beispiel auch geschlossen. Frag ihn. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz