Ir ao conteúdo
  • Cadastre-se
Adriano94

Findwindow com variavel

Posts recomendados

Estou criando um sistema que verifica se uma determinada janela do windows esta aberto de acordo com o nome.

 

porém a função FindWindow não reconhece a variavel char.

 

http://pastebin.com/SSW485XF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sabia muito sobre isso, porém dei uma pesquisada, e encontrei uma solução, perceba que só funciona com o titulo dos programas e não sua marca, no seu codigo voce usava 'printf()' mas não havia declarado #include <stdio.h>:


#include <stdio.h>
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
    HWND janela;

    char wlist[][100] = { "Calculadora", "Bibliotecas", "Gerenciador de Tarefas do Windows"};
    int cnt = sizeof(wlist) / sizeof(*wlist);

    for (int i = 0; i < cnt; i++){
        //Obter status da janela
        janela = FindWindow(0,wlist[i]);

        //Mensagem
        if (!janela) cout << wlist[i] << " esta fechado\n" << endl;
        else cout << wlist[i] << " esta aberto!\n" << endl;

    }

    getchar();
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, 1freakday disse:

Não sabia muito sobre isso, porém dei uma pesquisada, e encontrei uma solução, perceba que só funciona com o titulo dos programas e não sua marca, no seu codigo voce usava 'printf()' mas não havia declarado #include <stdio.h>:



#include <stdio.h>
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
    HWND janela;

    char wlist[][100] = { "Calculadora", "Bibliotecas", "Gerenciador de Tarefas do Windows"};
    int cnt = sizeof(wlist) / sizeof(*wlist);

    for (int i = 0; i < cnt; i++){
        //Obter status da janela
        janela = FindWindow(0,wlist[i]);

        //Mensagem
        if (!janela) cout << wlist[i] << " esta fechado\n" << endl;
        else cout << wlist[i] << " esta aberto!\n" << endl;

    }

    getchar();
    return 0;
}

 

 

você testou esse codigo ?

 

Sei que sua intenção foi boa mas o printf não é dependente do stdio.h

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei sim, pois depende da IDE que eu uso, quando não havia stdio.h não funcionou printf, creio que se você possui uma IDE flexível ela ira auto-incrementar para você, então, na parte onde tem os títulos Calculadora, etc, e só você adicionar o titulo de um programa, onde fica no topo, e vai dizer se esta aberta ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, 1freakday disse:

Testei sim, pois depende da IDE que eu uso, quando não havia stdio.h não funcionou printf, creio que se você possui uma IDE flexível ela ira auto-incrementar para você, então, na parte onde tem os títulos Calculadora, etc, e só você adicionar o titulo de um programa, onde fica no topo, e vai dizer se esta aberta ou não.

 

Qual compilador você usa ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mingw32 gnu gcc , mas o problema não é que não funciona o printf, ele apenas da um alerta de que não é correto ou compatível, quando é usado o printf sem a include da biblioteca de entrada/saida stdio.h, porém ele compila do mesmo modo.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 minutos atrás, 1freakday disse:

Mingw32 gnu gcc , mas o problema não é que não funciona o printf, ele apenas da um alerta de que não é correto ou compatível, quando é usado o printf sem a include da biblioteca de entrada/saida stdio.h, porém ele compila do mesmo modo.

 

 

A questão é esse erro

 

Capturar.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque FindWindowW() por FindWindow()

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou utilizar o código que enviei?

Imagem em anexo do seu código funcionando.

img.png

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta identico, a unica diferença é o compilador

 

Capturar.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu pesquisei o comando FindWindow pode estar se referenciendo a FindWindowW que no caso utiliza Unicode, tenta trocar por FindWindowA que usa ANSI. Exemplo: FindWindowA(NULL, wlist);

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 horas atrás, 1freakday disse:

Pelo que eu pesquisei o comando FindWindow pode estar se referenciendo a FindWindowW que no caso utiliza Unicode, tenta trocar por FindWindowA que usa ANSI. Exemplo: FindWindowA(NULL, wlist);

 

Perfeito Freak, muito obrigado pela sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites
31 minutos atrás, 1freakday disse:

De nada, ate mais!

 

Freak pode me ajudar em outra questão ?

 

Eu crei um banco de Dados MySQL e fiz a conexão com um AplicationConsole mas tenho duvidas em relação a consulta no sql através do meu programa. Acha que pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!