21得票6回答
如何创建一个CreateProcess使得当父进程被杀死时子进程也随之终止?

有没有一种方法可以调用CreateProcess,使得杀死父进程会自动杀死子进程? 也许可以使用创建进程标志? 编辑 解决方案是创建作业对象,将父进程和子进程都放入作业对象中。当父进程被杀死时,子进程也会被杀死。我从这里获得了代码: 在父进程被杀死时杀死子进程 请注意@wilx的评论中继承...

15得票2回答
如何在Mac OS X上使用VBA读写内存?

在Windows环境下,声明函数RtlMoveMemory提供了一种从一个地址复制字节块到另一个地址的方法: Private Declare PtrSafe Sub RtlMoveMemory Lib "kernel32" ( _ ...

14得票4回答
C# GetProcAddress 返回零

由于某些原因,每当我的C# .NET 2.0应用程序调用GetProcAddress时,它总是返回零。public class MyClass { internal static class UnsafeNativeMethods { [DllImport("k...

13得票9回答
错误:无法打开文件'kernel32.lib'

我已经在Windows 7上安装了VS2013和VS2015。我有一个现有的C++ Dll项目,在使用VS2015构建时一直都很好,但现在突然无法构建,并给出以下错误:LINK : fatal error LNK1104: cannot open file 'kernel32.lib' 从这篇...

12得票5回答
如何从 hWnd 中获取 Windows 10 应用商店应用的“应用名称”(例如 Edge)

我正在尝试获取Windows 10应用程序的易于理解的“进程名称”。目前,它们全部使用“ApplicationFrameHost”,因此我认为我可以使用“ModelId”或“PackageName”,但似乎Windows 10商店应用程序(我尝试过“Mail”、“Store”和“Edge”)无...

11得票4回答
以C# .NET编程方式重命名计算机

我需要通过 .net 应用程序重命名我的计算机。 我尝试了这段代码: public static bool SetMachineName(string newName) { MessageBox.Show(String.Format("Setting Machine Name to ...

11得票5回答
在 Windows 64 位系统中编译 32 位应用程序时出现未解决的外部符号

我正在尝试将一个旧的32位应用程序编译为64位。 我重新编译了所有使用的库,并让它查找WIN SDK6.0A x64位库。 我使用的工具和环境如下: Visual Studio 2008专业版 Visual C++ dotNet Framework 3.5 SP1 Windows Ser...

9得票1回答
VirtualProtect和kernel32.dll - 尝试访问无效地址

我正在分析进程加载的各种模块。不幸的是,我无法创建 kernel32.dll 的内存快照,尽管该函数与其他模块(例如 ntdll.dll)一起正常工作。问题出在以下代码: /* Copy code from memory */ if (VirtualProtect((BYTE*)virtu...

9得票1回答
用户模式和内核模式之间的共享内存

我正在编写一些内核端代码,用于访问在用户模式下创建的共享内存,如此处所建议:这里。 该共享内存是在用户空间中使用名称创建的: "MySharedMem" 在用户空间打开共享内存是可以的。 但是,在内核模式下调用ZwOpenSection打开相同的共享内存会失败,返回: #define ...

7得票1回答
C#封装kernel32.dll API

有没有任何包装kernel32 API的辅助类,包括所有的函数方法和结构体?或者有任何包装器生成器吗? 我想要像这样的C#中kernel32.dll的所有方法: [DllImport("kernel32.dll",EntryPoint="RtlMoveMemory")] ...