草庐IT

windows - 如何以编程方式在 Windows 10 的特定监视器上启动应用程序?

我想编写一个程序,有时需要在Windows10版本1803(2018年4月更新)上启动另一个应用程序(主要是SumatraPDF)的进程。这些应用程序应该在特定的监视器上启动。我还希望能够在需要时关闭进程。首选语言是C#和Java,但我们将不胜感激。编辑我尝试使用ShellExecuteExW函数suggestedbyIInspectable直接在C++代码中,但它不起作用,因为应用程序出现在主监视器上。我肯定犯了一个错误,因为我对WinAPI完全陌生并且对C++知之甚少。#includeHMONITORmonitors[2];//Asit'sonlyatestandIhavecurr

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

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

c - 如何从 C 程序调用可执行文件(使用 winapi)?

CreateProcess()出现了几次搜索谷歌....可以假设这是最安全、最有效的方法吗?如果是这样,我想使用被调用进程的输出。在继续C程序之前,我如何知道它已经完成?谢谢。 最佳答案 ShellExecute可用于创建进程,它是一种更方便的传递参数的方式。但如果您想使用流程的输出,那么CreateProcess可能是您最好的选择使用CreateProcess,您可以传递STARTUPINFO可用于将文件管道句柄传递给进程外的标准结构。CreateProcess将返回PROCESS_INFORMATION包含已创建进程的HANDL

windows - 如何在 Perl 中获取 Win32::Process 命令的输出?

我正在使用useWin32::Process来运行我的应用程序,如下所示。它运行良好,但我没有找到任何方法将输出输出到.txt文件。我使用NORMAL_PRIORITY_CLASS而不是CREATE_NEW_CONSOLE在同一终端上获取输出,但我不知道如何将其重定向到txt文件。/洛基#!/usr/bin/perlusestrict;usewarnings;useWin32::Process;Win32::Process::Create(my$ProcessObj,"iperf.exe","iperf.exe-u-s-p5001",0,NORMAL_PRIORITY_CLASS,".

c# - 获取 txt 文件的标准应用程序 (.NET)

在我的应用程序中,我想打开一个没有.txt扩展名的文本文件。有没有办法在.NET(C#)中获取.txt文件的标准应用程序?当然,我可以使用“记事本”,但可能有些人(比如我)更喜欢其他(他们的标准)编辑器。编辑:注册表项“[HKEY_CLASSES_ROOT]\txtfile\shell\open\command”引用记事本,但这不是我的txt文件的标准应用程序。如何获取我当前的.txt标准应用程序? 最佳答案 绝对最好的选择是使用ShellExecuteEx,传递SEE_MASK_CLASSNAME标志,以打开此文件,就好像它是.t

c++ - 两个进程之间的通信

之前已经讨论过这个问题,但我一直在努力解决这些问题,所以希望能得到一个更适合我情况的更清晰的答案:我正在32位Windows(最低要求是WinXP)下用C++开发一个应用程序,它需要跨两个进程进行通信。要害就是进程1(p1)需要启动进程2(p2),然后调用p2的各种函数。我需要p1停止它正在做的事情,直到它调用的p2函数完成,然后从它停止的地方继续。对我来说最好的研究方法是什么,这样我才能做这样的事情?祝一切顺利克里斯 最佳答案 我知道远程过程调用听起来更吸引人,因为它消除了设计您自己的“通信协议(protocol)”和序列化您自己

c# - 如何检查我的机器上是否打开了另一个应用程序窗口(即遍历所有打开的窗口)?

我有一个应用程序可以将一系列文本文件写入用户计算机上的文件夹。然后它会提示他们是否要打开文件夹以查看所有文件。我使用System.Diagnostics.Process.Start()来执行此操作并且效果很好。但是,如果已经有一个打开该文件夹的窗口,我只想重复使用该窗口而不是打开另一个窗口。有助于保持整洁。有什么想法吗?更新:我试过这个:if(MessageBox.Show("Compiled!Openfolder?","CompileDone",MessageBoxButtons.YesNo)==System.Windows.Forms.DialogResult.Yes){Proce

c# - 并行获取所有进程

我正在尝试使用C#的TPL并行获取所有进程的CPU%。我的代码是:privateIDictionary_usage=newDictionary();publicProcessCpuUsageGetter(){Process[]processes=Process.GetProcesses();intprocessCount=processes.Count();Task[]tasks=newTask[processCount];intcounter=0;for(inti=0;iDoWork(processes[i]));}Task.WaitAll(tasks);}privatevoidDo

c++ - 如何禁止普通用户终止进程?

我无法将其实现为Windows服务,因为我的进程必须与桌面交互,而这在Windows7中是被禁止的。完成此任务的最简单方法是什么?从另一个(特权)用户开始?如何做到这一点?我的用户不是黑客,只是运算符(operator),因此一些“愚蠢”的方法(例如从任务管理器中隐藏)也会有所帮助。编辑:根据提供的答案进行一些澄清我的进程没有任何GUI,所以我尽量避免从任务管理器中终止进程我的进程是监控系统的客户端,必须监控用户的桌面,所以它必须与桌面交互编辑2:我可以使用Windows服务在系统帐户下的用户session中启动单独的进程吗(因为我的服务是在系统帐户下运行的)?用户可以终止这个子进程吗

c++ - 在 C/C++ 窗口中终止进程

我正在尝试捕捉进程结束的时间(例如,通过在任务管理器中将其终止)。为了当它检测到(在结束的过程中)时,在退出做一些工作之前。我的应用并没有自己结束(死循环)我试过:1)atexit2)SetUnhandledExceptionFilter我尝试在调试运行中简单地关闭正在运行的应用程序,但最终没有达到执行额外任务的地步。帮助, 最佳答案 这应该可以回答您的问题:TherearetwowaystokillapplicationinTaskManager.KillingthroughApplicationstabwouldroughlyb