草庐IT

c++ - 如何知道 GetPrivateProfileInt/String 失败的原因

我正在处理旧应用程序中的一段代码,在VisualStudio2008中使用C++。它尝试从INI文件中读取一些值,并且我正在尝试在该部分的情况下进行一些错误处理或文件中不存在我尝试读取的key。这是代码片段:intnValue=GetPrivateProfileInt(SECTION,KEY,-1,sINIFile);if(nValue==-1)//defaultvalue{intnLastError=GetLastError();if(nLastError!=0){//dosomething}}sINIFile包含我所需的INI文件的完整路径。经过一些测试,我发现GetLastErr

windows - AutoHotkey 中有没有办法知道鼠标点击和触摸屏点击

我有两台显示器,其中一台是触摸屏。现在有人在autohotkey中做一个简单的代码。您在鼠标点击和触摸屏点击之间收到了一个值例如,我在主显示器1上使用Photoshop应用程序而且我的触摸屏显示器2上有一个虚拟键盘和我的(最喜欢的击键组合)如果我用左手在我的虚拟键盘显示器上触摸屏点击2,我想。鼠标指针停留在我的主显示器上1这样我就可以继续使用PhotoShop,而无需中断将鼠标指针移回主显示器1。这是脚本迄今为止的一个替代想法。::^d;pushctrl+dtodisablethemousepointermovementBlockInputMouseMovereturn::^e;pus

windows - 动态加载 Windows dll 时,如何知道缺少的相关模块的名称

我有时会遇到无法在客户站点加载动态库的问题。这通常是因为他们的系统配置错误。我需要能够获取丢失的依赖模块的名称,以便我可以记录它,并使修复他们的系统变得更加容易。我怎样才能做到这一点?请注意,我需要一个可以放入我的代码中的答案,这意味着我不能使用依赖性检查器、进程监视器或任何其他工具来解决问题。我确实需要一种以编程方式进行的方法。DependencyChecker可以做到这一点意味着有办法。 最佳答案 从win7开始ntdll.dll导出下一个api:structFAILUREDATA{NTSTATUSstatus;WCHARDll

c# - 我如何知道分配给线程的实际时间片?

我知道实际时间片是可变的,具体取决于操作系统和处理器等多种因素。但是有没有一种方法可以让线程在它拥有CPU的时间内计算分配给它的时间片? 最佳答案 有趣的问题;但我认为:可能不是。为了从线程内部测量这个,线程需要知道两个事件:线程启动/恢复;获取CPU时间;并开始运行线程被“挂起”,并停止执行从那里开始:即使你找到了一种机制来告诉线程“你刚刚被恢复”——你怎么能告诉线程什么时候被挂起呢?换句话说:您需要两个钩子(Hook),它们不仅以某种方式通知线程“您已恢复”;还有关于“你很快就会被停职”;这样线程本身就可以进行簿记。鉴于您的评论

c++ - 如何知道 Winlogon 桌面何时准备好输入?

我成功使用了SendSAS在服务(本地系统帐户)中。我在服务启动四秒后调用API。似乎无论启动过程的持续时间如何,Windows都会设法缓存(某种程度上)调用:相同的代码最终在开机几秒钟后在一台快速笔记本电脑(Win10)上向我显示了一个登录屏幕,并且还向我显示了在运行虚拟化(wmware)的慢速服务器(2012R2)上延迟很长时间后登录屏幕。我也可以使用CreateProcessAsUser(使用更新的token)在session1、站WinSta0、桌面Winlogon中注入(inject)一个微小的可执行文件。该过程然后使用SendInput“自动登录”session(是的,这是

python - 我如何知道我使用的是哪个 CPython 版本?

我正在尝试从UnofficialWindowsBinariesforPythonExtensionPackages安装OpenCV.我下载了以下文件:opencv_python‑3.4.3‑cp37‑cp37m‑win_amd64.whl,当我做了pipinstall"opencv_python‑3.4.3‑cp37‑cp37m‑win_amd64.whl",弹出一条错误消息。错误:opencv_python-3.4.3+contrib-cp37-cp37m-win_amd64.whlisnotasupportedwheelonthisplatform.根据我在一些谷歌搜索和SO-in

c# - 我怎么知道我的应用程序窗口是前景窗口

我有以下问题:我想知道我的应用程序窗口是否是Windows中的前景窗口。我在WindowsXP上使用C#、.NetFramework3.5。我其实可以想到两种方法来做我想做的事使用pinvoke,GetForeGroundWindow并将返回的hWnd与我的表单的hWnd进行比较检查Form.ActiveForm是否为null或对象引用方法1似乎没问题,但除非万不得已,否则我宁愿不使用pinvoke。我不太确定方法2,尽管它似乎工作正常。应该用什么方法,还有其他方法吗? 最佳答案 看来ActiveForm是特定于应用程序的。如果您想

windows - 在编写处理扫描码的游戏时,我需要知道什么才能在 Mac 和 PC 上支持国际键盘?

我正在为需要能够处理不仅仅是qwerty的键盘方案的游戏编写输入系统。在设计系统时,我必须考虑:两种类型的输入:标准射击游戏控件(按下大量按钮并收集原始样本)和飞行模拟控件(按钮的标签是用户按下以切换某些内容的内容)操作系统提供的替代软件键盘布局(dvorak、azerty等)提供Unicode字符的替代硬件键盘布局我最初的倾向是对USBHIDunicode扫描码进行采样。对我需要做些什么才能与世界上的输入设备兼容以及在两个平台上推荐输入API感兴趣。 最佳答案 简单的解决方案是允许自定义输入。在控件自定义中,记录操作系统告诉您已按

windows - 我怎样才能知道我的进程被允许创建多少个 GDI 对象?

有一个注册表项,我可以在其中检查(和设置)当前为进程设置的GDI对象配额。但是,如果用户更改该注册表项,该值将保持旧值直到重新启动。在我的程序中,我需要知道是否有办法以编程方式确定我可以创建多少个GDI对象。是否有获取当前进程的GDI信息的API?在系统层面呢? 最佳答案 总是很难证明API的绝对缺失,但这个API是95%不行的。许多系统设置都是通过注册表配置的,没有API可以在之后进行调整。RaymondChen对此类问题的典型回答是“如果你想知道,那你就做错了”。它适用于此,默认的10,000个句柄配额是巨大的。

windows - dependency walker 如何知道模块中的哪些函数被使用了?

它可以列出导出函数中使用的函数。它是如何做到这一点的? 最佳答案 关键是每个Windows模块(可执行文件和库)都包含一个导入表,其中列出了它所依赖的所有其他模块。该表由链接器构建,操作系统在内部使用它来确定模块的依赖关系并加载适当的库。因此,DependencyWalker所要做的就是递归遍历所有这些模块(形象地说,“遍历”它们),构建在它们各自的导入表中指定的模块列表。它不显示所有运行时依赖项(例如使用GetProcAddress函数加载的依赖项),因为它们未在导入表中列出。它仅显示加载时(或静态)依赖项。您可以找到有关Depe