问题标签 [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.
c# - 从 C# 导出 VirtualChannelGetInstance 函数
我想从 C# 导出这个函数:
我试过以下代码:
问题是当调用从 C# 导出的函数时,我总是得到空引用异常。可能是什么问题?
windows - 现代 Windows Server 上的 WTSSendMessage
我正在编写用于远程桌面会话的自定义管理的代码,类似于 Windows Server 中的 RD 服务管理器。我正在使用 wtsapi32.dll 和 winsta.dll 中的函数来枚举会话、获取会话信息、断开/注销用户并向他们发送消息。
我使用WTSSendMessage向用户发送消息,这足以模拟 RD 服务管理器功能。我想通过在Style
参数中指定相应的值来自定义带有信息/感叹号/错误图标的结果消息框。但是,它适用于上一代操作系统(Windows 7、Windows Server 2008R2)和当前一代的客户端版本(Windows 8)
,但不适用于当前一代的服务器(2012R2)
是否可以在 WinServer 2012R2 中恢复所需的行为,或使用不同的 API 函数?或者这个 API 功能在 2012R2 中被弃用了(或者只是在过渡到 Metro UI 时丢失了)?
c - WTSRegisterSessionNotification 导致进程挂起
我遵循了 WinProg 网站上的“A Simple Window”教程。
当教程中的代码在没有 C 运行时库的情况下编译时,一切似乎都按预期工作。窗口被创建并以可见的方式显示给用户。
如果我通过按关闭按钮关闭窗口,则窗口将被破坏并退出进程——该进程不再在本地计算机上运行。
但是,当我链接到 WTS 库并添加对 WTSRegisterSessionNotification 函数的调用时,该进程在关闭其相应窗口后继续在本地计算机上运行。
此行为似乎仅在调用 WTSRegisterSessionNotification 后从 WinMain 返回时发生。
我的猜测是 WTSRegisterSessionNotification 创建了某种永远不会被通知退出的工作线程。从 WinMain 返回似乎不会导致 ExitProcess 调用,可能是因为代码是在没有 C 运行时库的情况下编译的。
在从 WinMain 返回之前调用 ExitProcess 可以避免该问题。但这感觉不是处理这种情况的正确方法。
我的问题是:是否有一个我忽略的 WTS API 函数可以/应该在从 WinMain 返回之前调用以确保进程退出?
代码示例:
编译器命令行:
链接器命令行:
web-services - 终端服务 - 来自 ASMX Web 服务的访问被拒绝
我正在使用Cassia库来获取 Server 2008R2 上的终端服务信息。此外,这是从 ASMX Web 服务调用的。我遇到了拒绝访问错误的问题:
我假设这只是意味着我的应用程序池需要添加到某个用户组,但我不确定是哪一个(必须先这样做才能读取性能计数器)。有谁知道是哪个?
更新:正如我在这篇文章下的评论中所说,将应用程序池添加到管理员组允许正确的访问。但是过了一段时间(可能是一周或几天),访问权限被自动删除。不确定它是由某些预先包含的服务还是由其他管理用户自动完成的。但是,无论如何,我真的不认为这是最好的方法。必须有一个较低级别的组可以访问终端服务。有任何想法吗?
c# - 使用 wtsapi32.dll 进行查询不适用于日本用户的 SAM-Account-Name
我正在使用 wtsapi32.dll。(窗口终端服务api)
我正在尝试从方法 WTSQueryUserConfig 获取用户信息。
我对使用日语(unicode)的 SAM-Account-Name 的用户有疑问。
我用(unicode 版本)修改了我的课程:
但是我用日语 SAM-Account-Name 调用这个方法它不起作用。
没有 unicode 字符的用户可以使用非 unicode 版本方法正常工作。
c++ - VPN 上的 WTSQuerySessionInformation
我们正在尝试编写一个在 VMWare 服务器上运行并返回客户端(终端用户)IP 地址和名称的 C++ DLL。
我正在使用 WTSQuerySessionInformation 来获取 IP 地址。问题是当我在公司网络中运行时,DLL 返回映射到适当主机名的确切 IP 地址。
但是当我从家里登录到公司的 VPN 并尝试相同时,它给了我一个没有任何 DNS 名称的不同 IP。
有没有办法解决这个问题?我是在遵循正确的方法,还是有不同的方法?
编辑:
如果我使用WTSClientName
,它会返回以连字符分隔的 IP 地址(如 WXYZ)。如果我在这里做错了什么,你能帮我理解吗?这是代码:
c++ - C++ 端口监视器 (mfilemon.dll) RDP 虚拟通道代码未执行
我最近开始使用开源 mfilemon.dll 并尝试为其添加其他功能。
我要添加的功能是通过虚拟通道传输数据。我编写了一个小型控制台 exe 来测试代码,并且我在下面成功发送了数据(我在另一边收到一个消息弹出窗口)。
将此代码放入 mfilemon.dll 时,什么也没有发生。DLL 的所有其他功能都正常工作,但只是没有执行此代码。我认为 spooler 服务以及 Windows 中的某些东西正在阻止某些 API 调用,但很高兴知道。
这是我编写的 exe 代码,它成功地通过我的虚拟通道发送数据(我的项目是目标 Win8.1,所以我必须添加legacy_stdio_definitions.lib
到链接器输入文件中)。
这是我的虚拟通道 DLL 代码。
定义文件:
主程序:
使用上述代码需要更改注册表,以便 mstsc.exe 知道加载此插件。
如果有人熟悉端口监视器并执行除创建文件之外的其他操作的代码,那将是膨胀的。
windows-10 - 在 Windows10 上的 WinStationConnectW 中访问被拒绝
多年来我一直在使用在 XP 32bit 上运行良好的代码,现在 PC 升级到 Windows10 Home 32bit 并且代码不再工作。
代码正在运行以响应带有 JwaWindows 的 Delphi7 中的 WTS_REMOTE_DISCONNECT 消息。此代码的目的是在 RDP 会话关闭后将用户会话切换回控制台,如果没有此 Windows 显示登录屏幕并且我的信息亭应用程序在本地屏幕上不可见。WinStationConnectW 返回的错误是 Error_Access_Denied。
任何人都可以帮忙吗?
visual-c++ - 关于 WTSInfoExLevel 的一些问题
我没有从 MSDN 得到太多帮助,所以在专家论坛上发布问题:
WTSInfoExLevel1.IncomingCompressedBytes
和有什么区别WTSInfoExLevel1.IncomingBytes
是WTSInfoExLevel1.IncomingCompressedBytes
( WTSInfoExLevel1.IncomingBytes
) 压缩后的数据大小,还是压缩后发送的数据大小。
WTSInfoExLevel1.OutgoingCompressedBytes
关于和的相同问题WTSInfoExLevel1.OutgoingBytes
c++ - 如何实现 WTSRegisterSessionNotification 功能
我想WTSRegisterSessionNotification
为我的项目实现功能,现在我被困住了HINSTANCE hInstance;
我想要一个编码示例如何在 C++ 中实现 HINSTANCE
我要实施WTSRegisterSessionNotification(hwnd, NOTIFY_FOR_ALL_SESSIONS);
我收到此错误:
LNK2019 未解析的外部符号 _WTSRegisterSessionNotification@8 在函数 _main 中引用
并找出它返回的值