Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   SwitchDesktop unter Windows7 (https://www.delphipraxis.net/155901-switchdesktop-unter-windows7.html)

SirThornberry 12. Nov 2010 12:46

SwitchDesktop unter Windows7
 
Hallo,

wenn ich unter Windows7 die Funktion SwitchDesktop aufrufe (welche auch True zurück gibt) flackert kurz der Schirm und Windows wechselt sofort selbständig zurück zum DefaultDesktop. Unter XP läuft alles wie es soll. Weiß jemand wie man unter Windows7 dieses verhalten unterbinden kann bzw. was daran Schuld ist?

Luckie 12. Nov 2010 12:50

AW: SwitchDesktop unter Windows7
 
Zeig mal Code. Bist du sicher dass es an der Funktion SwitchDesktop liegt?

SirThornberry 12. Nov 2010 13:02

AW: SwitchDesktop unter Windows7
 
mein Code sieht bisher so aus:
Code:
var
  lDesk: Cardinal;
  lCurrDesk : Cardinal;
begin
  lCurrDesk := GetThreadDesktop(GetCurrentThreadId());
  if (lCurrDesk <> 0) then
  begin
    lDesk := CreateDesktop('New Desktop', nil, nil, 1, GENERIC_ALL, nil);
    if (lDesk <> 0) then
    begin
      if not SwitchDesktop(lDesk) then
        caption := 'failed';
      Sleep(1000);
      SwitchDesktop(lCurrDesk);
      CloseDesktop(lDesk);
    end;
  end;
caption wird niemals auf "failed" gesetzt da SwitchDesktop True zurück gibt.

Dezipaitor 12. Nov 2010 13:27

AW: SwitchDesktop unter Windows7
 
Zitat:

Zitat von SirThornberry (Beitrag 1061129)
Hallo,

wenn ich unter Windows7 die Funktion SwitchDesktop aufrufe (welche auch True zurück gibt) flackert kurz der Schirm und Windows wechselt sofort selbständig zurück zum DefaultDesktop. Unter XP läuft alles wie es soll. Weiß jemand wie man unter Windows7 dieses verhalten unterbinden kann bzw. was daran Schuld ist?

Ich seh das Problem nicht. Der Code wechselt auf deinen Desktop und dann 1 Sekunde später wieder zurück. Das Flackern könnte von der Grafikkarte kommen, da ja alles 3D benutzt.

SirThornberry 12. Nov 2010 13:46

AW: SwitchDesktop unter Windows7
 
Bei dir funktioniert der code unter Windows7? Bevor da 1000 gewartet wurde war da eine 5000 so das ich mir ziemlich sicher bin das bei mir der Desktop nicht gewechselt bleibt (zumal alle Fenster des aktuellen Desktops weiter für mich sichtbar waren). Wie gesagt funktioniert bei mir das ganze unter XP auch ohne Probleme nur unter Windows7 sehe ich von dem neuen Desktop nichts.

Dezipaitor 12. Nov 2010 13:58

AW: SwitchDesktop unter Windows7
 
Also mit 5000 gehts bei mir. Alles schwarz.

SirThornberry 12. Nov 2010 14:05

AW: SwitchDesktop unter Windows7
 
dann scheint es zumindest schonmal kein allgemeines Problem von Windows7 zu sein :gruebel:

Assarbad 12. Nov 2010 15:19

AW: SwitchDesktop unter Windows7
 
Zitat:

Zitat von Dezipaitor (Beitrag 1061135)
Das Flackern könnte von der Grafikkarte kommen, da ja alles 3D benutzt.

Wäre mir neu, daß zusätzliche Desktops ohne weiteres 3D benuzten. Bei mir ist dann Aero immer inaktiv.

SirThornberry 12. Nov 2010 15:31

AW: SwitchDesktop unter Windows7
 
Da bin ich wenigstens beruhigt das es bei anderen funktioniert und kein generelles Problem von Windows7 zu sein scheint.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.

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