问题标签 [wtsapi32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
236 浏览

c# - 从 C# 导出 VirtualChannelGetInstance 函数

我想从 C# 导出这个函数:

我试过以下代码:

问题是当调用从 C# 导出的函数时,我总是得到空引用异常。可能是什么问题?

0 投票
0 回答
523 浏览

windows - 现代 Windows Server 上的 WTSSendMessage

我正在编写用于远程桌面会话的自定义管理的代码,类似于 Windows Server 中的 RD 服务管理器。我正在使用 wtsapi32.dll 和 winsta.dll 中的函数来枚举会话、获取会话信息、断开/注销用户并向他们发送消息。
我使用WTSSendMessage向用户发送消息,这足以模拟 RD 服务管理器功能。我想通过在Style参数中指定相应的值来自定义带有信息/感叹号/错误图标的结果消息框。但是,它适用于上一代操作系统(Windows 7、Windows Server 2008R2)和当前一代的客户端版本(Windows 8) ,但不适用于当前一代的服务器(2012R2)
带有图标的 WTSSendMessage
没有图标的 WTSSendMessage
是否可以在 WinServer 2012R2 中恢复所需的行为,或使用不同的 API 函数?或者这个 API 功能在 2012R2 中被弃用了(或者只是在过渡到 Metro UI 时丢失了)?

0 投票
1 回答
1226 浏览

c - WTSRegisterSessionNotification 导致进程挂起

我遵循了 WinProg 网站上的“A Simple Window”教程

当教程中的代码在没有 C 运行时库的情况下编译时,一切似乎都按预期工作。窗口被创建并以可见的方式显示给用户。

如果我通过按关闭按钮关闭窗口,则窗口将被破坏并退出进程——该进程不再在本地计算机上运行。

但是,当我链接到 WTS 库并添加对 WTSRegisterSessionNotification 函数的调用时,该进程在关闭其相应窗口后继续在本地计算机上运行。

此行为似乎仅在调用 WTSRegisterSessionNotification 后从 WinMain 返回时发生。

我的猜测是 WTSRegisterSessionNotification 创建了某种永远不会被通知退出的工作线程。从 WinMain 返回似乎不会导致 ExitProcess 调用,可能是因为代码是在没有 C 运行时库的情况下编译的。

在从 WinMain 返回之前调用 ExitProcess 可以避免该问题。但这感觉不是处理这种情况的正确方法。

我的问题是:是否有一个我忽略的 WTS API 函数可以/应该在从 WinMain 返回之前调用以确保进程退出?

代码示例:

编译器命令行:

链接器命令行:

0 投票
0 回答
36 浏览

web-services - 终端服务 - 来自 ASMX Web 服务的访问被拒绝

我正在使用Cassia库来获取 Server 2008R2 上的终端服务信息。此外,这是从 ASMX Web 服务调用的。我遇到了拒绝访问错误的问题:

我假设这只是意味着我的应用程序池需要添加到某个用户组,但我不确定是哪一个(必须先这样做才能读取性能计数器)。有谁知道是哪个?

更新:正如我在这篇文章下的评论中所说,将应用程序池添加到管理员组允许正确的访问。但是过了一段时间(可能是一周或几天),访问权限被自动删除。不确定它是由某些预先包含的服务还是由其他管理用户自动完成的。但是,无论如何,我真的不认为这是最好的方法。必须有一个较低级别的组可以访问终端服务。有任何想法吗?

0 投票
1 回答
164 浏览

c# - 使用 wtsapi32.dll 进行查询不适用于日本用户的 SAM-Account-Name

我正在使用 wtsapi32.dll。(窗口终端服务api)

我正在尝试从方法 WTSQueryUserConfig 获取用户信息。

我对使用日语(unicode)的 SAM-Account-Name 的用户有疑问。

我用(unicode 版本)修改了我的课程:

但是我用日语 SAM-Account-Name 调用这个方法它不起作用。

没有 unicode 字符的用户可以使用非 unicode 版本方法正常工作。

0 投票
0 回答
392 浏览

c++ - VPN 上的 WTSQuerySessionInformation

我们正在尝试编写一个在 VMWare 服务器上运行并返回客户端(终端用户)IP 地址和名称的 C++ DLL。

我正在使用 WTSQuerySessionInformation 来获取 IP 地址。问题是当我在公司网络中运行时,DLL 返回映射到适当主机名的确切 IP 地址。

但是当我从家里登录到公司的 VPN 并尝试相同时,它给了我一个没有任何 DNS 名称的不同 IP。

有没有办法解决这个问题?我是在遵循正确的方法,还是有不同的方法?

编辑: 如果我使用WTSClientName,它会返回以连字符分隔的 IP 地址(如 WXYZ)。如果我在这里做错了什么,你能帮我理解吗?这是代码:

0 投票
1 回答
461 浏览

c++ - C++ 端口监视器 (mfilemon.dll) RDP 虚拟通道代码未执行

我最近开始使用开源 mfilemon.dll 并尝试为其添加其他功能。

我要添加的功能是通过虚拟通道传输数据。我编写了一个小型控制台 exe 来测试代码,并且我在下面成功发送了数据(我在另一边收到一个消息弹出窗口)。

将此代码放入 mfilemon.dll 时,什么也没有发生。DLL 的所有其他功能都正常工作,但只是没有执行此代码。我认为 spooler 服务以及 Windows 中的某些东西正在阻止某些 API 调用,但很高兴知道。

这是我编写的 exe 代码,它成功地通过我的虚拟通道发送数据(我的项目是目标 Win8.1,所以我必须添加legacy_stdio_definitions.lib到链接器输入文件中)。

这是我的虚拟通道 DLL 代码。

定义文件:

主程序:

使用上述代码需要更改注册表,以便 mstsc.exe 知道加载此插件。

如果有人熟悉端口监视器并执行除创建文件之外的其他操作的代码,那将是膨胀的。

0 投票
0 回答
296 浏览

windows-10 - 在 Windows10 上的 WinStationConnectW 中访问被拒绝

多年来我一直在使用在 XP 32bit 上运行良好的代码,现在 PC 升级到 Windows10 Home 32bit 并且代码不再工作。

代码正在运行以响应带有 JwaWindows 的 Delphi7 中的 WTS_REMOTE_DISCONNECT 消息。此代码的目的是在 RDP 会话关闭后将用户会话切换回控制台,如果没有此 Windows 显示登录屏幕并且我的信息亭应用程序在本地屏幕上不可见。WinStationConnectW 返回的错误是 Error_Access_Denied。

任何人都可以帮忙吗?

0 投票
0 回答
20 浏览

visual-c++ - 关于 WTSInfoExLevel 的一些问题

我没有从 MSDN 得到太多帮助,所以在专家论坛上发布问题:

  1. WTSInfoExLevel1.IncomingCompressedBytes 和有什么区别WTSInfoExLevel1.IncomingBytes

WTSInfoExLevel1.IncomingCompressedBytes( WTSInfoExLevel1.IncomingBytes) 压缩后的数据大小,还是压缩后发送的数据大小。

  1. WTSInfoExLevel1.OutgoingCompressedBytes关于和的相同问题WTSInfoExLevel1.OutgoingBytes
0 投票
0 回答
889 浏览

c++ - 如何实现 WTSRegisterSessionNotification 功能

我想WTSRegisterSessionNotification为我的项目实现功能,现在我被困住了HINSTANCE hInstance;

我想要一个编码示例如何在 C++ 中实现 HINSTANCE

我要实施WTSRegisterSessionNotification(hwnd, NOTIFY_FOR_ALL_SESSIONS);

我收到此错误:

LNK2019 未解析的外部符号 _WTSRegisterSessionNotification@8 在函数 _main 中引用

并找出它返回的值