我在Linux平台上开发。我想在我的库中创建一个新进程而不替换当前正在执行的镜像。因为我正在开发一个库,所以我没有main函数。我想在调用者应用程序关闭后继续新进程(就像CreateProcessWindowsAPI)。在Linux下可以吗?类似于这个函数:voidLinux_CreateProcess(constchar*app_name){//Executingapp_name.//????????whatisthecode??????//app_nameisrunningandnevercloseifcurrentapplicationclose.return;}注意:syste
有没有办法调用CreateProcess这样杀死父进程会自动杀死子进程?也许使用CreateProcessFlags?编辑解决方案是创建一个作业对象,将父级和子级都放在作业对象中。当他的parent被杀时,child也被杀了。我从这里得到了代码:Killchildprocesswhenparentprocessiskilled注意@wilx关于继承句柄的评论。 最佳答案 将作业用作Neilsays恕我直言是最好的方法。您可以通过设置JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE使子进程在拥有作业的进程死亡时被杀
有没有办法调用CreateProcess这样杀死父进程会自动杀死子进程?也许使用CreateProcessFlags?编辑解决方案是创建一个作业对象,将父级和子级都放在作业对象中。当他的parent被杀时,child也被杀了。我从这里得到了代码:Killchildprocesswhenparentprocessiskilled注意@wilx关于继承句柄的评论。 最佳答案 将作业用作Neilsays恕我直言是最好的方法。您可以通过设置JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE使子进程在拥有作业的进程死亡时被杀
我使用CreateProcess()创建了一个进程。这是代码:STARTUPINFOsi={0};PROCESS_INFORMATIONpi={0};result=CreateProcess("C:\\AP\\DatabaseBase\\dbntsrv.exe",NULL,NULL,NULL,FALSE,0,NULL,"C:\\ADP\\SQLBase",&si,&pi)如何获取这个特定进程的Handle和processId?并最终用它来关闭这个进程?谢谢。 最佳答案 在结构pi你得到:typedefstruct_PROCESS_I
我使用CreateProcess()创建了一个进程。这是代码:STARTUPINFOsi={0};PROCESS_INFORMATIONpi={0};result=CreateProcess("C:\\AP\\DatabaseBase\\dbntsrv.exe",NULL,NULL,NULL,FALSE,0,NULL,"C:\\ADP\\SQLBase",&si,&pi)如何获取这个特定进程的Handle和processId?并最终用它来关闭这个进程?谢谢。 最佳答案 在结构pi你得到:typedefstruct_PROCESS_I
我正在用java编写一个程序,它将执行winrar并将我放在h:\myjar.jar中的jar文件解压缩到文件夹h:\new中.我的java代码是这样的importjava.io.File;importjava.io.IOException;publicclassMainClass{publicstaticvoidmain(String[]args){Runtimer=Runtime.getRuntime();Processp=null;try{Filedir=newFile("C:/ProgramFiles/WinRAR");p=r.exec("winrarxh:\\myjar.ja
我正在用java编写一个程序,它将执行winrar并将我放在h:\myjar.jar中的jar文件解压缩到文件夹h:\new中.我的java代码是这样的importjava.io.File;importjava.io.IOException;publicclassMainClass{publicstaticvoidmain(String[]args){Runtimer=Runtime.getRuntime();Processp=null;try{Filedir=newFile("C:/ProgramFiles/WinRAR");p=r.exec("winrarxh:\\myjar.ja
文档指出CreateProcess创建一个在调用进程的安全上下文下运行的进程,而不是当前模拟token的安全上下文。这是否意味着无论是否模拟,新流程的权限都相同?我有以下代码因ACCESS_DENIED错误而失败:进程A在管理员下运行;进程A模拟普通用户“测试”;进程A通过调用CreateProcess启动一个新的进程B;进程B调用OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,..);第4步失败,出现ACCESS_DENIED错误(5)。我检查了进程B是否作为进程A在Administrator下运行。为什么它在与进程A相同的用户上下文
我正在按照在谷歌上找到的公式使用CreateProcess开始一个过程。我想知道的是,我可以设置创建的进程的进程名称,以便在任务管理器中很明显吗?谢谢你,--道格拉斯 最佳答案 这不是一个可用的选项。任务管理器中可见的进程名称源自文件名。如果您想显示另一个名称,只需重命名EXE文件即可。 关于c++-如何设置使用CreateProcess创建的进程的名称?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我想执行一个简单的命令行但不显示窗口。因此,据我所知,我不能使用System并且必须使用CreateProcess。例如,我有以下代码://.../CreateProcess(NULL,input,NULL,NULL,false,NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW,NULL,NULL,&startInf,&procInf);//)//.../如果输入是类似"pingwww.google.com-n2"的行,它似乎可以工作。不过,我需要的是删除功能。因此我尝试了很多变体,例如:input="rd/S/Q\"D:\\ALEX_DATEN\\PC\\