我有一个文件夹的pidl(可能存在或已被删除)。我可以用下面的代码得到一个IShellItem,但我需要的是得到那个文件夹的创建日期。我想我可以使用PKEY_DateCreated获取它,但我不知道如何获取。SHCreateShellItem(nil,nil,pidl,ShellItem);我该怎么做?我使用Delphi。 最佳答案 如果您有PIDL,您可以使用SHGetDataFromIDList获取对象的基本属性;您根本不需要IShellItem(或IShellItem2)。您将为nFormat参数指定SHGDFIL_FINDD
当我使用CopyFile复制文件时,源文件会以任何方式被锁定吗?假设-如果复制操作开始,然后有人想打开source文件,它会成功吗?如果“某人”请求独占访问文件,他的Win32API调用(可能是CreateFile)会失败,还是会等待(或其他)直到复制操作完成? 最佳答案 如果有人请求独占访问已打开的文件,该请求将失败。Windows没有包含以下内容的文件打开模式:“如果其他人正在使用该文件,请阻止他。”我记得,CopyFile打开源文件,以便其他人可以读取,但不能写入。 关于windo
我有一个Game类,在某个时候它的私有(private)HWND成员m_hWnd会获得一个值:m_hWnd=CreateWindowEx(NULL,"WindowClass","Game",//ReplacewithgameNameWS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInst,this);稍后,创建一个D2DResources对象,其中必须传递游戏的m_hWnd。voidGame::CreateRessources(HINSTANCEhInst){C
我对对话框中的按钮执行了SetFocus。该按钮获得虚线轮廓。当用户按下返回键时,对话框会收到一条IDOK消息,而不是我设置焦点时来自按钮的消息。在其他情况下也会发生同样的事情。为什么会这样?我怎样才能使返回充当按钮按下?纯C++Windows应用程序,没有MFC,没有NET。 最佳答案 功能,不是错误。[Enter]键操作标记为对话框默认按钮的按钮。使用.rc文件中的DEFPUSHBUTTON或BS_DEFPUSHBUTTON样式标志。这通常是“确定”按钮,因此返回IDOK是预期的。[Escape]键也很特殊,通常是[Cancel
Windows+Office提供的大多数字体至少具有“允许打印和预览嵌入”状态。因此是否允许将这些字体捆绑在Windows应用程序中,并让该应用程序在执行期间临时安装这些字体,而不会引起任何法律纠纷?字体仅用于GUI,不用于生成任何文档。那里也有很多免费字体,但很高兴知道Windows字体是否不存在限制,前提是它们是临时安装的(AddFontResource)。 最佳答案 与大多数类型的软件一样,字体文件是经过许可的,而不是出售的。管理字体使用的许可证因供应商而异,但通常大多数许可证(包括Microsoft随应用程序和Windows
例如,我可以使用_create_locale在我的C程序中设置语言环境因此:localeUS=_create_locale(LC_ALL,"English_UnitedStates.1252");但我需要的是相反的,即为调用线程检索语言环境名称(上面函数的第二个参数)。知道怎么做吗?附言。我知道现代Windows使用LCID。我需要此语言环境名称以与旧代码兼容。 最佳答案 希望您可以使用标准C++。来自std::locale::name:例子#include#include#includeintmain(){std::localel
我是C的新手,我正在尝试编写一个程序来运行MIDI序列,基本上,我有两个函数,都运行不同的MIDI模式,我需要它们并行运行。由于函数的性质(一个运行序列,另一个播放随机音符),我几乎100%确定我不能在同一函数中运行。我一直在互联网上搜索有关如何使用pthread(这显然在Windows上不起作用?)和CreateThread()执行此操作的线索,但我似乎无法让它工作。我目前正在尝试使用CreateThread()并尝试引入随机midi序列所需的整数,但我收到有关“LPTHREAD_START_ROUTINE”的错误,内容为:“预期的‘LPTHREAD_START_ROUTINE’,但
我使用C++创建了一个具有“WNDCLASS”结构的窗口。然后,我再次将“CreateWindow”与系统类“button”一起使用,并将父句柄设置为已创建窗口的句柄。如何从窗口中删除此按钮?我试过调用“DestroyWindow”函数,但没有任何反应。如果我不能,有没有办法完全删除窗口并在没有按钮的情况下重新绘制所有内容,这样它就不会出现?#include#includeHWNDclientwindow;RECTwr;LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){switch(messag
我想监控在Windows中运行的应用程序的状态。我可以使用什么最佳方法(Win32或更新的API)来监视特定应用程序何时运行并在之后执行我选择的另一个应用程序? 最佳答案 您可以使用WMI-请参阅此SO问答Howtomonitorprocess/programexecutioninwindows?.特别是Win32_ProcessStartTraceclass该线程中还有一些其他选项。 关于windows-WindowsAPI中是否有一种方法可以在特定应用程序运行时触发代码?,我们在St
一位客户要求我解决以下棘手的问题。他们有一个自定义软件,该软件倾向于在没有任何明显原因的情况下“左右”显示消息框。例如,软件本身是一个会计程序,当他们接受客户付款时,消息框可能会连续显示大约3或4次。每个消息框都播放Windows默认声音。不幸的是,这个软件的编程方式,它播放的声音类型是完全错误的。例如,当消息本身只是一条信息时,它可能会显示一个警告消息框并播放警告系统声音。对于使用该软件的员工来说,这一切都很烦人。我试图联系分发该软件的供应商,但我遇到了死胡同。所以现在我正在寻找缓解此问题的方法。我最简单的解决方案是建议将扬声器静音,但不幸的是,它们需要有声音才能听到传入的电子邮件,