在我的Windows XP任务管理器中,某些进程在"内存使用情况"列中显示的值高于VMSize.例如,我的Firefox实例将111544 K显示为内存使用情况,将100576 K显示为VMSize.
根据任务管理器的帮助文件,Mem Usage是进程的工作集,VMSize是虚拟地址空间中的已提交内存.
我的问题是,如果一个进程的已提交页面数是A,而同一进程的物理内存中的页数是B,那么它不应该总是B≤A吗?每个进程的物理内存中的页数不是已提交页面的子集吗?
或者这与进程之间的内存共享有关吗?请解释.(也许我对'工作集'的定义不合时宜).
谢谢.
从Windows Vista开始,现在可以从任务管理器生成进程转储.通常我通过使用Adplus或从Windbg直接生成进程转储.如果我使用其中一个选项,我必须使用我的命令提供一些开关,以描述生成了什么类型的转储.鉴于当我从任务管理器生成进程转储时隐藏了所有这些细节,是否有人知道它是什么类型的转储以及它包含的内容?我记得在任何地方读取从任务管理器生成的进程转储不包含句柄表的详细信息.有关于此的任何想法吗?
有没有办法保护我的Delphi应用程序不被Windows任务管理器(或其他像Process Explorer)杀死?
我认为Windows消息可以做到这一点(通过挂钩和拦截TerminateProcess消息).
我想要一个这种保护的例子.卡巴斯基反病毒套件就像这样; 我们无法在任务管理器中结束他们的流程.
我想使用批处理文件来比较在我的Windows 7计算机上运行的名为"standard.exe"的进程数,以及名为"basic.exe"的进程数.如果名为"standard.exe"的进程数量等于名为"basic.exe"的进程数量,则不会发生任何情况,如果数字不相等,则应重新启动basic.exe.
有任何想法吗?已经找到以下代码来检查进程是否正在运行,但现在我想计算具有相同名称的进程数.
tasklist /FI "IMAGENAME eq myapp.exe" 2>NUL | find /I /N "myapp.exe">NUL
if "%ERRORLEVEL%"=="0" echo Programm is running
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我正在编写一个透明的WinForms应用程序,我想隐藏应用程序在任务管理器的应用程序选项卡中显示.我很好,因为它会在进程中显示(事实上它应该).如果我设置:
this.ShowInTaskbar = false;
Run Code Online (Sandbox Code Playgroud)
它只隐藏在任务栏中.
完整的代码,我有一个由标签制成的计时器
public Form1()
{
InitializeComponent();
this.BackColor = Color.LimeGreen;
this.TransparencyKey = Color.LimeGreen;
Timer time = new Timer();
time.Interval = 1000;
time.Tick += new EventHandler(time_Tick);
time.Start();
this.ShowInTaskbar = false;
}
void time_Tick(object sender, EventArgs e)
{
label1_hour.Text = DateTime.Now.Hour.ToString() ;
label_minute.Text = DateTime.Now.Minute.ToString();
label_second.Text = DateTime.Now.Second.ToString();
}
Run Code Online (Sandbox Code Playgroud) 一旦我长按主页按钮,我正在寻找一种禁用任务管理器窗口的方法.我设法禁用其他设备键(如音量,菜单等)和正常点击主页按钮,因为我是默认启动器,但我不知道如何禁用任务管理器!甚至Toddler Lock儿童应用程序也会在长按后显示任务管理器屏幕,因此我认为这样做并不容易.我看到几个答案说我不应该禁用任务管理器,但是我希望从另一个键获得它而不是长按主页按钮.如果需要并将解决我的问题,我可以扎根.请帮忙.
我找到了使用Android 2.3.5的方法: Override home和back按钮是一个布尔值为true的情况 (我使用了hotveryspicy中的一段代码)但是,正如在此链接中所写,此解决方案不适用于Android 4.0.3你能帮我找到4.0.3的解决方案吗?
android taskmanager long-click long-press android-homebutton
我有一个CLI程序,我想修改Windows任务管理器中显示的说明.
我尝试在程序集信息中设置描述,但这只会更改.exe的属性>详细信息.
我有这个MFC程序,当我用任务管理器杀死它时,我的程序出现异常,然后崩溃.
我想从任务管理器获取事件,当它要杀死我的进程并优雅地关闭我的程序时.
据我所知,任务管理器使用的方法很少,以杀死进程.
1)在应用程序选项卡中,有人告诉我它正在向我的应用程序的主可见窗口发送WM_CLOSE消息,如果我的应用程序在几秒钟后没有关闭,则任务管理器将其检测为无响应并在其上使用TerminateProcess()处理.
2)在进程选项卡中,有人告诉我它正在使用TerminateProcess()windows API.
是否有任务管理器使用的其他方法?
我对最后两种方法是对的吗?
先感谢您.
应用程序线程如果被任务管理器杀死则会关闭.需要重新调用应用程序,就像它被其他应用程序或任务管理器杀死一样.任何的想法?
编辑:赏金已过期,但如果社区想将其奖励给某人,那么我选择 Raful Chizkiyahu。
我的一个 C# Winforms 程序中存在内存泄漏,我想绘制其内存使用情况随时间变化的图表,以便更好地了解可能导致泄漏的原因。问题是,没有一个常用的内存诊断命令与任务管理器声称的该进程消耗的内存相匹配。我认为这可能是由于使用不安全/非托管代码的应用程序未包含在总数中。
因此,为了尝试深入研究,我创建了一个新的 Winforms 应用程序,非常简单,只有一个计时器来实时报告内存使用情况。我用5个标签,各家有各家的功能(主要是发现从这里开始): ,Environment.WorkingSet,,和。GC.GetTotalMemory(false)GC.GetTotalMemory(true)Process.GetCurrentProcess().PrivateMemorySize64Process.GetCurrentProcess().WorkingSet64
令人惊讶的是(或者可能不是这样,叹气),我仍然无法让这五个数字中的任何一个与 Windows 10 任务管理器相匹配。这是一个屏幕截图:

所以我基本上要寻找的是 5.1MB 的数字。我如何偷偷地从 .NET 框架中提取那个隐藏的数字?
这是我在 Timer 滴答函数中的代码:
private void timer1_Tick(object sender, EventArgs e)
{
//Refresh();
label1.Text = "Environment.WorkingSet: " + Environment.WorkingSet ;
label2.Text = "GC.GetTotalMemory(false): " + GC.GetTotalMemory(false) ;
label3.Text = "GC.GetTotalMemory(true): " + GC.GetTotalMemory(true) ;
Process proc = Process.GetCurrentProcess();
label4.Text = "proc.PrivateMemorySize64: " + proc.PrivateMemorySize64 ;
label5.Text = "proc.WorkingSet64: " + proc.WorkingSet64 ;
proc.Dispose();
} …Run Code Online (Sandbox Code Playgroud) taskmanager ×10
c# ×3
android ×2
memory ×2
process ×2
windows ×2
winforms ×2
.net ×1
adplus ×1
batch-file ×1
c++ ×1
crash-dumps ×1
delphi ×1
long-click ×1
long-press ×1
memory-leaks ×1
messages ×1
mfc ×1
winapi ×1
windbg ×1
windows-7 ×1
windows-xp ×1