草庐IT

【JavaEE】进程和线程

全部标签

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

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

windows - 获取进程总页面错误

任务管理器和SysInternalsProcessExplorer都显示进程页面错误的总数,但我发现的所有性能计数器和WMI对象仅显示每秒页面错误,是否有不同的API或一些晦涩的性能计数器确实显示特定进程的页面错误总数?(在Windows上) 最佳答案 GetProcessMemoryInfo的PROCESS_MEMORY_COUNTERS在PageFaultCount中有一个计数。 关于windows-获取进程总页面错误,我们在StackOverflow上找到一个类似的问题:

c++ - gdb 附加到 Windows 中的进程不工作

我正在尝试调试第三方软件的库。我有库的源代码,我已经使用-g编译了它。我需要启动软件来使用库和调试。AFAIK我必须启动程序,然后从gdb使用attach和进程的id。我正在这样做,但gdb说“无法附加到进程”。有谁知道为什么会这样? 最佳答案 尝试使用gdb启动它,就在内部,将其附加到gdb调用中。gdbyour_program_namerunyour_parameter1your_paremeter2... 关于c++-gdb附加到Windows中的进程不工作,我们在StackOve

python - 查找正在运行的进程的基地址

我得到了以下代码:importsubprocessfromctypesimport*#-PartwhereIgetthePIDanddeclareallvariables-#OpenProcess=windll.kernel32.OpenProcessReadProcessMemory=windll.kernel32.ReadProcessMemoryprocessHandle=OpenProcess(PROCESS_ALL_ACCESS,False,PID)ReadProcessMemory(processHandle,address,buffer,bufferSize,byref(

ruby-on-rails - 在后台进程中运行 rails -windows

我已经在windowspc上的rails安装程序上创建了一个桌面浏览器应用程序。现在我正在尝试运行railss-p3001-eproduction-d。它不在pc上运行。如何在windowspc上分离应用服务器进程?这里是错误=>BootingThin>Rails3.2.7applicationstartinginproductiononhttp://0.0.0.0:3000C:/ibt/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-3.2.7/lib/active_support/core_ext/pr

java - 从 Java 进程运行时找不到 mount.exe

我正在尝试以Java进程的形式执行挂载命令。以下是我如何形成命令:Listcommand=newArrayList();command.add("cmd.exe");command.add("/c");command.add("mount.exe");command.add("-u:"+username);command.add("-p:"+password);command.add(IP+":"+mountPoint);command.add(driveLetter+":");ProcessBuilderprocessBuilder=newProcessBuilder(command

c++ - 奇怪的 malloc 行为不允许在 64 位进程上分配超过 2GB 的内存

这个问题涉及我正在开发的一个程序。我从事的项目要求不通过网络发送行集或大于2GB的行(网络不能发送大于2GB的数据组)。我已经对代码进行了所有适当的更改,因此它不会发送这个/这些组,但现在我正在尝试构建测试用例。我已经构建了一个测试,它创建了不到10亿行,这些行占用了超过2GB的空间。在通过网络发送这些行之前,程序会正确地过滤掉它们。我遇到的问题是我需要创建一个单独的行来保存一个包含单个字符串的列或列的集合,在该行内,保存字符串,其中该行的大小大于2GB。但是当字符串开始占用接近2GB时,malloc返回NULL。我做了一些研究,发现可能是我没有足够的连续内存,所以我开始添加更多带有较

c# - 从提升的进程 C# 在非提升的浏览器中打开网页

几周来我一直在尝试从提升的进程运行非提升的Web浏览器,我尝试了各种方法,使用WinSaferApismentionedhere复制资源管理器token。以及其他各种都失败的技术。最后,我决定使用Microsoft的建议,即使用TaskScheduler来运行该应用程序。我使用了TaskSchedulerManagedWrapper,起初我尝试运行explorer.exe并将url作为命令传递,但这没有用,所以我创建了一个虚拟可执行文件,它将使用Process.Start启动该站点。这是我创建任务的方式:publicstaticvoidLaunchWin8BrowserThroughT

windows - Shellexecute 是否会与启动进程共享环境变量

程序1使用SetEnvironment并调用ShellExecute来启动程序2。程序2调用GetEnvironment并从中检索值。令人惊讶的是,正如我在MSDN中读到的那样,这是有效的,SetEnvironment是特定于过程的(至少在我的情况下)。ShellExecute是否在内部调用CreateProcess(作为子进程),后者又允许程序2访问在程序1中创建和设置的ENV变量....我使用SetEnvironment创建和使用与Windows用户和系统变量完全不同的ENV变量。 最佳答案 它将共享环境,但不会在提升运行时共享

c++ - 使用 IOCP 检测子进程的退出/失败 - C++ - Windows

我有一个流程管理器。它可能会使用createprocess函数创建数千个(在纸上!)子进程。目前我正在使用mufti-threading和WiatForMultipleObejct来检测任何child的退出或失败。我一直在寻找一些建议/指南/伪代码/链接来使用IOCP检测子进程的退出(如果可能的话)!?非常感谢! 最佳答案 是的,这是可能的。你需要看看JobObjectAPI.具体来说,您创建流程,将其分配给作业,然后将作业与完成端口相关联。参见JOBOBJECT_ASSOCIATE_COMPLETION_PORT和SetInfor