草庐IT

c++ - 可以打开窗口的 Win32 控制台应用程序

我的问题很简单。在Ubuntu中,程序通常可以在有或没有GUI的情况下部署,也许使用像--showGUI这样的标志。我基本上想在Windows中重新创建此功能,但似乎Windows应用程序以win_main开头,而控制台应用程序以main开头。那么产生这种行为所需的基本结构是什么?例如。在VisualStudio2012中,我应该从Windows应用程序开始,然后隐藏窗口并写入控制台吗?或者我可以从一个空的控制台应用程序开始,然后使用WindowsAPI创建一个窗口吗?谢谢(c/c++,顺便说一下) 最佳答案 控制台应用程序开始时连

windows - 模式对话框窗口出现后按钮丢失 WM_LBUTTONUP

我有一个win32应用程序,主窗口上有一个按钮。当我点击鼠标左键时,我收到WM_LBUTTONDOWN消息,当我释放鼠标左键时,我收到WM_LBUTTONUP消息,这是正常的。但是,如果在处理消息WM_LBUTTONDOWN时,(当我按住鼠标左键时),程序显示一个模态对话框窗口,该按钮将永远不会收到WM_LBUTTONUP。这成为一个问题,因为在WM_LBUTTONDOWN中,程序做了一些需要在WM_LBUTTONUP中清除的事情。现在因为模式对话框,没有机会清理了。有没有更好的方法来处理这个问题?我试过SetCapture,好像还是收不到WM_LBUTTONUP。

c++ - 如何在 Windows 中获取当前登录用户的域?

我知道我可以通过调用GetUserName获取当前登录的用户名.我正在寻找返回该用户域的API函数。 最佳答案 参见HowtoretrievecurrentuseranddomainnamesonWindowsNT,Windows2000,orWindowsXP.例子:#defineUNICODE#define_UNICODE#include#includeBOOLGetCurrentUserAndDomain(PTSTRszUser,PDWORDpcchUser,PTSTRszDomain,PDWORDpcchDomain){BO

c++ - Windows API - 剪贴板 - GlobalLock - 使用还是不使用?

我见过这样的实践,如果您要通过GetClipboardData()从Windows剪贴板中获取内容,则在返回的句柄上调用GlobalLock()函数GetClipboardData()首先-在检索数据之前(例如转换和存储)。但是我发现(至少在C++11中)我可以在没有锁定的情况下获得相同的数据...所以有3个子问题...这怎么可能?单线程应用仅“单”运行安全吗?单线程应用程序同时多次运行安全吗?...导致一个大问题-使用或不使用GlobalLock()&&什么时候?PS:当然,在每个潜在的GlobalLock()之后,您应该调用GlobalUnlock()这是我检索数据的简单部分:HA

windows - 为什么我从网上下载的这个帮助文件只有空白页?

我正在尝试调试使用WINIO的代码,但不幸的是,我找不到关于它应该做什么的任何好的解释。标准下载附带一个CHM帮助文件,但雪上加霜的是,帮助文件的每一页都是空白的!是帮助文件有问题,还是真的满是空白页? 最佳答案 您已经获得了文档。就是那个帮助文件。但是帮助文件是从网络上下载的,您的计算机知道这一点并且不想显示HTML,除非您告诉它信任它。右键单击.chm文件并选择“属性”。然后单击取消阻止按钮。然后再次打开帮助文件就可以看到内容了。 关于windows-为什么我从网上下载的这个帮助文件

windows - 如何显式锁定已挂载的文件系统?

如何在Windows7中写入物理驱动器?我正在尝试写入Windows7中的物理磁盘(例如\\.\PhysicalDrive0)。这个问题一直被问死,但从未得到回答。它曾经在WindowsXP中工作,但Microsoft有意在WindowsVista中破坏了它。Microsoft提供了有关如何执行此操作的提示,但甚至没有人能够弄明白。它曾经有效在过去,允许写入物理磁盘(只要您是管理员)。知识库文章中甚至记录了执行此操作的方法:INFO:DirectDriveAccessUnderWin32Toopenaphysicalharddrivefordirectdiskaccess(rawI/O

c++ - _get_pgmptr 与 GetModuleFileName

这两者之间有什么区别(如果有的话)?MSDN很不清楚。这里听起来它们是等价的:https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197%28v=vs.85%29.aspx但这里听起来好像_pgmptr可能并不总是给我一个完整的路径,但它并没有真正解释在什么情况下。https://msdn.microsoft.com/en-us/library/tza1y5f7.aspx_pgmptr似乎对我更有吸引力,因为我不必用它来玩缓冲区大小猜谜游戏。 最佳答案 _pgm

windows - 检测 Windows 中的日期/时间格式更改

我有一个长时间运行(并且几乎总是显示)的应用程序,它显示当前时间。目前,如果您更改时区、时间格式或语言,格式不会更改,除非我退出并重新启动应用程序。我如何才能检测到这些更改何时发生,以便我可以立即刷新格式?请注意,这是native代码,而不是托管代码(我无法更改它),因此任何仅托管的代码都是正确的。 最佳答案 更改时区会发送一个WM_TIMECHANGE向所有顶级窗口发送消息,同时更改时间格式发送WM_SETTINGCHANGE信息。更改语言(系统区域设置)需要重新启动,因此不会发送消息。

c++ - 如何进入和读取控制台程序?

对于我想编写的程序,我必须向控制台程序输入命令并从中读取命令,但我不知道该怎么做。为了便于理解,以下示例的解决方案可能会有所帮助:我想编写一个程序,将所有自然数平方到100,并将结果保存到文本文件中。假设我不知道如何计算平方数,因此使用具有以下(不可用)源代码的可执行文件square_x.exe:#includeusingnamespacestd;intmain(){doublein;cout>in){cout(253)/*²*/那么我必须如何添加到以下代码片段?(建议,在“不知何故”指示的地方):#includeusingnamespacestd;ofstreamfile;voidw

c++ - SetWindowPos 是否立即绘制

在每次鼠标移动事件中,我都在移动我的窗口。从文档中可以看出,如果移动成功,SetWindowPos会返回一个非零值。我想证实我的推断,即每次SetWindowPos返回一个非零值时,移动都已经发生。这意味着,窗口实际上已经在新位置重新绘制,然后函数才返回。函数返回后不久(处理某种消息时)不会发生移动。 最佳答案 IwantedtoconfirmmyinferencethateverytimeSetWindowPosreturnsanon-zerovalue,themovehasalreadyhappened.Whichmeans,t