草庐IT

c++ - 监听 WM_SYSCOMMAND 事件

我正在编写一个小的c++程序,它应该对sc_screensaver和sc_monitorpower事件使用react。这应该在后台运行,因此没有gui。因为我还没有使用WindowsAPI的经验,所以我为此苦苦挣扎。A已经在谷歌上搜索了很多,发现了很多我不理解或不起作用的方法。你们中的任何人都可以给我提示吗?我阅读了有关捕获wm_syscommand的内容,但这似乎很困难,因为我没有窗口。 最佳答案 获取消息的唯一方法是通过消息循环和窗口过程。如果您的程序没有可见的图形用户界面,您必须创建一个message-onlywindow为此

c++ - 报告 ListView 中的气球式工具提示中错误的词干位置

我想将ListView控件工具提示的默认样式更改为气球。我首先调用了ListView_GetToolTips()获取ListView工具提示控件的HWND,然后使用了GetWindowLongPtr()/SetWindowLongPtr()添加TTS_BALLOON样式。我处理LVN_GETINFOTIP以自定义ListView中项目(第一列)的工具提示:第一列项目出现的工具提示文本实际上是第三列文本的拷贝柱子。其他列(子项)由ListView自动管理。第一列项目的气球式工具提示看起来不错;它们的词干位置正确:但是第二列的工具提示似乎画错了,例如气球被绘制为好像它被引用到鼠标光标指向的

c++ - 为什么得到的MachineGuid看起来不像是GUID而是韩文?

我创建了一个简单的函数:std::wstringGetRegKey(conststd::string&location,conststd::string&name){constintvalueLength=10240;autoplatformFlag=KEY_WOW64_64KEY;HKEYkey;TCHARvalue[valueLength];DWORDbufLen=valueLength*sizeof(TCHAR);longret;ret=RegOpenKeyExA(HKEY_LOCAL_MACHINE,location.c_str(),0,KEY_READ|platformFla

windows - 跟踪移动的桌面窗口 WinApi

我正在尝试跟踪移动的桌面应用程序窗口,以便我可以平移相应的透明覆盖窗口。目前,我使用SetWinEventHookHookEVENT_SYSTEM_MOVESIZEEND事件。在我的回调中,我使用目标应用程序窗口的新位置更新了我的叠加层的位置。这行得通,但这意味着在用户放开目标窗口的标题栏后,我的叠加层会跳来跳去。我希望我的叠加层能够在移动时跟踪目标窗口,而不是在它移动之后。我能想到的唯一方法是同时HookEVENT_SYSTEM_MOVESIZESTART事件。当START事件触发时,生成一个新线程来轮询目标窗口位置并更新我的覆盖位置。然后,当END事件触发时,终止轮询线程。这是一种

c++ - 如果我输入错误的 dos 命令,shellexecute 会给出正确的结果

我正在执行dos命令并给出预期的结果。//executingdoscommandhInst=ShellExecute(0,"open","cmd.exe","/Cdir>out.txt",0,SW_HIDE);if(int(hInst)>32){cout如果我为错误的命令执行相同的代码..hInst=ShellExecute(0,"open","cmd.exe","/Cabc>out.txt",0,SW_HIDE);if(int(hInst)>32){cout它仍然显示执行的命令不是预期的。我该怎么做才能检查命令(abc)是否有效并成功执行 最佳答案

c++ - RichEdit 语法高亮

我需要你的帮助!所以,我正在创建一个带有语法高亮器的RichEdit,我是这样做的:SendMessage(hWin,WM_SETREDRAW,false,0);CHARFORMAT2format,old;format.cbSize=sizeof(format);old.cbSize=sizeof(format);MainRich.GetFormat(SCF_DEFAULT,&format);MainRich.GetFormat(SCF_DEFAULT,&old);format.dwMask=CFM_BOLD;format.dwEffects=CFE_BOLD;CHARRANGE*c=

c++ - INPUT、INPUT_KEYBOARD、ip 未在此范围内声明

#includeintmain(){//Thisstructurewillbeusedtocreatethekeyboard//inputevent.INPUTip;//Pausefor10seconds.Sleep(1000*10);//Setupagenerickeyboardevent.ip.type=INPUT_KEYBOARD;ip.ki.wScan=0;//hardwarescancodeforkeyip.ki.time=0;ip.ki.dwExtraInfo=0;//Pressthe"F5"keyip.ki.wVk=0x74;//virtual-keycodeforthe

windows - 哪种类型的特定访问权限 (ACCESS_MASK) 对 SE_LMSHARE 有效?

使用SE_LMSHARE调用Get/Set[Named]SecurityInfo时,如何解释ACE中特定于类型的访问权限?我猜我应该使用FileAccessRightsConstants的目录版本但这在任何地方都有记录吗? 最佳答案 为了像我一样尝试设置Windows共享权限并偶然发现这个老问题的其他人的利益,我整理了以下内容:[Flags]publicenumACCESS_MASK:uint{READ_FILE=0x000001,//0b000000000000000000001,1请注意,这不是一个详尽的列表-它包含提供共享权限

c++ - 使用 CreateProcessAsUser 函数从提升的进程创建非提升的进程

我正在运行一个具有SYSTEM权限的程序。我从LogonUser(szUserName,NULL,szPassword,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,&hToken)中请求句柄的用户名和密码以进行本地登录。我想运行cmd.exe程序作为登录提供的用户凭据。登录成功,但当我尝试运行该过程时,没有任何反应。程序中止。我的代码是...//cmd.cpp:Definestheentrypointfortheconsoleapplication.//#include#include#include#include#include#i

Windows SHARE_INFO_2 结构

在链接中http://msdn.microsoft.com/en-us/library/bb525410%28v=vs.85%29.aspxshi2_password字段显示shi2_passwd当服务器以共享级安全运行时,指向指定共享密码的Unicode字符串的指针。如果服务器以用户级安全运行,则该成员将被忽略。shi2_passwd成员的长度不能超过SHPWLEN+1个字节(包括终止空字符)。对NetShareSetInfo函数的调用将忽​​略此成员。*请注意,Windows不支持共享级安全。文档是关于windows操作系统的,注释是什么意思。 最佳答案