mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
* fixed insane memory usage on Windows XP
* added Re-analyze menu item git-svn-id: svn://svn.code.sf.net/p/processhacker/code@733 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
@@ -59,6 +59,7 @@ Process Hacker
|
||||
* Memory searching now uses KProcessHacker if possible
|
||||
* Incorrect labeling of process files which can't be read (due to permissions)
|
||||
as packed
|
||||
* Insane memory usage on Windows XP
|
||||
* Now uses the proper method of detecting .NET processes
|
||||
* System Information now runs on a separate thread
|
||||
* Disables "Show one graph per CPU" in System Information if there is only one CPU
|
||||
|
||||
@@ -136,7 +136,7 @@ namespace wyDay.Controls
|
||||
}
|
||||
else
|
||||
{
|
||||
Image drawImg = GetImage(((MenuItem)sender));
|
||||
Image drawImg = EnsurePropertiesExists((MenuItem)sender).PreVistaBitmap;
|
||||
|
||||
if (drawImg != null)
|
||||
{
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace wyDay.Controls
|
||||
{
|
||||
public Image Image;
|
||||
public IntPtr renderBmpHbitmap = IntPtr.Zero;
|
||||
public Bitmap PreVistaBitmap;
|
||||
}
|
||||
|
||||
//enum WindowsType { VistaOrLater, XP, PreXP }
|
||||
@@ -80,6 +81,8 @@ namespace wyDay.Controls
|
||||
{
|
||||
if (((Properties)de.Value).renderBmpHbitmap != IntPtr.Zero)
|
||||
DeleteObject(((Properties)de.Value).renderBmpHbitmap);
|
||||
if (((Properties)de.Value).PreVistaBitmap != null)
|
||||
((Properties)de.Value).PreVistaBitmap.Dispose();
|
||||
}
|
||||
|
||||
|
||||
@@ -170,12 +173,30 @@ namespace wyDay.Controls
|
||||
AddVistaMenuItem(mnuItem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//for every Pre-Vista Windows, add the parent of the menu item to the list of parents
|
||||
if (!DesignMode && !isVistaOrLater && formHasBeenIntialized)
|
||||
else if (!DesignMode && !isVistaOrLater)
|
||||
{
|
||||
AddPreVistaMenuItem(mnuItem);
|
||||
if (prop.PreVistaBitmap != null)
|
||||
{
|
||||
prop.PreVistaBitmap.Dispose();
|
||||
prop.PreVistaBitmap = null;
|
||||
}
|
||||
|
||||
if (value == null)
|
||||
return;
|
||||
|
||||
Bitmap bmp = new Bitmap(value.Width, value.Height);
|
||||
Graphics g = Graphics.FromImage(bmp);
|
||||
|
||||
g.DrawImage(value, 0, 0, value.Width, value.Height);
|
||||
g.Dispose();
|
||||
|
||||
prop.PreVistaBitmap = bmp;
|
||||
|
||||
//for every Pre-Vista Windows, add the parent of the menu item to the list of parents
|
||||
if (formHasBeenIntialized)
|
||||
{
|
||||
AddPreVistaMenuItem(mnuItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+27
-27
@@ -89,9 +89,7 @@
|
||||
this.verifyFileSignatureMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.windowMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.helpMenu = new System.Windows.Forms.MenuItem();
|
||||
this.debugPHMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.freeMemoryMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.menuItem6 = new System.Windows.Forms.MenuItem();
|
||||
this.logMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.helpMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.aboutMenuItem = new System.Windows.Forms.MenuItem();
|
||||
@@ -111,12 +109,12 @@
|
||||
this.listNetwork = new ProcessHacker.NetworkList();
|
||||
this.menuService = new System.Windows.Forms.ContextMenu();
|
||||
this.goToProcessServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.performAdminServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.startServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.continueServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.pauseServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.stopServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.deleteServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.performAdminServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.propertiesServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.menuItem8 = new System.Windows.Forms.MenuItem();
|
||||
this.copyServiceMenuItem = new System.Windows.Forms.MenuItem();
|
||||
@@ -139,6 +137,8 @@
|
||||
this.shutdownTrayMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.exitTrayMenuItem = new System.Windows.Forms.MenuItem();
|
||||
this.vistaMenu = new wyDay.Controls.VistaMenu(this.components);
|
||||
this.menuItem1 = new System.Windows.Forms.MenuItem();
|
||||
this.reanalyzeProcessMenuItem = new System.Windows.Forms.MenuItem();
|
||||
((System.ComponentModel.ISupportInitialize)(this.statusGeneral)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.statusCPU)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.statusMemory)).BeginInit();
|
||||
@@ -178,6 +178,7 @@
|
||||
this.propertiesProcessMenuItem,
|
||||
this.menuItem7,
|
||||
this.searchProcessMenuItem,
|
||||
this.reanalyzeProcessMenuItem,
|
||||
this.copyProcessMenuItem,
|
||||
this.selectAllProcessMenuItem});
|
||||
this.menuProcess.Popup += new System.EventHandler(this.menuProcess_Popup);
|
||||
@@ -330,12 +331,12 @@
|
||||
// copyProcessMenuItem
|
||||
//
|
||||
this.vistaMenu.SetImage(this.copyProcessMenuItem, global::ProcessHacker.Properties.Resources.page_copy);
|
||||
this.copyProcessMenuItem.Index = 13;
|
||||
this.copyProcessMenuItem.Index = 14;
|
||||
this.copyProcessMenuItem.Text = "&Copy";
|
||||
//
|
||||
// selectAllProcessMenuItem
|
||||
//
|
||||
this.selectAllProcessMenuItem.Index = 14;
|
||||
this.selectAllProcessMenuItem.Index = 15;
|
||||
this.selectAllProcessMenuItem.Text = "Select &All";
|
||||
this.selectAllProcessMenuItem.Click += new System.EventHandler(this.selectAllProcessMenuItem_Click);
|
||||
//
|
||||
@@ -565,31 +566,19 @@
|
||||
//
|
||||
this.helpMenu.Index = 4;
|
||||
this.helpMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
|
||||
this.debugPHMenuItem,
|
||||
this.menuItem6,
|
||||
this.freeMemoryMenuItem,
|
||||
this.menuItem1,
|
||||
this.logMenuItem,
|
||||
this.helpMenuItem,
|
||||
this.aboutMenuItem});
|
||||
this.helpMenu.Text = "H&elp";
|
||||
//
|
||||
// debugPHMenuItem
|
||||
//
|
||||
this.debugPHMenuItem.Index = 0;
|
||||
this.debugPHMenuItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
|
||||
this.freeMemoryMenuItem});
|
||||
this.debugPHMenuItem.Text = "Debug";
|
||||
//
|
||||
// freeMemoryMenuItem
|
||||
//
|
||||
this.freeMemoryMenuItem.Index = 0;
|
||||
this.freeMemoryMenuItem.Text = "Free Memory";
|
||||
this.freeMemoryMenuItem.Click += new System.EventHandler(this.freeMemoryMenuItem_Click);
|
||||
//
|
||||
// menuItem6
|
||||
//
|
||||
this.menuItem6.Index = 1;
|
||||
this.menuItem6.Text = "-";
|
||||
//
|
||||
// logMenuItem
|
||||
//
|
||||
this.vistaMenu.SetImage(this.logMenuItem, global::ProcessHacker.Properties.Resources.page_white_text);
|
||||
@@ -767,12 +756,6 @@
|
||||
this.goToProcessServiceMenuItem.Text = "&Go to Process";
|
||||
this.goToProcessServiceMenuItem.Click += new System.EventHandler(this.goToProcessServiceMenuItem_Click);
|
||||
//
|
||||
// performAdminServiceMenuItem
|
||||
//
|
||||
this.performAdminServiceMenuItem.Index = 6;
|
||||
this.performAdminServiceMenuItem.Text = "Perform Administrative Tasks";
|
||||
this.performAdminServiceMenuItem.Click += new System.EventHandler(this.performAdminServiceMenuItem_Click);
|
||||
//
|
||||
// startServiceMenuItem
|
||||
//
|
||||
this.vistaMenu.SetImage(this.startServiceMenuItem, global::ProcessHacker.Properties.Resources.control_play_blue);
|
||||
@@ -807,6 +790,12 @@
|
||||
this.deleteServiceMenuItem.Text = "Delete";
|
||||
this.deleteServiceMenuItem.Click += new System.EventHandler(this.deleteServiceMenuItem_Click);
|
||||
//
|
||||
// performAdminServiceMenuItem
|
||||
//
|
||||
this.performAdminServiceMenuItem.Index = 6;
|
||||
this.performAdminServiceMenuItem.Text = "Perform Administrative Tasks";
|
||||
this.performAdminServiceMenuItem.Click += new System.EventHandler(this.performAdminServiceMenuItem_Click);
|
||||
//
|
||||
// propertiesServiceMenuItem
|
||||
//
|
||||
this.propertiesServiceMenuItem.DefaultItem = true;
|
||||
@@ -945,6 +934,17 @@
|
||||
//
|
||||
this.vistaMenu.ContainerControl = this;
|
||||
//
|
||||
// menuItem1
|
||||
//
|
||||
this.menuItem1.Index = 1;
|
||||
this.menuItem1.Text = "-";
|
||||
//
|
||||
// reanalyzeProcessMenuItem
|
||||
//
|
||||
this.reanalyzeProcessMenuItem.Index = 13;
|
||||
this.reanalyzeProcessMenuItem.Text = "Re-analyze";
|
||||
this.reanalyzeProcessMenuItem.Click += new System.EventHandler(this.reanalyzeProcessMenuItem_Click);
|
||||
//
|
||||
// HackerWindow
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@@ -1082,10 +1082,10 @@
|
||||
private System.Windows.Forms.MenuItem uacSeparatorMenuItem;
|
||||
private System.Windows.Forms.MenuItem runMenuItem;
|
||||
private System.Windows.Forms.MenuItem runAsMenuItem;
|
||||
private System.Windows.Forms.MenuItem debugPHMenuItem;
|
||||
private System.Windows.Forms.MenuItem freeMemoryMenuItem;
|
||||
private System.Windows.Forms.MenuItem menuItem6;
|
||||
private System.Windows.Forms.MenuItem performAdminServiceMenuItem;
|
||||
private System.Windows.Forms.MenuItem menuItem1;
|
||||
private System.Windows.Forms.MenuItem reanalyzeProcessMenuItem;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -543,7 +543,7 @@ namespace ProcessHacker
|
||||
processItem.MenuItems.AddRange(new MenuItem[] { terminateItem, suspendItem, resumeItem, propertiesItem });
|
||||
processesMenuItem.MenuItems.Add(processItem);
|
||||
|
||||
//vistaMenu.SetImage(processItem, (treeProcesses.Tree.Model as ProcessTreeModel).Nodes[process.PID].Icon);
|
||||
vistaMenu.SetImage(processItem, (treeProcesses.Tree.Model as ProcessTreeModel).Nodes[process.PID].Icon);
|
||||
}
|
||||
}
|
||||
catch
|
||||
@@ -1059,6 +1059,16 @@ namespace ProcessHacker
|
||||
}
|
||||
}
|
||||
|
||||
private void reanalyzeProcessMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
processP.QueueFileProcessing(processSelectedPID);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
|
||||
private void selectAllProcessMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Misc.SelectAll(treeProcesses.Tree.AllNodes);
|
||||
@@ -2222,6 +2232,6 @@ namespace ProcessHacker
|
||||
this.Visible = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,6 +290,12 @@ namespace ProcessHacker
|
||||
_fpResults.Enqueue(fpResult);
|
||||
}
|
||||
|
||||
public void QueueFileProcessing(int pid)
|
||||
{
|
||||
(new ProcessFileDelegate(this.ProcessFile)).BeginInvoke(pid, this.Dictionary[pid].FileName,
|
||||
r => { }, null);
|
||||
}
|
||||
|
||||
private void UpdateOnce()
|
||||
{
|
||||
this.UpdatePerformance();
|
||||
|
||||
@@ -349,6 +349,7 @@ namespace ProcessHacker
|
||||
|
||||
result = StatusToVerifyResult(winTrustResult);
|
||||
CryptCATAdminReleaseCatalogContext(catAdmin, catInfo, 0);
|
||||
CryptCATAdminReleaseContext(catAdmin, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user