obter o nome do processo a partir de sua própria descrição?

obter o nome do processo a partir de sua própria descrição?

Como posso obter o nome do processo da memória do computador usando loop dependendo da descrição do processo?

Exemplo:

O nome do meu programa é "dev.exe" na memória e sua descrição é "uma ferramenta para ajudar desenvolvedores php"

Existe alguma maneira de encontrar o nome do meu processo usando a descrição do processo, mesmo que o usuário altere o nome?

Podemos fazer isso com autoit, cmd ou wmic?

Responder1

Encontrei este link tentando resolver o mesmo problema. Construindo a partir da resposta existente, uma linha simples que pode ser adicionada a um script existente:

 Get-Process | where {$_.Description -like '*note*'} | select Path, Description, ProcessName

Exemplo de saída:

    Path                                                         Description          ProcessName
----                                                         -----------          -----------
C:\Windows\system32\notepad.exe                              Notepad              notepad
C:\Program Files\Microsoft Office\root\Office16\ONENOTE.EXE  Microsoft OneNote    ONENOTE
C:\Program Files\Microsoft Office\root\Office16\ONENOTEM.EXE Send to OneNote Tool ONENOTEM

Responder2

Como encontro um nome de processo em execução, considerando o valor da propriedade "Descrição do arquivo"?

Solução melhorada(graças a @BenN após discussão no chat):

Use o seguinte script do PowerShell (Get-ProcessName.ps1).

$_match=$Args[0].ToLowerInvariant()
Get-Process | where {$_.Description -ne $null -and $_.Description.ToLowerInvariant().Contains($_match)} | select Path, Description, ProcessName

Notas:

  • O primeiro parâmetro passado ao script é utilizado para realizar uma pesquisa sem distinção entre maiúsculas e minúsculas dentro do valor da propriedade "Descrição do arquivo".
  • Passar "notepad" corresponderá a "notepad.exe" e "notepad++.exe" se ambos estiverem em execução.

Exemplo de saída:

PS F:\test> .\Get-ProcessName notepad

Path                                                               Description                                                        ProcessName
----                                                               -----------                                                        -----------
C:\Windows\system32\notepad.exe                                    Notepad                                                            notepad
E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe             Notepad++ : a free (GNU) source code editor                        notepad++
E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe             Notepad++ : a free (GNU) source code editor                        notepad++


PS F:\test>

Solução original:

Use o seguinte script Powershell (Get-ProcessName.ps1).

$_name=$Args[0]
$_match="*"+$Args[0]+"*"
Get-Process | ForEach {
  if ($_.Path) {
    $_filedescription=(Get-Item $_.Path).VersionInfo.FileDescription 
    if ($_filedescription -like $_match) {
      Write-Output "File Description: '$_filedescription', Process Path: '$($_.Path)', Process Name: '$($_.ProcessName)'"
      }
    }
  }

Notas:

  • O primeiro parâmetro passado ao script é usado para realizar uma pesquisa "curinga" sem distinção entre maiúsculas e minúsculas dentro do valor da propriedade "Descrição do arquivo".
  • Se você passar, stringele pesquisará usando *string*e corresponderá stringa qualquer lugar dentro da propriedade "Descrição do arquivo"
  • Passar "notepad" corresponderá a "notepad.exe" e "notepad++.exe" se ambos estiverem em execução.
  • O script gera a "Descrição do arquivo", "Caminho do processo" e "Nome do processo.

Exemplo de saída:

PS F:\test> .\Get-ProcessName notepad
File Description: 'Notepad', Process Path: 'C:\Windows\system32\notepad.exe', Process Name: 'notepad'
File Description: 'Notepad++ : a free (GNU) source code editor', Process Path: 'E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe', Process Name: 'notepad++'
File Description: 'Notepad++ : a free (GNU) source code editor', Process Path: 'E:\LiberKey\Apps\Notepad++\App\Notepad++\notepad++.exe', Process Name: 'notepad++'
PS F:\test>

Notas:

  • "notepad++.exe" possui dois processos na memória ao executar a versão portátil.

informação relacionada