Articles of winapi

使用Diskpart命令行实用程序隐藏驱动器后如何访问

我想用Diskpart命令行实用程序来隐藏用户的驱动器。 我使用删除字母命令和驱动器变得隐藏。 但是我想用我用C语言编写的程序来使用那个驱动器的数据。 我怎么能做到这一点,或者有可能吗? 我想这样做只适用于USB闪存驱动器。 如果这是不可能的,请给我另一种方法来正确地做到这一点? 非常感谢,祝你好运。

RASPHONE.exe和RASDIAL.exe之间的区别

我尝试以编程方式build立拨号连接。 我尝试使用RASdial.exe和RASPhone.exe,除RasDial.exe显示在RasUp.exe在用户界面中给出的控制台中的错误外,两者都是一样的。 有人可以解释我Rasdial和Rasphone之间的区别,也是正确的一个拨号连接。 我想在用户界面中的错误消息,而不是在控制台。 请详细解释一下。

用户locking屏幕的Windows消息

我正在用C ++编写老式Windows编程,我需要在我的WndProc中捕获一个表示用户已经注销或locking屏幕的事件。 更新 (谢谢David Hefernan)我到处search,但唯一发现的是WM_ENDSESSION消息 – 它不处理屏幕locking事件。 任何人都知道这是怎么做的? 我需要通过Windows XP的风格将其应用到Windows 2000。

在将ASCIIstring传递给Windows API函数之前将其转换为UTF-16

在我目前的项目中,我一直在使用宽字符(utf16)。 但是因为我唯一的用户input将是一个URL,反正最后还是一个string,另外一个string,我只想把整个程序切换到ascii。 我的问题是,在将string传递给Windows API函数之前将string转换为utf16有什么好处吗? 在网上做了一些研究之后,好像很多人推荐这个,如果你不在Windows上使用UTF-16。

在Delphi中CreateFile不能返回一个合适的Handle – 设备

希望能find一些在windows中有服务经验的人。 我想在Delphi中使用NdisProt驱动程序用于以太网适配器 my_Handle:= CreateFile(PChar('\\。\ NdisProt'), GENERIC_WRITE或GENERIC_READ,0,nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); (也曾用\\.\\NdisProt ) 执行后, my_Handle的值始终为“4008”,GetLastError总是返回0 如果我试图读取或写入文件,我得到违反,有人知道为什么我得到这种不需要的行为?

如何获取ShellNew子菜单项

我正在处理一个应用程序,我需要显示“新build”上下文菜单的子菜单。 即当我们右键单击桌面上,我们得到新的上下文菜单项,点击新的,我们得到“文件夹”,“快捷方式”,“文本文件”等。 我的问题是 – 是否有任何API获取列表新的子菜单? 也有任何API来获得“发送到”的子菜单?

卸载软件

我的产品有一个助手可执行文件来卸载所有相关的子产品。 我根据所有子产品的升级代码卸载。 首先,我使用MsiEnumRelatedProducts函数从升级代码中获取产品代码。 然后我尝试使用MsiConfigureProductEx函数卸载产品。 问题是MsiConfigureProductEx正在返回错误。 调用函数:MsiConfigureProductsEx 返回代码:1605(0x00000645) 说明:此操作仅对当前安装的产品有效。 为什么MsiEnumRelatedProducts返回无效的产品代码? 我通过Windowsregistrysearch,看看是否存在这样的产品代码。 没有任何 如何debugging该问题? 编辑:添加了重现问题的最小代码。 // UpgradeCodes is an array having upgrade codes of all modules. TCHAR lpProductCode[GUID_STR_LENGTH]; const TCHAR tszNoReboot[] = _T("REMOVE=ALL REBOOT=ReallySuppress DISABLE_REBOOT_PROMPT=1"); for (size_t i = 0; i < sizeof(UpgradeCodes) / sizeof(UpgradeCodes[0]); i++) { tstring tstrUpgradeCode = UpgradeCodes[i]; DWORD dwIndex = 0; size_t status; […]

如何使用GetWindowRect

考虑下面的代码: LPRECT lpRect; lpRect = malloc(sizeof(LPRECT)); GetWindowRect(hwnd, lpRect); 我不知道如何从lpRect获取信息; 请指教。

如何获得EFI系统分区的卷名?

我有一个Windows机器与GPT驱动器。 我有一个EFI系统分区的DOS设备名称作为bcdedit的输出。 我想打开这个分区的句柄,并通过QueryDosDevice()获得DOS名称来与我已经拥有的DOS名称进行比较。 我试图使用FindFirstVolume / FindNextVolume查找卷名以从QueryDosDevice获取DOS名称,但是我没有findEFI系统分区的卷。 WMI也没有这个分区的卷。 如何从C ++代码获取EFI系统分区的卷名以在QueryDosDevice中使用它?

使用C#禁用Windows的animation效果

我试图禁用窗口中的“褪色”animation,每当你打开或最大化/最小化窗口时发生。 当然,这可以通过在最小化和最大化时取消animation窗口的checkbox来手动完成 我试图通过SystemParametersInfo这是我的电话: [DllImport("user32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool SystemParametersInfo(uint uiAction, uint uiParam, bool pvParam,uint fWinIni); private static UInt32 SPIF_SENDCHANGE = 0x02; private static UInt32 SPI_SETUIEFFECTS = 0x103F; public static void Main() { bool res= SystemParametersInfo(SPI_SETUIEFFECTS, 0, false, SPIF_SENDCHANGE); } result值总是为True ,所以我知道函数调用成功。 但我看不到任何结果… Windows仍然保持animation我调整任何窗口。 我编译为AnyCPU,作为pipe理员在Windows 10上运行。 对于@cody灰色这是代码(将ref关键字添加到ai参数,并将Marshal.Sizeof(ai)转换为uint)。 [StructLayout(LayoutKind.Sequential)] public struct ANIMATIONINFO { […]