Wapi.exe -window2top

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Meu caro,
Será que vc me ajudaria a resolver outro problema semelhante, também usando a Wapi?
Queria usar a opção -windows2top da Wapi, para que a janela do programa obtenha o foco do Windows.
Fiz assim no programa:

Código: Selecionar todos

!\tarefas\wapi.exe -getmyhandle:\myhand.txt
Cnrhand=alltrim(memoread("\myhand.txt"))
roda="tarefas\wapi.exe -window2top;"+Cnrhand
run(roda)
Será que estou fazendo algo errado? Por que não está funcionando?
Nota de Moderação:
por Pablo César: Evite postar mensagens exclusiva para um determinado participante do fórum, tipo: Esta é para Caetano... Gilberto me ajude... Roberto Socorro... etc. O Fórum é feito por todos, e não por apenas um participante. Atendendo o item 12 da Regra Geral do Fórum
Editado pela última vez por Pablo César em 12 Nov 2011 10:15, em um total de 3 vezes.
Razão: O presente tópico foi movido da seção xHarbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o [x]Harbour.
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

Você cometeu dois erros na composição da variável cRoda, pois o falta a barra invertida diante do nome da pasta tarefas e o outro erro está no ";" (ponto e vírgula) após -window2top.Segundo a sintaxe correta do WAPI era para ser ":" (dois pontos). Corrija e vai funcionar.

Obs. de moderador: Eu devidí o seu tópico, pois esta ultima mensagem sua apesar de tratar-se da utilização do WAPI você entitulou como "programa em xHarbour chamado via Agendador de Tarefas" o que caracteriza desvio de assunto. Também peço gentilmente que sempre os seu código exemplo coloque entre tag [ code ] Veja como utilizar esta tag: https://pctoledo.org/forum/faq.ph ... bcode#f2r1
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Peço desculpas por ter colocado no tópico errado; eu quis aproveitar que o assunto era o mesmo que já estava rolando naquele tópico.

Também peço desculpas por não ter colocado a TAG. Não sabia como fazer isto. Li o link, vamos ver se agora vou acertar.

Realmente estava errado, bobeira minha. Corrigi, mas ainda assim não funcionou. Minha função está assim. Será que estou ainda fazendo algo errado?

Código: Selecionar todos

echo "!\tarefas\wapi.exe -getmyhandle:\myhand.txt";

Código: Selecionar todos

echo "Cnrhand=alltrim(memoread("\myhand.txt"))";

Código: Selecionar todos

echo "Croda="\tarefas\wapi.exe -window2top:"+Cnrhand";

Código: Selecionar todos

echo "run(Croda)";
Será que ainda tem alguma coisa errado?
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

Não entendí o que você postou como código... Você deve selecionar com o mouse englobando o código todo, para fazer apenas uma vez o tag [ CODE ]. Não linha a linha, como você fez. De todas formas copie e cole, é assim que devia ficar:

Código: Selecionar todos

run ("\tarefas\wapi.exe -getmyhandle:\myhand.txt"
Cnrhand=alltrim(memoread("\myhand.txt"))
run ("\tarefas\wapi.exe -window2top:"+Cnrhand)
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Sim, depois que eu enviei a resposta, vi que tinha feito errado.

Mas realmente o código fica exatamente do jeito que vc colocou.
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

depois que eu enviei a resposta, vi que tinha feito errado
Só para esclarecer, você pode re-editar a sua própria mensagem até o momento que alguém responda. Isto é, se a sua mensagem for a ultima do tópico, você ainda poderá re-editá-la.
Mas realmente o código fica exatamente do jeito que vc colocou
Isso quer dizer que funcionou ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Desculpe, não sabia que era possível editar a resposta depois.

Não, não funcionou. O código está exatamente como vc colocou, mas não está funcionando.

Será que ainda tem algo errado?
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

Desculpe colega, você tem razão. O código que passei, não funciona mesmo, como eu não testei pensei que funcionaria. O problema foi quando mandei você fazer: run ("\tarefas\wapi.exe -getmyhandle:\myhand.txt" isto não funciona assim. Ao invés disso, deve ser criado uma variável já contendo toda a sequência a ser executada, aqui é o cRoda, veja como ficou:

Código: Selecionar todos

cRoda:="\tarefas\wapi.exe -getmyhandle:\myhand.txt"
run (cRoda)
Cnrhand=alltrim(memoread("\myhand.txt"))
cRoda:="\tarefas\wapi.exe -window2top:"+Cnrhand
run (cRoda)
Isto sim funciona. De todas formas você tem que disponibilizar o WAPI.EXE na pasta tarefas como você indicou no código ou então disponibilize na pasta corrente onde estará o seu programa.

Em anexo tem dois exemplos, uma utilizando o WAPI.EXE com apenas o RUN e chamando um aplicativo Windows e o outro exemplo é utilizando a WAPI.LIB, isto é compilando a lib junto com seu código. Mas atenção, você vai precisar da WAPI.LIB que está no pacote zipado e terá que compilar com a CT.LIB. No entanto o autor (o colega Maligno instrui) que o WAPI.EXE tem que estar no diretório corrente também, senão não funciona. Pois a WAPI.LIB precisa do WAPI.EXE pois é uma engenioca do autor e não uma LIB propriamente pura.
Anexos
TESTE54.rar
(68.02 KiB) Baixado 250 vezes
TESTE14.rar
(267.48 KiB) Baixado 247 vezes
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Meu caro,

Desculpe, mas infelizmente ainda não funcionou.

Não sei se estou pretendendo algo que a Wapi não faz, mas a minha ideia desta função é que ela traria a janela do meu programa pra frente na tela, só que não é isso que está acontecendo, nem mesmo com a tua função.

Nesta tua função, vc manda abrir o notepad e depois chamar a tua função pra frente de novo, mas ela não está chamando.

Será que eu me enganei? Aqui não está dando certo. Será que eu fiz algo errado?
Inacio de Carvalho Neto
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Aliás, uma ressalva: testando melhor a tua função, notei que, se eu minimizo o teu aplicativo, ele o restaura, funcionando exatamente como eu queria.

Mas se não minimizar, ele não traz de volta a tela do programa, apenas pisca.

E a questão é que o meu programa não estará minimizado. Eu precisaria que ele viesse à frente mesmo não estando minimizado.

Outra questão: tentei compilar a tua função TESTE14 dentro do meu programa, usando o xbuild do xHarbour, mas não consegui. Ele não reconhece as funções getmyhandle() e windows2top(). Será que não dá pra compilar ela no xHarbour? Ou falta algum arquivo? Ou eu fiz algo errado?
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

Aliás, uma ressalva: testando melhor a tua função, notei que, se eu minimizo o teu aplicativo, ele o restaura, funcionando exatamente como eu queria.
Mas claro, no meu exemplo peço pra você minimizar.
Outra questão: tentei compilar a tua função TESTE14 dentro do meu programa, usando o xbuild do xHarbour, mas não consegui. Ele não reconhece as funções getmyhandle() e windows2top(). Será que não dá pra compilar ela no xHarbour? Ou falta algum arquivo? Ou eu fiz algo errado?
Vamos esclarecer um ponto muito importante: o aplicativo WAPI.LIB são exclusivas para CLIPPER não para Harbour nem xHarbour.
Mas se não minimizar, ele não traz de volta a tela do programa, apenas pisca.
Pois é... por isso mandava minimizar. Mas tenho um truque (por não dizer mais um quebra galho... rsrs). Compilei um aplicativo em Harbour que simula o pressionamento das teclas Win_Key + D o que faz que as seções todas sejam minimizadas. Então a sugestão é chamar esse aplicativo chamado MINIMIZE.EXE uma linha antes de utilizar o WINDOW2TOP. Daí vai funcionar.
Será que não dá pra compilar ela no xHarbour?
Eu não trabalho com xHarbour. Mas você deveria tentar uma solução com [x]Harbour mesmo,assim não precisaria ficar utilizando aplicativos externos. Só que você não explicou direito qual é a situação. Isto é, como a sua janela fica escondida ? Com qual janela fica escondida ? Você de dentro da sua aplicação chamou outro programa ? Tem como alternar através de uma arquivo batch. Pode explicar melhor a sua situação ? Explicando quais são os programas que você chama e cómo ?
Anexos
Minimize.rar
(373.47 KiB) Baixado 248 vezes
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Desculpe se não fui claro. Vou tentar ser mais claro: minha função não inicia nenhuma outra janela, nem chama outro aplicativo. Mas imagine que o usuário está usando meu programa, mas ao mesmo tempo usando o computador para outras coisas. Ele pode, por exemplo, estar editando um arquivo do Word. A janela do meu programa estará escondida atrás da janela do Word, mas ela não foi minimizada. O que eu quero é que, em determimado momento, a janela do meu programa se sobreponha à janela do programa que o usuário estiver usando no momento (no exemplo dado, a janela do Word), passando a ser a principal. Me entende?

Testei sua função Minimize e funcionou perfeitamente. O problema é que eu realmente precisaria fazê-la funcionar dentro do meu programa que está compilado em Xharbour. Vc (ou alguém) saberia me informar se tem algum jeito de fazer isso diretamente no xharbour, sem usar a Wapi?
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

imagine que o usuário está usando meu programa, mas ao mesmo tempo usando o computador para outras coisas
Bom o Windows é um sistema operacional multitarefas, portanto tentar evitar o acesso de outro programas enquanto o seu sistema estiver sendo executado, vai ser uma coisa extremamente dificil e muito mais ainda em modo console. Mas como nem tudo está perdido, tenho algo pra te mostrar, só que em modo GUI e foi feito em Harbour/MiniGui, não que não possa ser adaptado para hwGUI ou outra ferramenta GUI.
Anexos
Sempre_Visível.rar
(579.21 KiB) Baixado 331 vezes
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Wapi.exe -window2top

Mensagem por cjp »

Interessante tua função, meu caro, mas não é esta a hipótese que eu preciso.

Não tenho como evitar que o usuário use outros programas enquanto o meu está sendo rodado, e nem é o caso de evitar, pois será necessário usar.

Será que não tem jeito de fazer a janela do programa ser trazida pra frente? Outros programas do Windows fazem isso.
Inacio de Carvalho Neto
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Wapi.exe -window2top

Mensagem por Pablo César »

... de fazer a janela do programa ser trazida pra frente? Outros programas do Windows fazem isso.
Quais ? (Dê exemplos, nomes... que eu irei testar.)
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder