我有这段代码可以将可执行文件插入到启动注册表中:privatestaticvoidaddToWin(Filef,Stringparam)throwsIOException{Stringname=generateName(f);Stringcmd="regaddHKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run/v"+name+"/tREG_SZ/d\""+f.getAbsolutePath()+param+"\"";Runtime.getRuntime().exec(cmd);}这有效,但问题是在运行它之后我在任务管理器中有一
我正在编写一个导出标准化接口(interface)(VST)并由外部应用程序托管的实时库。库必须发布一个表,该表可以被同一进程中的任何线程查看(如果它知道在哪里查看)——明确地说,这个表必须可以被进程空间中的所有dll查看——如果他们知道在哪里查看看。访问表必须很快。虚拟内存似乎有点矫枉过正,我考虑过使用窗口句柄(现在仍然可以)来消息泵,但我更喜欢一种更快的方法,如果有的话。此外,PE中的共享数据段是我希望尽可能避免的。我想我几乎宁愿使用窗口句柄。我目前不关心同步,事后我可以处理。我只是想要一些关于在进程空间内发布表的最快技术的建议。 最佳答案
我有一个GUIRuby工具需要生成一个子命令行进程,例如ping。如果我在Windows上执行此操作,控制台窗口将出现并消失以进行控制台进程,这非常烦人。是否可以从不显示控制台窗口的GUIRuby脚本启动进程?如果我使用反引号运算符或Kernel#system,将出现控制台窗口,请参见下面的示例:require'Tk'require'thread'Thread.new{`ping8.8.8.8`}TkRoot.new.mainloop 最佳答案 问题是Windows上的每个可执行文件在构建时都被定义为GUI可执行文件或控制台可执行文
我正在编写一个生成并终止Chrome浏览器的应用程序。虽然我以编程方式终止进程(与通过Windows任务管理器终止进程的效果相同),但有人建议这也可能导致内存泄漏——即来自内核资源等元素,这些元素未与原始进程正确关联.在进程被终止后,应用程序是否可能泄漏内存或以其他方式拥有不可回收的内存? 最佳答案 这可能会发生,但当它发生时,它永远不会是程序中的错误。它总是由Windows内核代码或某些内核驱动程序中的错误/错误引起。此外,您甚至不太可能在Windows的标准安装上遇到此类行为。 关于
我正在开发一个应用程序,其中进程A的多个实例依赖于进程B的单个实例。我的想法是进程A的一个实例启动进程B,以便所有实例A的可以使用它。A的实例托管在第3方进程中,并且可以在不可预测的时间点拆除(通过终止进程树)。因此,进程B不是进程A的任何实例的子进程至关重要。我曾尝试使用PInvoke来调用CreateProcess,在创建标志中指定DetachedProcess(0x08),但这没有用(请参见下面的代码)。[DllImport("kernel32.dll")]privatestaticexternboolCreateProcess(stringlpApplicationName,s
是否有可能在Windows中以编程方式(以任何语言)了解正在运行/空闲进程的CPU使用情况? 最佳答案 如果您不关心支持旧的Windows版本(早于WindowsXPSP1),您可以使用GetSystemTimesWin32APIfunction.否则你必须使用PerformanceCounters. 关于c#-如何在Windows中的那个时刻查找特定进程的cpu使用率,我们在StackOverflow上找到一个类似的问题: https://stackover
我有一个内核驱动程序。我如何枚举我的内核驱动程序中指定进程的所有打开句柄?我想关闭这些句柄。谢谢! 最佳答案 Iwanttoclosethesehandles.就其值(value)而言,仅仅因为可以做某事,并不意味着应该做。这是个坏主意。也就是说,可以使用对Zw/NtQuerySystemInformation的未记录调用来枚举所有进程的所有句柄。具有信息类SystemHandleInformation。使用这些术语进行网络搜索会得到您想要的结果。 关于c-如何枚举内核中指定进程的所有打
我使用WindowsAPICreateProcess函数。在它的msdn手册中,我找到了Ifthefunctionsucceeds,besuretocalltheCloseHandlefunctiontoclosethehProcessandhThreadhandleswhenyouarefinishedwiththem.Otherwise,whenthechildprocessexits,thesystemcannotcleanuptheprocessstructuresforthechildprocessbecausetheparentprocessstillhasopenhand
我想访问衍生进程的TIB(我使用CreateProcessW成功创建了进程)。我通过以下方式获得了指向生成进程的TIB的指针:GetThreadContext(当然有权限设置)访问pContext.SegFs像这样格式化这个值:(ldtSel.HighWord.Bits.BaseHi(我不认为这是必要的)。格式后我剩下的值是一个10位指针。我如何使用这个变量代替fs寄存器来访问线程信息block?我访问它的常规方式通常是这样的:__asm{moveax,fs:[0x30]//PEBmovdwPebBase,eax}不过,用指针变量替换“fs”当然不行,去掉分号还有意想不到的效果。那么我
我正在创建一个“自毁”脚本,当有人试图非法访问我的文件时,它会删除我的用户文件夹。我没有管理员权限,但我有权删除我自己的用户文件夹。如果一个进程出于明显的原因访问文件,Windows不会让我删除它,所以我想尝试做的是退出以我的用户名运行的所有进程,这样我就可以放心地删除该文件夹。有没有办法用TASKKILL.exe做到这一点? 最佳答案 这应该强制终止用户MyUser的任何任务:taskkill/f/fi"USERNAMEeqMyUser"引用资料:Taskkilldocumentation