Ir para o conteúdo
JakeBass

[Resolvido] MousePosition

Mensagens Recomendadas

apocsantos

Boa noite,

Cursor.Position.ToString();

Obtens a posição do cursor.

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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JakeBass

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.

Editado por sketxz

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

Boa tarde,

Ok! Ainda bem que funcionou! Mas mais importante que ter funcionado, percebes-te como está feito ?

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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
JakeBass

sim, percebi. Eu andava mesmo a precisar de estudar Object Oriented Programming, e o C# parece utilizar bastante.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
He B TeMy

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: http://i.imgur.com/7rno9m0.png

Editado por He B Te My

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
apocsantos

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"

assinatura.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
He B TeMy

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.