草庐IT

c++ - 确定进程的输入线程 ID

有谁知道确定进程输入线程的方法吗?场景是我想调用GetKeyboardLayout,从一个单独的应用程序(可以是任何程序)中传入输入线程ID。每个线程都可以有自己的键盘输入语言集,但是为另一个进程找出合适的输入线程ID似乎是不可能的事情。例如,我创建了一个函数,我将记事本的进程ID传递给该函数,该函数在内部确定输入线程ID并从GetKeyboardLayout返回值。此函数的调用者随后会在屏幕上显示为记事本选择的输入语言。你们这些好人有什么想法吗? 最佳答案 Windows不要求进程具有与用户交互的特定线程。它不一定是进程的启动线程

windows - 如何获取 Windows 系统托盘上图标的大小?

我想在Windows系统托盘上显示之前自己加载一个合适的图标大小。如果我让Windows执行此操作(如网上许多页面所建议的那样),它会使用错误的图标大小,并且生成的系统托盘图标看起来很糟糕。如果我找到一种方法来指定要加载的图标大小,我可以在Photoshop中做得更好。使用LoadIconWithScaleDown甚至LoadImage加载特定图标大小的任务很容易,问题是我如何找出系统托盘中显示的图标的当前大小? 最佳答案 通知区域图标是方形图标,大小等于GetSystemMetrics(SM_CXSMICON)。换句话说,它们是小

c - RegSetValueEx 返回 ERROR_SUCCESS 但没有显示任何值

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我正在尝试在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下设置一个注册表值,以使我的应用程序在启动时运行。以下函数返回TRUE,但未显示该值。BOOLInstallRunOnStartup(constchar*applicationName){HKEYkey;charfil

c++ - 使用 C++ 将域名从 DNS 格式转换为 NetBIOS 格式

我不确定我在这里使用的术语是否正确。我正在为Windows使用C++进行编码。比如说,如果我有一个域名为“mysite.local”,是否有一个API可以将其转换为NetBIOS域名,例如:“MYSITE”? 最佳答案 你想要DsGetDcName功能。除了返回指定域的域Controller名称外,这还会返回域的名称。您需要同时传递DS_IS_DNS_NAME标志(指定输入域名是DNS名称)和DS_RETURN_FLAT_NAME标志(指定输出域名应该是一个平面名称):DOMAIN_CONTROLLER_INFO*pDCI;if(D

windows - MultiByteToWideChar 无法识别某些韩文字符

此韩语文本(可打印引用)“2013-03-22=0E?@HD=0F05:30”无法通过MultiByteToWideChar正确转换为Unicode。Quoted-printableformhere只是为了放置这段文字,实际内容包含0xE和0xF字节。MultiByteToWideChar(50225,0,bs.pData,bs.nSize,pData+nSize,nConvertedLen);=0E?@HD=0F按原样转换,生成的Unicode包含0xE和0xFASCII字符。但是,我发现那里应该出现几个韩语字符而不是这些字符。我一直认为国际字符序列以代码大于127的字节开头,但最近

c - 无法使用for循环创建多个线程

我正在尝试使用for循环创建3个线程。以下是我的代码片段:DWORDWINAPIThreadProc0(LPVOIDparam){return0;}DWORDWINAPIThreadProc1(LPVOIDparam){return0;}DWORDWINAPIThreadProc2(LPVOIDparam){return0;}intWINAPIWinMain(HINSTANCEhInst,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){DWORDthreadId=0;intmax_number=1;//Startthethreads

创建 3 个线程并使用 WSAWaitForMultipleEvents() 和 WSAEnumNetworkEvents() 时 CPU 使用率 100%

我创建了3个线程,每个线程都有一个套接字。在每个线程中,套接字被设置为“事件驱动”,并且每当数据可供读取时,就会生成一个事件。该代码工作正常,但它占用CPU使用率高达100%,这肯定是不可取的。我想我犯了一些错误。下面是我的代码。请帮助我找出导致100%CPU使用率的错误。代码:DWORDWINAPIThreadProc(LPVOIDparam){intthreadNumber=(int)param;intPORT=8888+threadNumber;//sothateachthreadbind()sitssockettoadifferentPortnumber.WSADATAwsa;

c - SetWindowLongPtr 返回 ERROR_ACCESS_DENIED

我还在为钩子(Hook)而苦苦挣扎。我的目标是:在notepad.exe中设置一个钩子(Hook)对其进行子类化(我的最终目标是将Edit类子类化并在我自己的窗口中显示内容)免责声明:我知道有更简单的方法可以从记事本中获取文本/内容,但这是我学习C、winapi、子类化和Hook的一种方式。我的问题是SetWindowLongPtr始终返回ERROR_ACCESS_DENIED错误(代码5)。2013年5月22日:已修复!问题是SetWindowLongPtr在错误的地方。它必须在GetMsgProc函数内。问题变得有点冗长和困惑,所以我重新写了问题(更新了代码)现在的问题是,当目标是

c++ - GetLastInputInfo() 始终为 0(零)

我想检测空闲时间(例如,用户按下某个键或移动鼠标的时间有多长)。据说GetLastInputInfo()应该是我需要的,但是当我使用它时,它总是打印0。LASTINPUTINFOlast_input={0};GetLastInputInfo(&last_input);cout知道为什么吗?谢谢编辑:使用getlasterror,它表示参数不正确(ERROR_INVALID_PARAMETER,87) 最佳答案 解决了!忘记初始化cbSize... 关于c++-GetLastInputIn

windows - AutoIt ControlCommand 未按预期工作

我正在使用AutoIt尝试制作一个小的热键应用程序来使用WindowsJournal这样我就可以快速选择不同的颜色。看来我离获得期望的结果非常接近但又很遥远。我使用AutoIt工具找到工具栏的CommandID和颜色的ID。这是我的代码:ControlCommand("[CLASS:JournalApp]","",113,"SendCommandID",40178)我的问题是不会选择颜色。它将被选择到颜色周围有“选择”括号的程度,但我绘制的颜色仍然是我选择的最后一种颜色。所以我试着乱搞,发现这段代码:ControlCommand("[CLASS:JournalApp]","",113,