Alguém poderia me dar uma ajuda e converter essa função da api do Windows para o xHarbour.
Sempre me confundo com os hb_parc... da vida.
Obrigado.
MarceloG
UINT SendInput( UINT nInputs,
LPINPUT pInputs,
int cbSize
);
Parameters
nInputs
[in] Number of structures in the pInputs array.
pInputs
[in] Pointer to an array of INPUT structures. Each structure represents an event to be inserted into the keyboard or mouse input stream.
cbSize
[in] Specifies the size, in bytes, of an INPUT structure. If cbSize is not the size of an INPUT structure, the function fails.
Função C
Moderador: Moderadores
Você só postou o protótipo da função e sua documentação. Faltou o código.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Re: Função C
A função é da API do Windows.
Quero fazer o pressionamento do botão direito do mouse.
Segundo informações obtidas pela internet a mouse_event() deve ser substituída por SendInput() para compatibilidade geral, inclusive com o Vista.
Assim, o protótipo ficaria +/- assim:
HB_FUNC(SENDINPUT)
{
SendInput(hb_par...(1),hb_par...(2),alguma coisa aqui).
}
A zebra é que não conheço os tipos dos dados e não tem documentação dos hb_par... para tentar fazer eu mesmo a função.
UINT SendInput( UINT nInputs,
LPINPUT pInputs,
int cbSize)
MarceloG
Quero fazer o pressionamento do botão direito do mouse.
Segundo informações obtidas pela internet a mouse_event() deve ser substituída por SendInput() para compatibilidade geral, inclusive com o Vista.
Assim, o protótipo ficaria +/- assim:
HB_FUNC(SENDINPUT)
{
SendInput(hb_par...(1),hb_par...(2),alguma coisa aqui).
}
A zebra é que não conheço os tipos dos dados e não tem documentação dos hb_par... para tentar fazer eu mesmo a função.
UINT SendInput( UINT nInputs,
LPINPUT pInputs,
int cbSize)
MarceloG
Água mole em pedra dura tanto bate que até espirra!
Agora entendi. Infelizmente não conheço as funções de leitura de parâmetros. Mas pelo que pude notar, me parece que essas funções seguem os mesmos padrões do Clipper quanto aos seus nomes. Então, se você ler o manual do Clipper (Technical Reference), creio que será apenas o caso de acrescentar o sufixo "hb_". Ou, se preferir, pode ver se há alguma descrição dessas funções no manual de referência do XHarbour, que há no meu site. Se nada disso der certo, uma outra opção é ler alguns fontes do XHarbour e tentar "sacar" alguma coisa de lá.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Re: Função C
Resorvi, tem base?!
MarceloG
Ps: é do jeito antigo, mas e daí?
Código: Selecionar todos
#pragma begindump
#include <shlobj.h>
#include <windows.h>
#include "hbapi.h"
HB_FUNC( PRESSKEY )
/*
Testa a tecla e pressiona
Recebe o valor da tecla
*/
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if (keyState[hb_parni(1)] == 0) // testa se a tecla est ativa
{
// Simula pressionamento
keybd_event( hb_parni(1),
0,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
keybd_event( hb_parni(1),
45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0 );
}
}
HB_FUNC( PRESSMOUSE )
/*
Simula pressionamento dos botäes do mouse
Recebe
.T. - Esquerdo
.F. - Direito
*/
{
if ( hb_parl(1) )
{
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) ;
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ;
}
else
{
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) ;
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0) ;
}
}
#pragma enddumpMarceloG
Ps: é do jeito antigo, mas e daí?
Editado pela última vez por Pablo César em 24 Mai 2012 20:02, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Água mole em pedra dura tanto bate que até espirra!
Se serviu ao propósito, maravilha.MARCELOG escreveu:Ps: é do jeito antigo, mas e daí?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
