草庐IT

卷的 CreateFileMapping() 失败

我在将部分卷映射到内存时遇到问题。卷已成功打开,我可以从中读取,但CreateFileMapping()失败。GetLastError()返回87,其中有following意思是:“参数不正确。”我已经创建了卷的图像并且它被正确处理了。这就是我打开文件和创建映射的方式:/*openfunction*/fd->handle=CreateFile(name,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);/*mappingfunction*/LARGE_

c# - SetForegroundWindow 在 Windows Server 2008 上失败

场景我有我的主要应用程序,它最初是用BorlandC++编写的,由C#.Net应用程序启动。这个主应用程序偶尔会从名为BRWSEXE的进程中打开一个模式对话框。弹出模态对话框窗口后,您可能会不小心单击主应用程序中的某个位置(而不是对话框),导致焦点短暂更改为主应用程序,在Z顺序中将模态对话框发送到它后面。但是您实际上不能在主应用程序上执行任何操作,它被必须先关闭才能继续的模态对话框窗口锁定。问题使用启动所有内容的.net应用程序,我可以找出与主应用程序相关的BRWSEXE实例并将它们强制置于前台。到目前为止,这种策略在我测试过的所有地方(Windowsxp、Windows7、Windo

windows - 一个进程如何访问外部 TIB?

是否有可能(以及如何)访问某个其他进程的线程的线程信息block? 最佳答案 这是可能的。第一步是使用NtQueryInformationThread获取线程信息block的地址。ThreadInformationClass设置为ThreadBasicInformation的函数.THREAD_BASIC_INFORMATION结构包含指向线程的TEB的指针。然后你可以使用ReadProcessMemory和WriteProcessMemory以便阅读或修改TEB的内容。 关于windo

c# - 我想通过 SendInput API 发送一些 key

我想通过C#上的SendInputAPI向游戏发送一些key。(我的环境是Windows764bit)我写了一些代码如下:[DllImport("user32.dll")]staticexternintSendInput(intnInputs,INPUT[]pInputs,intcbSize);[StructLayout(LayoutKind.Sequential)]私有(private)结构MOUSEINPUT{公共(public)intdx;公共(public)诠释;publicuint鼠标数据;公共(public)单位dwFlags;公共(public)单位时间;公共(publi

c# - 使用 RegisterHotKey 在应用程序中注册多个热键

我正在使用registerHotKey在我的应用程序中设置多个热键Win32.RegisterHotKey(hWndSource.Handle,add,Win32.MOD_CONTROL|Win32.MOD_SHIFT,Win32.VK_KEY_D);Win32.RegisterHotKey(hWndSource.Handle,manage,Win32.MOD_CONTROL|Win32.MOD_SHIFT,Win32.VK_KEY_M);这一切都是发现和花花公子,但我对如何捕捉每一个感到困惑。这是按下热键时发生的过程:privateIntPtrMainWindowProcCatchM

c++ - VC++,使按钮和文本框成为一个对象

目前我正在Windows中开发一个win32应用程序。我在VisualStudio2005中制作了一个对话框,我添加了一些复选框和按钮。在C#+.net中,框和按钮是一个对象。这样您就可以查看它们是打开还是关闭、更改它们的名称等等。我想在VC++中做同样的事情,但我没有让它工作。在我将状态保存在DLGPROC中的那一刻,我会查看按下按钮的时间并更新变量。但这不是一个好方法。谁能告诉我该怎么做?有没有办法让所有的按钮和复选框成为一个“对象”?或者我可以使用函数来更改静态文本字段的名称并获取字段的状态吗?谢谢。 最佳答案 使用MFC或W

windows - 如何在 Win32 中自定义选项卡控件的外观?

我需要使用Win32来管理选项卡控件。在Win32中管理选项卡不是很困难,但我想更改选项卡的外观,例如在选项卡上添加一个'x'按钮以关闭它,更改选项卡的颜色等。谁能告诉我是否有可用于此的开源代码?完成这项工作最简单快捷的方法是什么? 最佳答案 如果您希望自定义其外观,则需要所有者绘制选项卡控件。您可以在MSDN上找到相关信息:AboutTabControls:Owner-DrawnTabs 关于windows-如何在Win32中自定义选项卡控件的外观?,我们在StackOverflow上

windows - 断言当前线程不持有 CRITICAL_SECTION 锁

我有一个维护列表的对象;其中一个辅助方法需要锁定列表找到第一个元素解锁列表通知另一个线程开始清理操作等待另一个线程完成重复此操作直到列表为空。清理操作从另一个线程的列表中删除对象,因此它需要在两者之间锁定列表。只要不调用helper时已经持有列表上的锁,这就可以正常工作,因为解锁操作实际上不会允许其他线程访问列表,所以我想在此标记一个错误案例。据我所知,CRITICAL_SECTIONAPI没有提供官方支持的方式来查询当前进程是否持有这个对象,所以我正在考虑“hack-ish”方法(毕竟,它是一种调试辅助工具,并不打算用于生产代码中):变体1是检查CRITICAL_SECTION结构的

windows - 如何在不关闭主对话框(父)的情况下关闭对话框(子)

我有一个父对话框,这个对话框有菜单,在这个菜单中(帮助->关于)。当我点击关于选择时,显示关于对话框。我想如果我点击确定或关闭(X)按钮,只关闭这个对话框而不是主对话框。这是我的尝试://-------------MaindialogfunctionBOOLCALLBACKDlgFunc(HWNDhwnd,UINTmsg,WPARAMwp,LPARAMlp){switch(msg){caseWM_COMMAND:switch(LOWORD(wp)){caseIDM_HABOUT://Here,IsetwhenIclickonhelpselectioninthemenucreates(a

windows - 激活窗口时收到的消息

我试图在窗口失去焦点时暂停DirectX游戏,但消息似乎不一致。当使用Windows模式时收到WM_SETFOCUS和WM_KILLFOCUS消息并且一切正常,但是当使用全屏模式时不会收到这些消息。WM_NCACTIVATE在使用全屏模式时收到并且工作正常,但在窗口模式下当应用程序从任务栏最小化时不会收到。在某些情况下也未收到WM_ACTIVATEAPP。是否有任何一致的方法来处理获得/失去焦点问题?我只想使用在全屏和窗口模式下收到的一条消息。 最佳答案 你应该使用WM_ACTIVATE为此。