草庐IT

初识进程

全部标签

c# - 我可以限制进程的 RAM 使用吗?

是否可以人为限制.NET进程可以使用的内存量?我希望模拟低内存情况以进行测试。现在我们使用虚拟机来处理这类事情。它有效,但我很想知道我们是否可以找到更方便的方法。可以轻松实现自动化的理想选择。编辑:正如HansPassant指出的那样,仅限制进程可用的虚拟内存量不会取代基于VM的测试。测试是为了性能,所以我需要交换而不是OutOfMemoryException。 最佳答案 Onethatcouldeasilybeautomatedwouldbeideal.您可以使用WindowsJobObjects从代码中管理它。流程可以与工作相关

windows - 捕获 Windows 终端关闭正在运行的进程

在命令提示符窗口中,我有一个正在运行的进程。当进程仍在执行时,我单击命令提示符窗口一角的(红色)“X”。命令提示符窗口关闭,正在运行的进程终止。在Linux上,关闭正在运行的进程的父终端将向该进程发送SIGHUP。我如何在Windows上捕获此事件? 最佳答案 SIGHUP的等价物是通过您在SetConsoleCtrlHandler注册的回调提供的.您的回调函数将在dwCtrlType=CTRL_CLOSE_EVENT的任意线程池线程上调用。您有5秒的时间进行清理,您无法取消关闭。示例代码可在thisMSDNarticle中找到

python - 关闭 PyQt 对话框终止父进程? (PyQt4/Pyside) 示例代码

我正在处理的QSystemTrayIcon应用程序有问题。我使用SystemTrayIcon作为父项或祖父项创建的任何对话框在关闭时都会终止整个应用程序,即使我覆盖了“拒绝”方法也是如此。这是一个没有图标的简化示例。运行它时(这里是Windows7),任务栏上应该有一个空白托盘图标应用程序。如果您左键单击它,将弹出一个空对话框。单击“X”关闭对话框也将完全终止python进程。fromPySideimportQtGui,QtCoreclassRestartDialog(QtGui.QDialog):def__init__(self,parent):super(RestartDialog

c - 终止进程时是否可以删除文件?

我需要编写一个创建文件的WindowsC应用程序,并且在应用程序终止时需要删除该文件(无论是在正常终止还是强制终止的情况下)。另一个要求是用户还应该能够以只读模式打开此文件(可能使用记事本)。基本上这将在Java中读取(即DocumentBuilder::parse)我写了下面的代码HANDLEhFile=CreateFile("d:\\test.xml",GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_ALWAYS,FILE_FLAG_DELETE_ON_CLOSE,NULL);当我在Notepad.exe中打开文件(即test.xml)时,我收到

c++ - 防止 DLL 文件通过 MS Detours 加载到我的进程中

我想阻止特定的第三方DLL文件在运行时加载到我的应用程序进程中。我最初的尝试是使用MSDetours产品。我有一个32位MFC在Windows1064位上运行的应用程序。我使用免费的MSDetours3.0版本进行了测试,作为可行性检查。在我的MFC应用程序类构造函数中,我调用Detours来拦截“加载库”API(LoadLibraryW、LoadLibraryExW、LoadLibraryA和LoadLibraryExA)。这让我可以拦截库加载,目前我只是注销正在加载的库的名称,然后调用原始API,以便它继续加载库。最终的计划是寻找特定的第三方DLL文件名,在这种情况下返回失败,阻止

python - 子进程权限被拒绝

我正在研究python如何在Windows10上启动其他程序,我遇到了堆栈溢出,有人说:importsubprocesssubprocess.call(['C:\\Users\Edvin\Desktop','C:\\Example.txt'])应该这样做,所以我更改了位置,使其特定于我,并且出现了一个错误,即PermissionError:[WinError5]Accessisdenied。有谁知道如何授予python打开文件的权限?我试过:importsubprocesssubprocess.call(['C:\\Users\\Edvin\\AppData\\Roaming\\Mic

linux - 使用硬件定时器是实现进程调度的唯一方法吗?

我读到操作系统使用以下方法实现调度:CPU必须有一个硬件定时器,每X次触发一次中断毫秒。一旦定时器中断触发,定时器中断处理程序将执行使CPU开始执行另一个进程的指令(或者我想我应该说的另一个线程)。我的问题是:我刚才描述的方法是实现调度的唯一方法吗? 最佳答案 没有。基本上有两种在操作系统中实现多线程的基本方法:1)抢先式多任务处理通过抢占式多任务处理,您可以使用中断源来触发任务切换。大多数情况下,人们会在定时器ISR(中断服务例程)内进行任务切换,以防执行长时间运行的任务并且没有发生其他硬件事件。万一发生了其他硬件事件,还可以进行

c++ - 从另一个进程调用函数

我提前为我的英语道歉:D如何在知道指向进程的指针的情况下调用进程中的函数?我试过这个:进程.cpp:DWORDpid;HWNDhwnd;HANDLEphandle;voidAttach(){hwnd=FindWindow(NULL,L"GTA:SA:MP");if(!hwnd){cout主要.cpp:intmain(){std::cout我得到以下异常:Anexceptionwasthrownattheaddress0x006EF7B6inwh_mta.exe:0xC0000005:accessviolationduringexecutionat0x006EF7B6.为什么会这样?如何

c - 确定进程是否已死 - 通过 PID

我有两种不同的方法来检查进程是否仍在运行:1)使用GetExitCodeProcess()2)使用CreateToolhelp32Snapshot()遍历进程列表并检查PID现在,在这两种情况下,我仍然知道我用TerminateProcess终止的进程仍然存在,即使它不是。有没有办法通过PID明确知道进程是活着还是死了?谢谢! 最佳答案 不要将PID用于这样的事情。PID被重复使用并且具有非常的范围,具有非常高的冲突概率。换句话说,您会发现一个正在运行的进程,但它是一个不同进程。 关于c

python - 从子进程启动时如何停止 Bottle Web 服务器

我想嵌入伟大的Bottleweb框架到一个小应用程序(第一个目标是Windows操作系统)。由于子进程模块,此应用启动了bottle网络服务器。importsubprocessp=subprocess.Popen('pythonwebsrv.py')Bottle应用程序非常简单@route("/")defindex():returntemplate('index')run(reloader=True)它将默认网络服务器启动到Windows控制台。除了我必须按Ctrl-C来关闭bottle网络服务器之外,一切似乎都还不错。我希望主应用程序在关闭时终止网络服务器。我找不到办法做到这一点(不