
Acabei de comprar um novo mouse SteelSeries. Estou tentando o botão 6 do programa para iniciar "SnippingTool.exe".
SnippingTool.exeparecedeve estar localizado em "C:\windows\system32\SnippingTool.exe" ou pelo menos aparece no Windows Explorer dessa forma.
No entanto, no seletor de arquivos do SteelSeries Engine 3, essa pasta não contém esse arquivo.
Além disso, o aplicativo “Everything” que indexa o sistema de arquivos NTFS mostra apenas dois arquivos SnippingTool.exe e nenhum deles está em C:\windows\system32. Em vez disso, ele parece estar localizado em "C:\Windows\WinSxS\amd64_microsoft-windows-snippingtool-app_31bf3856ad364e35_10.0.17134.1_none_7f448e86f2cd59cc\SnippingTool.exe", bem como uma subpasta de "C:\Windows\SoftwareDistribution\Download\". A pasta de distribuição de software provavelmente é para arquivos temporários, então acho que o arquivo na pasta WinSxS (Windows Side by Side) é aquele que realmente foi iniciado.
Fica ainda mais bizarro. Se eu iniciar o SnippingTool.exe no menu Iniciar ou no local do system32 e observar a localização do sistema de arquivos nos detalhes do TaskManager, ele mostrará "c:\windows\system32". Enquanto isso, se eu atribuir o botão 6 ao local WinSxS, a tentativa de iniciá-lo por meio do botão 6 se concentrará apenas na instância em execução do SnippingTool.exe, então parece que é o mesmo aplicativo. No entanto, se eu iniciá-lo com o botão 6 quando o SnippingTool estivernãojá em execução, recebo esta caixa de diálogo de erro em branco, cujo ícone é o ícone da ferramenta de recorte:
Alguém pode explicar esse comportamento bizarro ou por que esse arquivo sópareceestar localizado em "c:\windows\system32"? Com base nessas informações, onde o arquivo está realmente localizado? Achei que poderia ser um link simbólico do sistema de arquivos, mas nem o cmd.exe nem o Junction64.exe (da Microsoft) indicam que ele possui esse atributo.
O Windows parece estar tendo muitos problemas para me fazer pensar que este arquivo existe em c:\windows\system32 e não é nenhum tipo de link ou junção simbólica... ele aparece lá no Explorer na lista de diretórios cmd.exe sem quaisquer atributos especiais. No entanto, não consigo selecionar o arquivo em um seletor de arquivos, e meu aplicativo "Tudo", que ignora o Windows e analisa o sistema de arquivos NTFS, diz que não está localizado lá. Todas as evidências da localização real do arquivo parecem contradizer o que o Windows está tentando me dizer.
Solução alternativa que fornece mais informações sobre o problema
Tentei criar um aplicativo de console wrapper para iniciar o arquivo em c:\windows\system32\SnippingTool.exe, que não teve sucesso no início. Por exemplo, se eu construir um aplicativo de console C # que apenas o chame, System.Diagnostics.Process.Start("c:\\windows\\system32\\SnippingTool.exe");
será gerado um erro dizendo "O sistema não pode encontrar o arquivo especificado em System.Diagnostics.Process.StartWithShellExecuteEx". Isso reforça a ideia de que esse arquivo não está realmente localizado onde o Explorer diz que está. Colar o mesmo caminho na caixa de diálogo WindowsKey+R (executar) funciona bem. Então, de alguma forma, o Explorer, o cmd.exe e a caixa de diálogo Executar do Windows estão conspirando para agir como se esse arquivo existisse, mas qualquer tentativa de acessar diretamente o arquivo revela que ele realmente não existe.
Em vez de iniciar o arquivo diretamente, consegui iniciá-lo indiretamente sem erros, passando o caminho como argumento para explorer.exe assim:System.Diagnostics.Process.Start(new ProcessStartInfo() { UseShellExecute = false, FileName = "c:\\windows\\explorer.exe", Arguments = "c:\\windows\\system32\\SnippingTool.exe" });