![]() |
1
5
Windows API函数GetDoubleClickTime用于查询两次鼠标单击之间的最大毫秒数,以便将两次单击计算为一次双击。 In Windows 10 2004版 在批处理登录的上下文中执行此函数时,意外返回0,例如:
在所有这些情况下,都没有用户界面。执行的代码(在我的例子中,它是非常旧的遗留代码,用户界面和业务规则之间还没有分离)仍然可以查询该值,如果意外返回0,则会失败。例如,在我的例子中,实例化了一个第三方用户界面控件,该控件在尝试根据系统双击时间设置.net Windows窗体计时器时失败。 同一场景返回的值>在更新到2004版本之前,Windows 10中的0。 如何重现bug使用以下简单的C#应用程序
使用Microsoft工具 DebugView (启用Capture Global Win32设置)查看Trace的输出。WriteLine。 然后在Windows任务计划程序中创建一个任务来执行编译的应用程序。使用设置“无论用户是否登录都运行”。您将看到输出为
如果直接执行编译后的应用程序,您将看到正确的输出
(或根据鼠标设置的其他值)。 在以前的Windows 10版本中,在这两种情况下都返回了大于0的值。 当代码在Windows服务或IIS应用程序池中的web应用程序中运行时,也可以看到相同的效果。可能在其他情况下,只要代码在批登录的上下文中运行。 如何解决这个问题
工具书类我也在博客上发表了这篇文章: DevExpress正在发布其PDF查看器组件的补丁: |
|
2
2
我也面临着同样的问题。我甚至尝试直接使用WinAPI:
但令人惊讶的是,集合SetDoubleClickTime没有效果(返回false),Marshal也没有效果。GetLastWin32Error()返回ERROR_REQUIRESINTERACTIVE_WINDOWSTATION(1459)。。。 当我从互动会话中跑出来时,一切都按预期进行。我的问题在于遗留的第三部分组件,我们无法修改构造函数…:-( 到目前为止,一种解决方法是使用psexec-s-i运行构建过程(我们通过LC.exe在构建过程中获取它)。。。但也许有人有另一种/更好的方法? 我忘了说,这是在一个
BR 佩德罗 |
![]() |
3
1
主要原因是您在不同的窗口站下,操作需要一个交互式窗口站。。
在直接运行的情况下,您将在交互式窗口站上运行:
在“无论用户是否登录都运行”的情况下,您将在后台运行,站点名称类似于
我可以重现此问题,并获得错误代码
作为解决方法,数据存储在注册表中:
您可以尝试将字符串转换为
|
![]() |
nano · 查找包含字符串的所有路径 7 年前 |
![]() |
jason_wun · 如何在UWP中将IntPtr写入文件 7 年前 |
![]() |
silentbugs · 混合ASP。NET和经典ASP项目性能低下 7 年前 |