草庐IT

WinAPI-RedBlue

全部标签

c - 另一个令人头疼的winapi文件权限C。为什么我的方法不起作用?

对于如何正确使用WindowsAPI来确定文件权限,我真的很苦恼。我看过很多关于此的帖子,但我似乎无法正确处理。具体来说,我想检查用户是否具有给定文件的读取或写入权限。这些是我的步骤:(1)使用GetUserNameEx访问调用客户端的完全限定用户名(包括域名);(返回0错误;使用cout调试消息似乎可以正确打印出用户名)。(2)使用LookupAccountName访问用户的SID。(我这样做了两次,第一次是为了设置SID和域缓冲区大小——第一次调用时返回122错误,第二次调用时返回0错误(符合预期))。我假设SID缓冲区设置正确。(3)用得到的sid建立一个trustee:TRUS

c - WinApi,按钮不显示

我正在尝试使用WinAPI创建简单的Windows应用程序。代码如下:#include"stdafx.h"#include"APIup.h"#defineMAX_LOADSTRING100HWNDhWnd,cw13;//GlobalVariables:HINSTANCEhInst;//currentinstanceTCHARszTitle[MAX_LOADSTRING];//ThetitlebartextTCHARszWindowClass[MAX_LOADSTRING];//themainwindowclassname//Forwarddeclarationsoffunctionsi

c++ - 如何在 Win x64 上使用 WinAPI 正确安装虚拟打印机?

我正在尝试使用WinAPI调用从C++控制台程序安装虚拟打印机。它在WindowsXP上运行良好,但在Windows7x64上有一些进程将文件锁定在系统文件夹中,这是安装所必需的。我认为它们只出现在x64Windows系统上,但我没有在WindowsXPx64上测试过。这些是进程splwow64.exe和PrintIsolationHost.exe。我试图以编程方式杀死它们,结果很好(好吧,为了终止PrintIsolationHost.exe,我设置了一个调试权限,'因为它是系统进程)但我开始认为我的代码可能有问题,如果它没有以这种方式工作。显然必须有某种安装方式而不终止任何系统进程。

c++ - 通过 WinAPI 禁用/启用网络接口(interface)

这是我在Windows上禁用/启用网络适配器的尝试:voidEnableNetDevice(boolaState,intindex){HDEVINFONetPnPHandle;SP_PROPCHANGE_PARAMSPCHP;SP_DEVINFO_DATADeviceData;NetPnPHandle=SetupDiGetClassDevs(&GUID_DEVCLASS_NET,0,0,DIGCF_PRESENT);if(NetPnPHandle==INVALID_HANDLE_VALUE){return;}DeviceData.cbSize=sizeof(SP_DEVINFO_DAT

c++ - PBS_MARQUEE Progressbar WinApi

我正在尝试让PBS_MARQUEE类型的进度条正常工作。我可以创建进度条,但我无法让它移动。如果找到这个,但我不清楚我必须做什么:“事实证明,由于我将进度条作为资源而不是使用CreateWindowEx(..),我不得不使用SetWindowLongPtr(..)来为此控件设置PBS_MARQUEE样式...”我是这样创建进度条的:hwndPB=CreateWindowEx(0,PROGRESS_CLASS,(LPSTR)NULL,WS_CHILD|WS_VISIBLE|PBS_MARQUEE,rcClient.left,rcClient.bottom-cyVScroll,rcClie

c++ - 双缓冲winAPI

好的,所以在我的应用程序中,有一堆winAPI和一些自定义控件。耶...现在,通常情况下,他们会静静地重绘自己以进行动画、状态更改等......并且一切正常。但是我有一个名为fix()的Window类方法。每当需要更新整个窗口时都会调用此方法。它会调整控件的大小并使窗口无效。发生这种情况时,将绘制背景,然后是选项卡控件,然后是顶部的所有其他控件。这会导致非常烦人的闪烁,尤其是在调整窗口大小时(因为不断调用fix())。我尝试过的:WS_EX_COMPOSITED。这只会对各个控件进行双重缓冲。这是一种改进,但闪烁不可避免地仍然存在。关闭背景绘制。几乎没有解决问题,反而使事情变得更糟。所

c++ - 使用 winapi 或 mfc 从 .NET 应用程序列表控件中获取项目名称

所以基本上我有这个软件可以以列表形式输出数据。感谢这里的评论,我们了解到它很可能是用.NET编写的。我想扫描列表,这样我就可以对数据做一些算法。使用Spy++我发现保存此列表的内容名为“Panel2”,我可以使用EnumChildWindows获取此列表的句柄(其类为“WindowsForms10.Window.8.app”)。但是我不知道如何访问列表本身以便阅读它的项目。我已经尝试在“Panel2”句柄上使用EnumChildWindows并输出所有这些窗口的标题,但它们都是空的。panel2可以是实际列表吗?如果可以,我可以将它转换为(CListCtrl*)吗?Axilles在评论

c++ - Process Explorer 使用哪个 winapi 函数来挂起进程?

我正在尝试编写一个Hook,它会捕获暂停进程的ProcessExplorer的“SomeFunction”。我已经有了一个解决方案,可以HookSuspendThread和NtSuspendThread等函数。但是ProcessExplorer使用不同的东西,我不知道是什么。请问谁能告诉我PE用来暂停进程的函数名? 最佳答案 将其附加到API监视器;它调用NtOpenProcess->NtSuspendProcess() 关于c++-ProcessExplorer使用哪个winapi函数

c++ - 如何 "Clear"一个WinAPI透明窗口

我在Win32C++中创建了一个透明复选框。我做到了,因为据我所知,在nativewin32中不能有透明复选框,我需要在NSIS安装程序中使用此复选框。我的问题:重绘时,我不知道如何删除透明背景以便在“透明Canvas”上绘图。当用户更改复选框内的文本并且我需要重新绘制它时,这很重要。我想我遇到了每个人都必须遇到的透明窗口问题。清除透明窗口的方法是什么,请注意,我熟悉WinAPI,您无法真正清除窗口AFAIK,因为您只是在窗口上重新绘制。因此,我正在寻找有关可以使用哪些技术重绘窗口的建议,例如:向父窗口发送重绘消息,希望重绘父窗口(位于复选框下方),而不向其子窗口(即复选框)发送消息。

C++ WinAPI : handling long file paths/names

我正在考虑在我的Windows应用程序中处理更长的文件路径。目前,我有一个文本框(编辑框),用户可以在其中键入绝对文件路径。然后,我使用GetWindowText将键入的文件路径读入声明如下的字符串:TCHARFilePath[MAX_PATH];显然,这里我依赖于MAX_PATH常量,它将我限制为260个字符。因此,为了处理更长的文件/路径名称,我可以像这样扩展我的TCHAR数组:TCHARFilePath[32767];。或者有更好的方法吗?我可以使用可变长度数组吗?(TCHARFilePath[];这在C++中是否可行?-抱歉,我对此很陌生)。先谢谢你!这是我上面提到的整个代码片