{"id":403,"date":"2026-03-07T00:10:05","date_gmt":"2026-03-07T00:10:05","guid":{"rendered":"https:\/\/hackcuba.net\/?p=403"},"modified":"2026-03-07T00:10:05","modified_gmt":"2026-03-07T00:10:05","slug":"processinfo","status":"publish","type":"post","link":"https:\/\/hackcuba.net\/?p=403","title":{"rendered":"ProcessInfo"},"content":{"rendered":"\n<p>Esta es una alternativa casera a los programas profesionales que permiten manejar y visualizar los procesos activos en el sistema operativo Microsoft Windows XP. N\u00f3tese que se puede mejorar este sencillo programa a\u00f1adi\u00e9ndole m\u00e1s informaci\u00f3n en el <code>namespace<\/code> <code>System.Diagnostics<\/code> y poniendo un <em>timer<\/em> que permita actualizar los valores de memoria usada y otras informaciones. El programa compilado se encuentra en el directorio <em>_tools<\/em> de la edici\u00f3n actual. Puede descargarlo aqui <\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-21f65e3f-2da1-4ea7-93de-1e51901bb10d\" href=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/03\/gProcessInfo.zip\">gProcessInfo<\/a><a href=\"https:\/\/hackcuba.net\/wp-content\/uploads\/2026\/03\/gProcessInfo.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-21f65e3f-2da1-4ea7-93de-1e51901bb10d\">Descarga<\/a><\/div>\n\n\n\n<!--more-->\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\n using System;\nusing System.Collections.Generic;\nusing System.ComponentModel;\nusing System.Data;\nusing System.Drawing;\nusing System.Text;\nusing System.Windows.Forms;\nusing System.Diagnostics;\n\nnamespace Procesos\n{\n  public partial class Form1 : Form\n  {\n  \/\/\/ &lt;summary&gt;\n  \/\/\/ Variable global para almacenar los procesos activos del sistema\n  \/\/\/ &lt;\/summary&gt;\n  Process&#x5B;] allProcess;\n\n  \/\/\/ &lt;summary&gt;\n  \/\/\/ Constructor\n  \/\/\/ &lt;\/summary&gt;\n  public Form1()\n  {\n  InitializeComponent();\n  }\n\n  \/\/\/ &lt;summary&gt;\n  \/\/\/ M\u00e9todo encargado de guardar los procesos en el array y de actualizar el comboBox\n  \/\/\/ &lt;\/summary&gt;\n  private void GetAllProcess()\n  {\n  \/\/--&gt; Obtiene el listado de procesos\n  allProcess = Process.GetProcesses();\n  \/\/--&gt; Pone en el comboBox el primer proceso de la lista por defecto\n  containProcess.Text = allProcess&#x5B;0].ProcessName;\n  \/\/--&gt; Comienza a actualizar el ComboBox\n  containProcess.BeginUpdate();\n  for (int i = 0; i &lt; allProcess.Length; i++)\n  {\n  containProcess.Items.Add(allProcess&#x5B;i].ProcessName);\n  }\n  containProcess.EndUpdate();\n  \/\/--&gt; Esta l\u00ednea provoca caer en el evento &quot;SelectedIndexChanged&quot;\n  containProcess.SelectedIndex = 0;\n  }\n\n  private void containProcess_SelectedIndexChanged(object sender, EventArgs e)\n  {\n  \/\/--&gt; Utilizo un try porque hay procesos que no me permiten acceder a ellos\n  try\n  {\n  int index = containProcess.SelectedIndex;\n  label15.Text = &quot;El Handle nativo asociado al proceso:&quot;;\n  label1.Text = allProcess&#x5B;index].Handle.ToString();\n  label16.Text = &quot;El n\u00famero de Handles abiertos por el proceso:&quot;;\n  label2.Text = allProcess&#x5B;index].HandleCount.ToString();\n  label17.Text = &quot;Si el proceso no responde:&quot;;\n  label3.Text = allProcess&#x5B;index].HasExited.ToString();\n  label18.Text = &quot;El identificador \u00fanico para el proceso:&quot;;\n  label4.Text = allProcess&#x5B;index].Id.ToString();\n  label19.Text = &quot;Direcci\u00f3n de memoria donde el m\u00f3dulo fue cargado:&quot;;\n  label5.Text = allProcess&#x5B;index].MainModule.BaseAddress.ToString();\n  label20.Text = &quot;Direcci\u00f3n completa del m\u00f3dulo:&quot;;\n  label6.Text = allProcess&#x5B;index].MainModule.FileName.ToString();\n  label21.Text = &quot;Informaci\u00f3n de la versi\u00f3n del m\u00f3dulo:&quot;;\n  label7.Text = allProcess&#x5B;index].MainModule.FileVersionInfo.ToString();\n  label22.Text = &quot;Handle de la ventana principal del proceso:&quot;;\n  label8.Text = allProcess&#x5B;index].MainWindowHandle.ToString();\n  label23.Text = &quot;T\u00edtulo de la ventana principal del proceso:&quot;;\n  label9.Text = allProcess&#x5B;index].MainWindowTitle.ToString();\n  label24.Text = &quot;Tama\u00f1o del paginado de memoria:&quot;;\n  label10.Text = allProcess&#x5B;index].PagedMemorySize.ToString();\n  label25.Text = &quot;Tama\u00f1o del paginado de memoria del sistema:&quot;;\n  label11.Text = allProcess&#x5B;index].PagedSystemMemorySize.ToString();\n  label26.Text = &quot;Nombre del proceso:&quot;;\n  label12.Text = allProcess&#x5B;index].ProcessName;\n  label27.Text = &quot;La hora en que el proceso fue abierto:&quot;;\n  label13.Text = allProcess&#x5B;index].StartTime.ToString();\n  label28.Text = &quot;Memoria virtual del proceso:&quot;;\n  label14.Text = allProcess&#x5B;index].VirtualMemorySize.ToString();\n  }\n  \/\/--&gt; En el catch vac\u00edo los datos del proceso que no pude acceder\n   catch\n  {\n  MessageBox.Show(&quot;En algunos procesos como este tengo problemas para extraer la informaci\u00f3n&quot;, &quot;Informaci\u00f3n&quot;);\n  label15.Text = &quot;El Handle nativo asociado al proceso:&quot;;\n  label1.Text = &quot;&quot;;\n  label16.Text = &quot;El n\u00famero de Handles abiertos por el proceso:&quot;;\n  label2.Text = &quot;&quot;;\n  label17.Text = &quot;Si el proceso no responde:&quot;;\n  label3.Text = &quot;&quot;;\n  label18.Text = &quot;El identificador \u00fanico para el proceso:&quot;;\n  label4.Text = &quot;&quot;;\n  label19.Text = &quot;Direcci\u00f3n de memoria donde el m\u00f3dulo fue cargado:&quot;;\n  label5.Text = &quot;&quot;;\n  label20.Text = &quot;Direcci\u00f3n completa del m\u00f3dulo:&quot;;\n  label6.Text = &quot;&quot;;\n  label21.Text = &quot;Informaci\u00f3n de la versi\u00f3n del m\u00f3dulo:&quot;;\n  label7.Text = &quot;&quot;;\n  label22.Text = &quot;Handle de la ventana principal del proceso:&quot;;\n  label8.Text = &quot;&quot;;\n  label23.Text = &quot;T\u00edtulo de la ventana principal del proceso:&quot;;\n  label9.Text = &quot;&quot;;\n  label24.Text = &quot;Tama\u00f1o del paginado de memoria:&quot;;\n  label10.Text = &quot;&quot;;\n  label25.Text = &quot;Tama\u00f1o del paginado de memoria del sistema:&quot;;\n  label11.Text = &quot;&quot;;\n  label26.Text = &quot;Nombre del proceso:&quot;;\n  label12.Text = &quot;&quot;;\n  label27.Text = &quot;La hora en que el proceso fue abierto:&quot;;\n  label13.Text = &quot;&quot;;\n  label28.Text = &quot;Memoria virtual del proceso:&quot;;\n  label14.Text = &quot;&quot;;\n  }\n  }\n\n  \/\/--&gt; En el Load de la ventana llamo al m\u00e9todo que se encarga de recoger los procesos activos\n  private void Form1_Load(object sender, EventArgs e)\n  {\n  GetAllProcess();\n  }\n\n  private void exitToolStripMenuItem_Click(object sender, EventArgs e)\n  {\n  this.Close();\n  }\n\n  private void aboutToolStripMenuItem_Click(object sender, EventArgs e)\n  {\n  About about = new About();\n  about.ShowDialog();\n  }\n\n  }\n}\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Esta es una alternativa casera a los programas profesionales que permiten manejar y visualizar los procesos activos en<\/p>\n","protected":false},"author":2,"featured_media":261,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59,18,36],"tags":[102,88,58,38],"class_list":["post-403","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigos","category-programacion","category-proyecto-blackhat","tag-c-2","tag-codigos","tag-programacion","tag-proyecto-blackhat"],"_links":{"self":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/403","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=403"}],"version-history":[{"count":1,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/403\/revisions"}],"predecessor-version":[{"id":405,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/posts\/403\/revisions\/405"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=\/wp\/v2\/media\/261"}],"wp:attachment":[{"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hackcuba.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}