gpt4 book ai didi

delphi - 设置线程桌面 : ERROR_INVALID_HANDLE

转载 作者:行者123 更新时间:2023-12-02 03:40:08 24 4
gpt4 key购买 nike

为什么每次执行下面的代码时,SetThreadDesktop()失败并显示以下消息:

ERROR_INVALID_HANDLE

新桌面创建成功,表示句柄打开了。

发生了什么事?

program Project2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
Windows,
SysUtils;

var
_hDesk: HDESK;

begin
try
_hDesk := OpenDesktop('test', 0, True, GENERIC_ALL);

if _hDesk = 0 then
CreateDesktop('test', nil, nil, 0, GENERIC_ALL, nil);

if not SetThreadDesktop(_hDesk) then
begin
Writeln(SysErrorMessage(GetLastError));
end;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Readln;
end.

最佳答案

CreateDesktop 返回一个句柄。您需要使用该句柄将线程切换到桌面。

_hDesk := CreateDesktop('test', nil, nil, 0, GENERIC_ALL, nil);

另外,请务必检查该函数是否成功,请参阅文档了解具体方法。

关于delphi - 设置线程桌面 : ERROR_INVALID_HANDLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55820992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com