Usuário com melhor resposta
MainWindowTitle

Pergunta
-
Montei o seguinte código:
private List<string> getPath(List<string> nome)
{
Process myProcess = new Process();
List<string> proc1 = new List<string>();
try
{
StreamReader arquivo = new StreamReader(@".\aplicativos_gerind.txt");
string linha;
while ((linha = arquivo.ReadLine()) != null)
{
string[] stringSeparator = new string[] { "::" };
string[] campo = linha.Split(stringSeparator, StringSplitOptions.RemoveEmptyEntries);
if (campo.Length > 1)
{
foreach (string n in nome)
{
if (campo.Length == 3)
{
if (campo[0] == n && campo[1] == myProcess.MainWindowTitle)
{
proc1.Add(campo[2]);
}
}
else
{
if (campo[0] == n)
{
proc1.Add(campo[1]);
}
A minha duvida esta na linha em destaque vermelho, como passo para o MainWindowTitle que a descrição que eu quero pegar é da string n
Respostas
-
Agradeço a colaboração de todos.
Tive que mudar alguns itens no código para conseguir a informação do cabeçalho da pagina através do MainWindowTitle ai funcionou perfeitamente.
Att,
- Marcado como Resposta Fernanda Moreti sexta-feira, 21 de agosto de 2015 14:59
Todas as Respostas
-
Boas,
Então, como cada view é uma classe, ela deve possuir um construtor certo?
Na hora de instanciar o objeto, você passa a informação desejada e pega no construtor da classe.
Atenciosamente, Roberto Alves
- Editado Roberto AB Filho quarta-feira, 19 de agosto de 2015 19:55
- Marcado como Resposta Marcos SJ quarta-feira, 19 de agosto de 2015 20:04
- Não Marcado como Resposta Fernanda Moreti quarta-feira, 19 de agosto de 2015 20:20
-
-
-
Olá Guilherme,
A linha vermelha tem como objeto comparar se o nome de uma aplicação + o cabeçalho da aplicação estão sendo executados em uma maquina.
E o que eu não estou conseguindo é pegar o cabeçalho da string n (que seria o nome da aplicação).
Exemplo:
string n = notepad. Então eu preciso pegar o cabeçalho do notepad para ver qual notepad parou de rodar e mandar ativar novamente.
Do jeito que o código esta quando rodo da a seguinte mensagem de erro:
"Nenhum processo associado a este objeto."
-
Okay Fernanda, entendi. Acho que a melhor maneira de se fazer isso é utilizando a API do Windows FindWindow.
Com ela, você obtem a handle de uma janela com o título informado.Primeiro, declare a assinatura do método:
[DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
Note que você vai precisar importar o namespace System.Runtime.InteropServices (para fazer uso do atributo DllImport.
Para usá-lo, pasta passar o nome da classe e o título da janela. Se não souber o nome da classe, basta passá-lo como null.
if (FindWindow(null, "Bloco de Notas") == IntPtr.Zero) { //processo fechado } else { //processo aberto }
-
Agradeço a colaboração de todos.
Tive que mudar alguns itens no código para conseguir a informação do cabeçalho da pagina através do MainWindowTitle ai funcionou perfeitamente.
Att,
- Marcado como Resposta Fernanda Moreti sexta-feira, 21 de agosto de 2015 14:59