我有一个Avast防病毒软件,它有一个进程"AvastSvc.exe".如果我尝试在Windows任务管理器中结束/终止该进程,则会出现带有以下消息的窗口:"无法终止进程","操作无法完成.","访问被拒绝".试图结束一些系统Windows进程(如winlogon.exe)可能具有相同的行为(虽然一旦我设法杀死winlogon.exe并让我的机器挂了!).
我希望我的应用程序(可能转换为服务)的行为方式相同.我怎样才能做到这一点?
禁用Windows任务管理器,因此他无法杀死我的进程是一个类似的问题,它有许多有趣的答案,但它们似乎没有上述防病毒使用的技术,导致"无法终止进程"消息.
http://forums.codeguru.com/showthread.php?t=503337有一个关于如何防止停止服务的解决方案(例如,通过services.msc控制台),但我需要阻止在任务管理器中结束/终止其进程.
我在Windows 7下用C++/winapi编写应用程序,没有CLR/.Net.
权限更新:防病毒进程AvastSvc.exe归"系统"帐户所有.但是,我有"系统"帐户拥有的其他进程,它们是可以杀死的,而防病毒则不是.此外,我比较了可执行权限和防病毒进程的所有者以及可杀戮进程的所有者,我没有看到任何区别.
关于用户控制和软件目的的更新:软件功能介于系统和商业软件之间.软件的性质要求它永久运行.应用程序本身将有一个"关闭"操作,我们希望鼓励用户使用它并阻止它们杀死进程(它类似于防病毒软件的工作).我知道不可能完全阻止用户杀死它,但我想让它变得更难.这个问题具体是关于上述方法("无法终止进程"),某些服务(如Avast)使用这种方式来防止查杀进程.对我来说,实现同样的行为就足够了.此外,如果用户不喜欢/不再需要它,用户将能够卸载该软件.
我正在使用jdk1.8.0_25。
我正在尝试运行JavaFX应用程序文件,在该文件下,该文件名为“ HelloWorldMain.java”时,将使用javac / java编译并运行OK。我将其重命名为“ HelloWorldMain.groovy”,并且无法使用Groovy运行它。
是否有一种简单的方法可以使用Groovy进行运行而无需进行任何修改或进行最少的修改,最好不要使用GroovyFX这样的附加软件?而且,如果我必须使用GroovyFX,是否可以运行此纯Java代码而不作任何修改?
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
/**
*
* @author cdea
*/
public class HelloWorldMain extends Application {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Hello World");
Group root = new Group();
Scene scene = new Scene(root, 300, 250);
Button btn = new Button();
btn.setLayoutX(100);
btn.setLayoutY(80);
btn.setText("Hello World");
btn.setOnAction(new …
Run Code Online (Sandbox Code Playgroud)