草庐IT

windows - 调用 CreateProcess 后避免沙漏

在我的Win32应用程序中,我嵌入了ffplay.exe用于视频预览。它工作得很好,但每次我开始预览时,光标都会变得“忙碌”,即箭头+沙漏。我想避免这种情况。 最佳答案 设置STARTF_FORCEOFFFEEDBACK在dwFlags中标记STARTUP_INFO的成员您传递给CreateProcess()的结构. 关于windows-调用CreateProcess后避免沙漏,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 强制窗口位于最顶层的窗口之上(如任务管理器)

这个问题在这里已经有了答案:Howtokeepmytopmostwindowontop?[duplicate](1个回答)关闭9年前。我有一个窗口,我想将其显示在所有其他内容之上。我的代码能够成功地强制它位于几乎每个窗口之上,除了其他最顶层的窗口。这是我使用的代码:SetWindowPos(getSDLWindow(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);每次单击鼠标中键时都会执行此行(我使用鼠标钩来触发它)。一旦我启动我的程序并单击一次中键,从那时起,我的窗口就会保持在所有“常规”窗口之上。但是,所有“

c++ - 确定窗口恢复大小

我正在尝试生成一个位图,其中包含将窗口恢复到桌面时将显示的内容。GetWindowRect返回它的最小尺寸,GetWindowplacement返回它应该去的地方。但是我找不到告诉我它有多大的API。如何确定恢复后窗口的大小? 最佳答案 GetWindowPlacement确实是您想要的。使用rcNormalPosition,它是一个包含标准化位置坐标的RECT。或者,如果WPF_RESTORETOMAXIMIZED在窗口放置flags中,则使用与窗口关联的监视器的工作区。话虽如此,在Windows7上,GetWindowPlace

c++ - Windows 主页 - SHGet(已知)文件夹路径

我正在尝试编写一个函数来获取Windows等效的HOME。我的C技能生疏了,所以请不要介意我的示例代码无法编译。我试图在WindowsVista和更新版本上使用SHGetKnownFolderPath,在Server2003和更早版本上使用SHGetFolderPath。因为我预计会遇到运行WindowsXP的用户(因为它仍然是Windows的第一部署版本),所以我将避免在符号表中引用SHGetKnownFolderPath(因为这会导致二进制文件甚至不会在XP上加载)。我从那里知道LoadLibrary()shell32和GetProcAddress(),但至少可以说,我在处理函数指

c++ - 在 Windows 中创建 C++ 非阻塞计时器

在Linux上,我会使用fork()创建一个子进程,这将是我的倒计时计时器,一旦计时器结束,子进程将向父进程发送一个信号,告诉它计时器已经结束.然后父进程应该相应地处理信号。我不知道如何在Windows上执行此操作。这里有些人建议使用线程,但他们从未编写任何示例代码来说明如何做到这一点。最重要的是计时器是非阻塞的,这意味着它在后台继续倒计时,而程序正在接受用户的输入并正常处理它。你能告诉我怎么做吗?编辑:该应用程序是一个控制台应用程序。请给我看示例代码。谢谢!更新:所以在我阅读了这里的一些建议之后,我在这里搜索了一些答案并找到了这个one这很有帮助。然后我写了下面的代码,它可以工作,但

c++ - 如何在 C++ win32 API 的对话框中设置图像?

我正在开发一个C++Api项目。我将使用dialogboxparam创建一个对话框...我完成了创建和设置文本框、标签和按钮...它的工作很好......现在我想在对话框的顶部添加一个图像...我确实在WM_INITDIALOG中使用了这段代码:HBITMAPhImage=(HBITMAP)LoadImage(NULL,L"C:\\WINDOWS\\system32\\BMA-Images\\login-header",IMAGE_BITMAP,LR_DEFAULTSIZE,LR_DEFAULTSIZE,LR_LOADFROMFILE|LR_CREATEDIBSECTION);Send

c++ - 没有 "windows.h"的 GetProcessIdOfThread

我需要手动设置线程的优先级,我使用GetProcessIdOfThread来实现。不幸的是,第3方库要求我将代码构建为UseMFCinaSharedDLL以便我可以使用afx.h进行一些dll欺骗。如何在没有windows.h的情况下使用GetProcessIdOfThread等函数?我试图包含WinBase.h但这会抛出很多废话,编译错误。 最佳答案 如果您的下游链接器设置正确,您可以简单地将函数声明添加到您选择的项目头文件中。这是WinBase.h中的原始声明:WINBASEAPIDWORDWINAPIGetProcessIdO

windows - 未收到 WM_LBUTTONDOWN 和 WM_LBUTTONUP

我创建了顶层窗口,但由于未知原因,我的WNDPROC没有收到WM_LBUTTONDOWN/WM_LBUTTONUP和WM_MOUSEMOVE消息。有什么建议吗?相关代码:WNDCLASSEXwc={0};Wc.cbSize=48;Wc.cbWndExtra=80;Wc.hCursor=LoadCursorW(g_hInstance,MAKEINTRESOURCEW(1002));Wc.style=CS_GLOBALCLASS|CS_DBLCLKS;Wc.lpszClassName=Ici[dItemIndex].sInit;Wc.lpfnWndProc=Ici[dItemIndex].

c# - C# 程序集中是否定义了 WM_KEYDOWN 常量?

我将在C#程序中使用WM_KEYDOWN和其他WM_消息。这些常量是在某处定义还是应该在每个程序中手动定义? 最佳答案 因为这些常量是在winapi库而不是.net中定义的,所以您需要自己在某个地方重新创建它们。使用这些常量的函数也在winapi中定义,因此您需要使用互操作才能在您的应用程序中使用它们。http://www.pinvoke.net/是对这些winapi常量和函数的互操作版本进行原型(prototype)设计的好资源。 关于c#-C#程序集中是否定义了WM_KEYDOWN常

c - 如何在 ring0(内核模式)中使用 winapi 函数?

我无法在驱动程序中调用FileTimeToSystemTime()方法。错误是:错误C4013:“FileTimeToSystemTime”未定义;假设extern返回int。我也不能包含windows.h,因为我已经包含了ntddk.h,它会导致很多错误。如果我在header中将其声明为BOOLFileTimeToSystemTime(INconstPFILETIME,OUTPSYSTEMTIME);我会收到下一个错误:错误C2061:语法错误:标识符“FileTimeToSystemTime”错误C2059:语法错误:';'错误C2059:语法错误:“类型”错误C4013:“Fil