Jump to content

[Resolvido] MousePosition


JakeBass
 Share

Recommended Posts

Obrigado, o que me faltava era mesmo o ToString.

Agora estou a ter algum sucesso com o Control.MousePosition, mas infelizmente não estou a receber input quando o cursor está fora da aplicação. Como posso aceder ao input do cursor em geral no sistema operativo?

é para um projeto artistico de desenho com o rato.

Edited by sketxz
Link to comment
Share on other sites

Boa tarde,

Tendo em conta que estejas a usar Windows, creio que o seguinte deverá funcionar.

// Estrutura para representar um Ponto(x,y).
[structLayout(LayoutKind.Sequential)]
public struct POINT
{
   public int X;
   public int Y;
   public static implicit operator Point(POINT point)
   {
    return new Point(point.X, point.Y);
   }
}
// Devolve as coordenadas da posição do cursor no ecrã
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out POINT lpPoint);
public static Point GetCursorPosition()
{
   POINT lpPoint;
   GetCursorPos(out lpPoint);
   return lpPoint;
}

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Boa tarde,

Tendo em conta que estejas a usar Windows, creio que o seguinte deverá funcionar.

// Estrutura para representar um Ponto(x,y).
[structLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
public static implicit operator Point(POINT point)
{
	return new Point(point.X, point.Y);
}
}
// Devolve as coordenadas da posição do cursor no ecrã
[DllImport("user32.dll")]
public static extern bool GetCursorPos(out POINT lpPoint);
public static Point GetCursorPosition()
{
POINT lpPoint;
GetCursorPos(out lpPoint);
return lpPoint;
}

Cordiais cumprimentos,

Apocsantos

Podias dar a referência de onde copias-te isso... http://stackoverflow.com/a/5577528/2990244

Cursor.Position funciona para mim, quer teja no form quer não teja... antes de usares p/invoke (OP) á toa deves procurar uma solução em .net, porque provavelmente existe.

Se não estas a receber "input" poderias explicar melhor... que eu recebo input quer esteja minimizado ou fora de focus...

Edit: 7rno9m0.png

Edited by He B Te My
Link to comment
Share on other sites

Bom dia,

Já tinha implementado da forma que coloquei aqui faz tempo e não mantenho "bases de dados de código", para poder citar constantemente, apenas porque sim. Quando uso algo que funcione, guardo em ficheiros txt com uma breve descrição. E muito sinceramente, creio que a primeira vez que vi a solução, ligeiramente diferente, foi no Codeproject.

Não percebo o objetivo do teu comentário, nem o comentário em si. Mas não vou entrar em conversas improdutivas.

Que eu conheça, volto a repetir, que eu conheça, para se obter a posição do mouse em qualquer app, no Windows só mesmo utilizando api's do próprio Windows. Por isso mesmo essa solução para mim até ao momento funciona. É parecida com o que se fazia, por exemplo em Delphi 7.

Vi a imagem que publicaste e até vou tentar em Windows XP, com .net 2.1 e ver se funciona. Só mesmo por curiosidade.

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Link to comment
Share on other sites

Desculpa lá se foi o caso, mas é que o código é basicamente igual só muda os comentários para português... essa API faz o mesmo que Cursor.Position, o comentário foi só para não 'mergulharem' logo para p/invoke para as coisas mais simples como essa... porque não é necessário e pode causar problemas (não neste caso, a não ser que mudem a API o que provavelmente não irá acontecer) a longo prazo...

Desculpa lá, não foi um 'ataque' a ti Apocsantos.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.