草庐IT

多进程架构

全部标签

Windows:如何在新的命令窗口中运行某些东西,以便在进程完成或崩溃时窗口关闭?

我有一个脚本应该放在那里,愉快地在命令窗口中运行,输出数据...但我希望该窗口在脚本完成或崩溃时自动关闭。该脚本由其他进程自动重启,我不希望我的处理机器被未使用的终端污染。在紧要关头,我考虑过将脚本设置为Windows服务,将它们的输出转储到一个文件中,并且只使用命令windows“tail-f”输出文件,但我不想对一个已经运行良好的系统。 最佳答案 当您启动一个命令行程序时,这是通常的行为。只要进程正在运行,控制台就会一直停留在那里,一旦进程终止(自然或意外),控制台窗口就会关闭。这也适用于脚本、批处理文件等。如果您使用批处理文件

Windows和系统进程

注意:我已经在super用户上以类似的格式问过这个问题,但它似乎更适合这里。它当然也与编程有关,因为它涉及Win32API的一部分、一般的Windows和进程管理。所以有些进程不能用taskkill终止-一般是系统进程。但也有,例如我的反病毒程序,它使自己“无法终止”。如何在windows下访问和主要终止系统进程?(Microsoft的kill.exe不起作用)防病毒程序等进程如何保护自己?那你怎么能把它们关掉呢? 最佳答案 您将需要APIHook来防止您的进程终止。APIHook并不容易,因为它需要系统范围的dll注入(injec

windows - 如何在 win32 进程中显示 'memory used' 的百分比?

我知道内存使用在Windows上是一个非常复杂的问题。我正在尝试为一个大型应用程序编写一个UI控件,该控件显示“已用内存百分比”数字,以便向用户表明可能是时候清理一些内存了,或者更有可能重新启动应用。一个实现使用MEMORYSTATUSEX的ullAvailVirtual作为基础,然后使用HeapWalk()遍历进程堆以寻找额外的空闲内存。HeapWalk()步骤是必需的,因为我们注意到在运行一段时间后,由堆分配和释放的内存从未返回并由ullAvailVirtual数字报告。经过数小时的密集工作,ullAvailVirtual数字不再准确报告可用内存量。然而,这种方法被证明并不理想,因

c# - 在 .Net 下为低完整性进程添加写访问权限

我正在为文件创建创建一个FileSecurity,它应该对低完整性进程也有写访问权限。FileSecurityfileAcl=newFileSecurity();//addeveryoneIdentityReferencesid=newSecurityIdentifier(WellKnownSidType.WorldSid,null);FileSystemAccessRulerule=newFileSystemAccessRule(sid,FileSystemRights.FullControl,AccessControlType.Allow);fileAcl.AddAccessRul

c++ - 如何获取进程的最后事件日期?

我有一项任务是在C++中使用COMInProcServer打印进程的最后事件日期。我尝试使用getProcessTimes()函数执行此操作,但这给了我一个访问冲突错误。首先,我想知道是否有任何其他命令给出进程的最后事件日期..其次下面代码有什么问题FILETIMEftCreation,ftKernel,ftUser;GetProcessTimes(hProcess,&ftCreation,&ftExit,&ftKernel,&ftUser);`我尝试了memsetting和其他几种替代方法,但没有任何效果...... 最佳答案 这

windows - 如何使用 JScript 获取进程的主窗口句柄?

JScript中有没有通过提供进程名称来获取进程主窗口句柄的方法?Process.MainWindowHandle属性仅适用于JScript.NET。经典JScript中有类似的东西吗? 最佳答案 我不确定这是否有效,只是尝试循环window.parent直到它未定义。有点像-varmainWindow=window;while(mainWindow.parent){mainWindow=mainWindow.parent;}你也有类似window.top的东西,它总是返回最顶层的窗口。但不确定是否所有浏览器都支持。

windows - 如何从在另一个 cmd 窗口 (windows) 中运行的进程返回错误代码

我正在从cmd提示符运行脚本。此脚本打开另一个cmd提示符并在那里运行另一个批处理文件。我想等待错误代码,然后将其发送回原来的cmd窗口。有没有一种不用将错误代码写入文件就可以做到这一点的好方法?谢谢,李 最佳答案 如果我没理解错的话,你想要thissolution.它解决了从在单独的cmdsession中运行的脚本向调用脚本返回错误级别的问题。 关于windows-如何从在另一个cmd窗口(windows)中运行的进程返回错误代码,我们在StackOverflow上找到一个类似的问题:

c - 通过 Hook 调用在 Windows 进程中加速或静音音频播放

我有一个应用程序,我没有播放音频的源代码,但缺乏加速或暂时静音音频播放的工具。我正在尝试通过注入(inject)一个dll并HookwaveOutOpen、waveOutWrite(并分别阻止播放或尝试waveOutSetPlaybackRate以实现静音和加速)来添加这两个功能。但是我有几个问题。让我们先谈谈“静音”按钮,因为这是我的第一项业务:我将函数的Hook版本称为MyWaveOut...1)我可以毫无问题地挂接这些函数,并且我看到它们在dbgView日志语句中被调用。我的第一次尝试是只拦截waveOutWrite函数调用,如果我的“静音”按钮被按下,则只在MyWaveOutW

c - 监视(Windows)C 中特定进程的 CPU 和内存消耗?

我想在windows(ntarchitecture-xp,vista,win7)中监控给定进程的cpu和内存消耗,每隔几秒制作一个图表我四处搜索但只找到非C解决方案(java、c#、c++等)我知道有一个PerformanceCounter类,但显然它在c中不可用。谢谢 最佳答案 Win32性能计数器:http://msdn.microsoft.com/en-us/library/aa373083%28v=vs.85%29.aspxDeveloperAudience:PerformanceCountersisdesignedforu

windows - 我们可以 rebase kernel32.dll 吗?这样两个进程的加载地址是不同的

具体来说,我想知道同一session中的两个进程的kernel32.dll加载地址是否可以不同?我想使用createremote线程,所以只想知道在任何情况下,远程进程中的kernel32加载地址是否可以不同于注入(inject)进程? 最佳答案 Kernel32.dll在所有进程上具有相同的基址,以允许您执行您想要执行的操作。阅读:WhyarecertainDLLsrequiredtobeatthesamebaseaddresssystem-wide? 关于windows-我们可以re