草庐IT

java - 我如何知道哪些进程正在使用 Windows 中 Java 下的文件?

我们有一个用Java编写的计划任务在Windows平台上失败,因为有时它需要删除的文件仍在使用中。有没有一种方法可以从Java内部查看哪些进程正在使用文件并获取有关它们的信息?我想我会补充说,如果有必要,我愿意使用JNA或JNI,而且我认为它会是。 最佳答案 我在Github上针对JNA项目提出了一个类似的问题,@matthiasblaesing编写了一个代码来完成这个问题。密码是here.它以以下格式打印所有正在运行的进程的列表:::. 关于java-我如何知道哪些进程正在使用Wind

windows - 如何强制特定进程使用代理进行网络通信

有几个程序像Proxifier可以强制exe使用代理。还有其他一些。但是这些网站看起来都有点阴暗。我什至不相信Proxifiertbh...所以我想知道这些程序是如何工作的。他们是怎么做到的呢?是否有可用于执行此操作的WinAPI函数?或者您是否必须实际将代码注入(inject)流程?我只能找到更改windows全局代理的函数。但是有些程序不关心全局代理说什么,他们总是尝试直接连接,即使这是不可能的...... 最佳答案 Proxifier基于LSP(layeredserviceprovider),但我个人从来不喜欢这项技术,因为经

windows - 错误 :browser_process_sub_thread. cc(221)] 在 Windows 上使用 Selenium ChromeDriver 和 Chrome 等待网络服务 57 毫秒

所以我们在C#中使用Selenium来控制Chrome。在使用v74chromedriver的Chromev74和使用v75chromedriver的Chromev75(测试版)中都出现了以下问题。例如,在与网站进行大约12次交互后,我们收到错误[10084:5660:0601/111205.119:ERROR:browser_process_sub_thread.cc(221)]Waited57msfornetworkservice我们无法编辑browser_process_sub_thread.cc并重新编译。我已就此问题寻求帮助,并且正在其他地方进行讨论。但是,由于v75beta

windows - 如何在 Windows 中监视进程/程序执行?

我们正在尝试开发一个小型应用程序,它可以监视在Windows机器上执行的程序/进程。如果程序/进程不应运行,则应将其阻止。它的工作原理类似于防病毒软件。这是基本思想。我想知道挂接到操作系统的方法,以获取有关尝试在机器中运行的每个程序/进程的通知。 最佳答案 最简单的方法是使用WMI。专门监视Win32_ProcessStartTrace。这比Win32_Process更好,因为它被设置为使用事件,而Win32_Process需要轮询,这会占用更多CPU。下面是如何在C#中执行此操作。首先确保将System.Management设置为

c# - 如何创建比其父进程生命周期更长的进程

我正在尝试为我开发的平台启动外部更新程序应用程序。我想启动此更新程序的原因是因为我的配置实用程序处理平台的更新和许可配置,与将部署更新的文件夹中的其他程序集共享依赖关系。因此,虽然我可以重命名配置实用程序并在部署更新时覆盖它,但我无法重命名或覆盖它所依赖的DLL。因此,外部更新程序应用程序。我在配置实用程序中处理所有更新收集逻辑,然后尝试启动更新程序来处理实际的文件复制/覆盖操作。显然,由于正在使用的文件问题,我需要配置实用程序在更新程序开始后立即退出。我遇到的问题是我正在使用标准的Process.Start方法来启动更新程序,一旦配置实用程序退出,更新程序进程也会被终止。有什么方法可

C++ TerminateProcess 函数

我一直在搜索Win32APIC++函数的示例TerminateProcess()但找不到。一般来说,我对Win32API不是很熟悉,所以我想问问这里是否有比我更擅长的人可以给我举个例子,通过PID检索进程句柄需要终止它,然后用它调用TerminateProcess。如果您不熟悉C++,C#等价物也会有所帮助。 最佳答案 要回答最初的问题,为了通过PID检索进程句柄并调用TerminateProcess,您需要如下代码:BOOLTerminateProcessEx(DWORDdwProcessId,UINTuExitCode){DWO

windows - 为什么 Windows 会在处理器之间切换进程?

如果单线程进程很忙并且使用了100%的单个内核,则Windows似乎正在内核之间切换此进程,因为在任务管理器内核概述中,所有内核都被平等使用。为什么Windows会那样做?这不是在破坏L1/L2缓存吗? 最佳答案 将进程固定到一个核心有很多优势,主要是您已经提到的缓存。也有缺点-加热不均匀,这会产生机械应力,不会提高硅芯片的预期生命周期。为避免这种情况,操作系统倾向于使所有内核均等使用。当只有一个事件线程时,必须移动它并使缓存无效。只要不经常这样做(在CPU时间内),迁移过程中额外缓存未命中的影响就可以忽略不计。例如"Energya

macOS 安装 AutoDeskCAD 时错误提示 The directory may be locked by another process or have been set Read Only

一、错误提示:ThedirectorymaybelockedbyanotherprocessorhavebeensetReadOnly.Directory:‘Users/kyle/Library/ApplicationSupport/Autodesk/AutoCAD2021’PleasecorrectthisproblemandpressOKtoexittheapplication.截图:二、原因我看了下这个文件夹,里面是没有提示中的那个AutoCAD2021这个文件夹的。少了这个文件夹就添加这个文件夹,再启动程序,如果还提示有误就再补全对应的文件夹。一次次试下来之后,我的这个是这样的:你需要

windows - : "A child-process can inherit the handle"?是什么意思

根据SDK,有一些Win32对象可以“继承”给给定进程创建的子进程。(事件、互斥锁、管道……)这到底是什么意思?假设我有一个命名事件对象,使用CreateEvent创建,一次使用bInheritHandle==true,另一次使用==false.现在我启动一个子进程。这两个事件句柄如何影响子进程?它们在哪些情况下有所不同? 最佳答案 如果您创建/打开一个对象并允许继承该句柄,则允许继承句柄的子进程(例如,您可以为CreateProcess指定bInheritHandles=TRUE)将拥有这些句柄的副本.这些继承的句柄将具有与父句柄

windows - 如何终止运行时间超过 30 分钟的 Windows 进程

我基本上需要实现两件事,查找在Windows服务器上运行的所有“firefox.exe”进程杀死运行时间超过30分钟的那些我有零碎的东西,但不确定如何将它们全部集成以使其作为Windows服务运行。到目前为止我所拥有的-1)查找所有正在运行的firefox进程的方法wmicprocessgetname,creationdate,processid|findstrfirefox2)根据PID杀死进程的方法taskkill/PID827还剩下什么?根据creationdate计算,哪个PID运行时间超过30分钟使用taskkill命令依次杀死所有符合上述条件的PID设置这是一个服务(这个我