草庐IT

c++ - 在 Windows 2008 R2 SP1 上使用 GetVersionEx 时的错误行为

我想检查Windows操作系统的版本是否为Windows2008或更高版本。我正在使用以下代码,它在我的环境中运行良好,但有人(客户)报告说它不能在他们的生产操作系统环境中运行,但可以在具有Windows2008R2SP1的其他系统上运行。它不工作意味着它返回false即使操作系统是Windows2008R2SP1。代码有什么问题?boolCheckIfOperatingISWindowsServer2K8orAbove(){OSVERSIONINFOEXwinOSInfo;winOSInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFOEX);Ge

c - 如果我打算通过多个进程访问文件的多个部分,使用 CreateFileMapping 和 MapViewOfFile 的正确方法是什么?

我正在用C编写一个组件,它将被几个不同的进程使用,它们都访问同一个文件。每个进程将同时访问文件的不同部分,主要用于读取,也用于写入。我想弄清楚正确的方法是:选项A:对于每个进程,为整个文件调用一次CreateFileMapping,然后在不同部分多次使用MapViewOfFile来访问它需要的部分,这意味着如果我有10个部分我想访问,我将为整个文件调用一次CreateFileMapping,端到端,然后MapViewOfFile10次,文件的每个部分一次。或选项B:对于每个要访问的每个特定部分调用CreateFileMapping和MapViewOfFile的进程,这意味着如果我有10

windows - 限制鼠标在指定窗口句柄上的移动

我想在Windows上模拟Safari的信息亭模式。OSX不适用于我的输入硬件,Chrome的GPU加速对于我使用的机器来说太慢了。[到目前为止]唯一可行的解​​决方案是运行Safari并发送F11(全屏)击键,但在鼠标到达屏幕顶部像素时阻止URL栏扩展。我已经看过但似乎找不到任何好的解决方案,想知道我是否可以限制光标移动到达屏幕的顶部像素?如果有人有任何其他解决方案,那就太好了! 最佳答案 您可以使用ClipCursor功能来做到这一点。Confinesthecursortoarectangularareaonthescreen.

c# - 使用 C# 和 WIN32 滚动记事本

我正在尝试使用C#应用程序滚动记事本窗口。相关的代码块在下面,移动/调整窗口大小的调用有效,所以我知道句柄是有效的请你看看我遗漏了什么,运行时没有任何反应。[Flags]publicenumSetWindowPosFlags:uint{SWP_ASYNCWINDOWPOS=0x4000,SWP_DEFERERASE=0x2000,SWP_DRAWFRAME=0x0020,SWP_FRAMECHANGED=0x0020,SWP_HIDEWINDOW=0x0080,SWP_NOACTIVATE=0x0010,SWP_NOCOPYBITS=0x0100,SWP_NOMOVE=0x0002,S

c# - 从代码设置桌面背景颜色

有没有一种简单的方法可以通过代码更改桌面背景颜色?我正在寻找至少适用于NT6的C++/C♯解决方案…… 最佳答案 您需要SystemParametersInfo以及桌面颜色的注册表更新。C#:SetDesktopWallpapertoaSolidColorHowtoUseSystemParametersInfoAPIforControlPanelSettings 关于c#-从代码设置桌面背景颜色,我们在StackOverflow上找到一个类似的问题: http

windows - 在另一个窗口中运行 Windows 应用程序

是否可以在另一个窗口内运行Windows应用程序(打开顶级窗口)?或者设置一个拥有该窗口的备用“桌面”/假桌面?我正在使用UIAutomation来自动化应用程序以进行测试。我想将被测应用程序置于一种沙箱中:桌面和应用程序之间的人工父窗口,或伪桌面,第二个停止等。这个桌面(和被测应用程序)不需要可见。被测应用程序的不同实例(在普通桌面上或沙箱中)不应相互冲突(窗口名称/类明智)——被测应用程序具有多个实例是安全的...我意识到这看起来有点骇人听闻,因此欢迎使用win32骇客。:) 最佳答案 您可以尝试使用CreateDesktop创

c - 硬盘上分区的名称和数量

在windows编程中,如何查询硬盘上的分区数和每个分区的名称? 最佳答案 您可以使用DeviceIoControl功能与IOCTL_DISK_GET_DRIVE_LAYOUT_EX获取分区列表的控制代码。 关于c-硬盘上分区的名称和数量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9721444/

windows - 如果在特定地址写入,则暂停进程

在Windows(最好是XP)上,当进程在特定地址(在它的虚拟地址空间中)写入时,通常可以挂起进程吗?加载的DLL执行写操作而不是进程本身的(PE)镜像中的代码这一事实使问题变得复杂。 最佳答案 您可以使用VirtualProtect和PAGE_GUARD或其他选项保护包含感兴趣地址的页面,并在地址写入时出现异常。此类异常可以由未处理的异常过滤器处理(视情况而定,应用程序可能会自行处理),或由进程外调试器应用程序处理,例如众所周知的调试器或通过API自定义应用程序调试进程。调试器应用程序可以在必要时暂停进程,或者使用快照进行小型转储

.net - 您可以从应用程序更改视觉效果性能设置吗?

我正在修改在以下位置找到的注册表值:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects。出于我的目的,它可以存储DWORD值0、1、2。这些值对应于Windows7中性能选项下的视觉效果单选按钮;分别“让Windows选择最适合我的计算机”、“调整为最佳外观”和“调整为最佳性能”。如果您使用实际的“性能选项”屏幕并进行更改并单击应用,Windows中的视觉设置将按预期重新加载。如果您以编程方式更改该值,它不会执行任何操作。有没有办法在代码中实现这一点?

c - WinMain() 到 main() 宏中的奇怪错误

/**converts'WinMain'tothetraditional'main'entrypoint**/#definePRO_MAIN(argc,argv)\int__main(int,LPWSTR*,HINSTANCE,int);\intWINAPIWinMain(HINSTANCE__hInstance,HINSTANCE__hPrevInstance,\LPSTR__szCmdLine,int__nCmdShow)\{\intnArgs;\LPWSTR*szArgvW=CommandLineToArgvW(GetCommandLineW(),&nArgs);\assert(