草庐IT

.net - 防止单个可执行文件的多个进程实例

我正在使用.NET和C#。我想阻止同一可执行文件的两个实例同时运行,但我不想阻止从另一个文件夹运行的同一进程。例如,我有一个位于两个不同位置的可执行文件:C:\MyProject\Master\Program.exeC:\MyProject\Slave\Program.exe这些是相同的.exe文件,但位于两个不同的位置。我想允许一个从主文件夹运行的Program.exe实例和一个从从属文件夹运行的实例,但不允许任何两个。我尝试通过检查具有相同名称(Process.GetProcessesByName)的进程的数量来做到这一点,但我无法区分两者。我发现最接近的是从流程中获取模块。列表中

windows - 如何在多核系统上完全保留一个核?

我想为我的应用程序保留一个核心。在我的搜索中,我可以找到dwProcessAffinityMask来限制我的进程在我想要的内核上运行。但这不防止其他进程的线程也在“我的”核心上运行。有没有办法禁止除我的进程/线程之外的任何(系统范围的)进程/线程使用特定的核心/处理器?即使可以设置SystemAffinityMask,这也无济于事,因为这也会禁止在该处理器/核心上执行我的进程/线程。 最佳答案 如果您的目标是确保您的进程及时运行,只需使用SetPriorityClass为您的进程设置高优先级(例如HIGH_PRIORITY_CLAS

c++ - 与 shell 脚本不同,批处理文件不可执行吗?

我正在使用boost.process来运行带有一些给定输入的外部进程。用户可以指定该外部进程。所以大多数时候用户指定一个shell脚本或批处理脚本。我只是在做boost::process::launch(_script,arguments,context);它既适用于真实的可执行文件,也适用于shell脚本,只要它们是可执行的(+x)预期的。但是当我在Windows中运行它时。如果我在_script中传递一个批处理文件,它不起作用,但是如果我指定一个真正的可执行文件,它就可以工作。这让我觉得在Windows中批处理脚本根本不是可执行文件?它们只是通过cmd.exe进行解释!这是真的吗?

计算执行该程序时c程序中上下文切换的次数

我想输出Windows操作系统在执行我的程序时执行的上下文切换次数。 最佳答案 您可以为此目的使用性能计数器。发件人:http://msdn.microsoft.com/en-us/library/aa373083%28VS.85%29.aspx您可以通过两种方式查看上下文切换数据:SystemMonitor中的System\ContextSwitches/sec计数器报告系统范围内的上下文切换。Thread(_Total)\ContextSwitches/sec计数器报告所有线程每秒生成的上下文切换总数。

python - 获取python应用程序内存使用情况

我的主要目标是了解我的python应用程序在执行期间占用了多少内存。我在Windows-32和Windows-64上使用python2.7.5。我在这里找到了获取有关我的过程的一些信息的方法:http://code.activestate.com/recipes/578513-get-memory-usage-of-windows-processes-using-getpro/为方便起见,将代码放在这里:"""FunctionsforgettingmemoryusageofWindowsprocesses."""__all__=['get_current_process','get_m

windows - 如何检查进程是否被 Hook ?

他们是一种查看应用程序是否被Hook的方法吗?我希望能够查看应用程序是否被Hook,如果是,也许可以查看究竟是什么被Hook?我不确定这是否可能,但我想知道。我只是在寻找一个现有的应用程序来执行此操作以监视某些进程。 最佳答案 Hook函数有很多不同的方法。有些很容易检测,有些则更难。HookShark能够检测出相当多的常见hook方法。它无法检测到的是通过对象实例中的vtable替换Hook。入侵者将动态分配对象开头的vtable指针替换为指向他伪造的vtable的指针,其中要Hook的函数被重定向。外部程序无法检测到这一点,因为

python - 在 Windows 上优雅地终止子 Python 进程,以便 Finally 子句运行

在Windows机器上,我有许多父进程将启动子进程的场景。出于各种原因-父进程可能想要中止子进程但是(这很重要)允许它清理-即运行finally子句:try:res=bookResource()doStuff(res)finally:cleanupResource(res)(这些东西可能嵌入在更近的上下文中-通常围绕硬件锁定/数据库状态)问题是我找不到在Windows中向子进程发出信号的方法(就像在Linux环境中那样),因此它会在终止前运行清理。我认为这需要让子进程以某种方式引发异常(就像Ctrl-C那样)。我尝试过的事情:操作系统杀操作系统信号subprocess.Popen带有c

c# - Windows如何获取已经运行的进程的进程组?

我有一个使用Process.Start(ProcessStartInfoinfo)启动新进程的WPF应用程序。如何获取进程的组进程ID,以便我可以使用GenerateConsoleCtrlEvent发送Ctrl+C信号?https://msdn.microsoft.com/en-us/library/windows/desktop/ms683155%28v=vs.85%29.aspx但是,我在创建的新进程中似乎找不到控制台窗口的组进程ID。它有当前Windows用户的sessionID和进程ID。编辑:我终于让我的程序运行了,但我仍然没有找到真正问题的真正答案。我能够通过使用Gener

c++ - Cygwin 安装说明 :Hand installation over to elevated child process

我正在尝试安装Cygwin作为在Windows1064位计算机上安装gcc6.3.0的前身。我正在按照我找到的说明进行操作here.当我使用以下行安装Cygwin包时(上述链接中的第2步):C:\cygwin64>setup-x86_64.exe-q-Pwget-Pgcc-g++-Pmake-Pdiffutils-Plibmpfr-devel-Plibgmp-devel-Plibmpc-devel我在Windows命令窗口中收到以下消息:C:\cygwin64>note:Handinstallationovertoelevatedchildprocess._如上图,光标位于C:\cyg

java - java中如何获取正在运行的进程信息?

我想获取有关我的操作系统中其他正在运行的进程的信息。(两件事,过程“名称”和“路径”。)现在,我正在像“ps命令”一样使用linux命令。Processprocess=Runtime.getRuntime().exec("psx")但是因为我也想在Windows中运行它,所以我正在搜索可以在Windows和Linux中运行的其他功能。有没有不依赖os的java类或函数? 最佳答案 Java9中更新的ProcessAPI通过JEP102如果您愿意尽早升级,将会为您提供帮助...这提供了对进程树的平台不可知访问...参见ProcessH