Articles of winapi

如何使用C ++ win32 API中的pwdlastset值和maxpwdage值来获取pwdexpirydate?

我使用ADSI获得了maxpwdage值和pwdlastset值。 现在我想检查密码到期date… hr = pDomain->get_MaxPasswordAge(&ret); maxpwdage给432000 … hr = pUser->get_PasswordLastChanged(&expirationDate); pwdlastset给41176.470196759263 … 如何使用此值来实现密码失效date?

程序运行时防止窗口进入睡眠状态?

当我的程序运行时,我不得不停止窗口进入睡眠状态。 而且我不仅要防止睡眠计时器,还要取消睡眠事件,如果按下睡眠button或以任何其他方式主动告诉计算机hibernate。 因此SetThreadExecutionState是不够的。 或者…我实际上并不需要完全阻止睡眠,只是延迟5-10秒才能让我的程序完成任务。 (我知道这是坏的程序行为,但它只是为了个人使用。)

为什么CreateProcess给出错误193(%1不是有效的Win32应用程序)

下面的代码无法启动文档。 我得到错误193(%1不是有效的Win32应用程序)。 启动可执行文件正常工作。 这些文件正确关联,双击时会启动相应的应用程序。 我search了SO和其他地方的错误消息,createprocess的东西等(例如为什么CreateProcess在Windows Server 2003 64位失败?我知道引用命令行。 这是Win7 64位VMWare VM中的Delphi XE2(Update 4)Win32应用程序。 在主机(Win7 64位)和32位XP虚拟PC虚拟机上,代码也失败。 应该在Win7 VM(Excel 2003和Crimson Editor)中启动的应用程序是32位的。 从IDE启动或独立运行testing应用程序时都会发生故障 它曾经是Delphi2007的代码,编译的D2007应用程序,这个代码来自任何地方的罚款。 代码有什么问题? 这几乎就像我忽略了一些非常明显的东西。 提前致谢, 一月 procedure StartProcess(WorkDir, Filename: string; Arguments : string = ''); var StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; lCmd : string; lOK : Boolean; LastErrorCode: Integer; begin FillChar( StartupInfo, SizeOf( TStartupInfo ), […]

C ++:在Windows上使用C ++读取和写入BMP文件最简单的方法是什么?

我想加载一个BMP文件,在内存中执行一些操作,并在Windows(Win32 native)上使用C ++输出一个新的BMP文件。 我知道ImageMagick和它的C ++绑定Magick ++ ,但我认为这是一个矫枉过正的项目,因为我目前对其他文件格式或平台不感兴趣。 在代码设置读取和写入BMP文件方面,最简单的方法是什么? 答案可能是“只使用Magick ++,这是最简单的”。 相关问题: 什么是最好的image processing库?

如何调用LogonUser()在启用了UAC的Windows服务中获取非限制完整令牌?

我在Windows Server 2012上运行WindowsService,它需要模拟一个域pipe理员用户(他也被添加到机器上的本地pipe理员组中)。 在系统上启用UAC,并使用LogonType为LOGON32_LOGON_INTERACTIVE的凭据调用LogonUser,似乎会返回受限令牌而不是完整令牌。 这导致我正在尝试做的pipe理任务失败。 在这种情况下调用LogonUser的正确方法是什么,以便返回完整的令牌而不是受限制的令牌? PS:我在这里遇到一个相关的问题如何通过非交互式login模拟获得提升权限(UAC)? 但它并不显示需要获取完整令牌的确切调用。

是否存在与IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP或IMAGE_FILE_NET_RUN_FROM_SWAP相关的风险?

我想包括IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP和IMAGE_FILE_NET_RUN_FROM_SWAP PE标志到我的可执行文件。 这个想法是为了防止从networking运行可执行文件的客户端看到偶尔出现的exception情况,例如当networking卷在睡眠后无法重新连接时。 到目前为止,我们一直build议客户从本地连接的卷上运行可执行文件。 但是,我对虚拟内存,加载器等知之甚less,不知道使用这些PE标志有什么风险。 例如,如果我这样做会更多的物理内存被我的可执行文件消耗,特别是如果有多个同时运行的可执行文件的实例? 对不起,我不能提供更多的潜在风险的例子,但这是我的问题的性质。 我有一种感觉,可能会有这样做的缺点,但根本不知道这些缺点可能是什么。

可以调整窗口大小超过屏幕大小/屏幕外?

我的目的是在Win32下以编程方式调整窗口的宽度/高度,使其大于物理屏幕的大小。 我怎样才能做到这一点? 在我的系统上,似乎给定的窗口的最大尺寸是由我的屏幕的大小,无论是编程或通过拖动大小的光标手动resize。 我已经用SetWindowPos()和MoveWindow()以编程方式尝试并同时覆盖目标窗口的大小。 奇怪的是,我知道有些人没有这个“帽子”,所以我想知道这是否可能是由于一些操作系统设置(registry)。 有没有人知道这件事? 或者,也许有一种方法来解决它? //编辑:新的发展 我正在testingWindows XP和Windows 7.我使用的显卡是NVIDIA Quadro NVS 290(256MB)和Geforce 9800GT(1GB)。 经过进一步的调查,它看起来像Windows正在截取消息和摆弄参数。 例如,如果您调用SetWindowPos来创build一个目标2000×2000,那么它只会收到一个WM_SIZE,用于上限的x / y。

如何使用C ++获取有关Windows可执行文件(.exe)的信息

我必须创build一个软件,将扫描几个目录,并提取有关发现的可执行文件的信息。 我需要做两件事情: 确定给定文件是否为可执行文件( .exe , .dll等) – 检查扩展名可能不够好。 获取有关此可执行文件的信息( 公司名称 , 产品名称等)。 我从来没有这样做过,因此不知道是否有一个Windows API(或轻量级C / C + +库)来做到这一点,甚至可能。 我想是的,因为explorer.exe做到了。 你们知道什么可以指引我正确的方向吗? 非常感谢您的帮助。

如何在Delphi中隐藏MDI子表单?

如何隐藏Delphi中的MDIChild窗口? 我在我的MDI儿童FormClose()事件中使用此代码,但它似乎不工作: procedure TfrmInstrument.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caNone; ShowWindow(Handle, SW_HIDE); frmMainForm.MDIChildClosed(Handle); end; 我的孩子窗口被最小化,而不是被隐藏。

使用CreateWindowEx创build一个消息窗口

我正在尝试使用CreateWindowEx来生成一个消息窗口: _hWnd = CreateWindowEx( 0, NULL, NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, NULL, NULL ); 当我的应用程序执行此行时,它总是返回_hWnd = 0 。 我究竟做错了什么?