AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi BugBug: TOleServer und SetThreadDesktop
Thema durchsuchen
Ansicht
Themen-Optionen

BugBug: TOleServer und SetThreadDesktop

Ein Thema von Dezipaitor · begonnen am 8. Okt 2007
Antwort Antwort
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#1

BugBug: TOleServer und SetThreadDesktop

  Alt 8. Okt 2007, 02:07
Wer die Units OleServer und/oder OleCtrls einbindet und SetThreadDesktop im Hauptthread aufruft, der wird den Fehler 170 (Ressource wird bereits verwendet) bekommen.
Das liegt daran, dass die beiden Units im initialization Teil ein Fensterhandle (oder derartiges) erstellen. Ich habe das nicht weiter untersucht.

Dieser Fehler kommt nicht unter Delphi7. Jedoch wohl in allen BDS Versionen. Andere Versionen hab ich nicht testen können.

Lösung:
Wenn man wirklich beides braucht, dann muss man SetThreadDesktop in einen anderen Thread auslagern.

Apollonius hat mal freundlicherweise ein Beispiel geschrieben.
Delphi-Quellcode:
program TrySetThreadDesktop;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows
  OleServer,
  OleCtrls;


var Old, New: Cardinal;
begin
  Old:=GetThreadDesktop(GetCurrentThreadID);
  try
    New:=CreateDesktop('MyDesktop', nil, nil, 0, GENERIC_ALL, nil);
    try
      if not SetThreadDesktop(New) then
       Writeln(SysErrorMessage(GetLastError))
      else
       begin
        SetThreadDesktop(Old);
        Writeln('Success');
       end;
    finally
      CloseDesktop(New);
    end;
  finally
    CloseDesktop(Old);
  end;
  Readln;
end.
Der Fehler ensteht sofort beim ersten SetThreadDesktop.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:16 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