JakeBass Posted May 4, 2015 at 07:53 PM Report Share #582464 Posted May 4, 2015 at 07:53 PM Como é que posso aceder às coordenadas x e y da posição do cursor numa aplicação windows forms? Link to comment Share on other sites More sharing options...
apocsantos Posted May 4, 2015 at 09:22 PM Report Share #582465 Posted May 4, 2015 at 09:22 PM 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" Link to comment Share on other sites More sharing options...
JakeBass Posted May 5, 2015 at 11:50 AM Author Report Share #582488 Posted May 5, 2015 at 11:50 AM (edited) 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 May 5, 2015 at 12:10 PM by sketxz Link to comment Share on other sites More sharing options...
apocsantos Posted May 5, 2015 at 01:17 PM Report Share #582493 Posted May 5, 2015 at 01:17 PM 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 More sharing options...
JakeBass Posted May 5, 2015 at 02:07 PM Author Report Share #582500 Posted May 5, 2015 at 02:07 PM Sim, era isso mesmo. Obrigado Cumprimentos Link to comment Share on other sites More sharing options...
apocsantos Posted May 5, 2015 at 02:14 PM Report Share #582501 Posted May 5, 2015 at 02:14 PM 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" Link to comment Share on other sites More sharing options...
JakeBass Posted May 6, 2015 at 07:00 AM Author Report Share #582554 Posted May 6, 2015 at 07:00 AM sim, percebi. Eu andava mesmo a precisar de estudar Object Oriented Programming, e o C# parece utilizar bastante. Link to comment Share on other sites More sharing options...
He B TeMy Posted May 15, 2015 at 03:42 PM Report Share #583222 Posted May 15, 2015 at 03:42 PM (edited) 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 May 15, 2015 at 03:44 PM by He B Te My Link to comment Share on other sites More sharing options...
apocsantos Posted May 16, 2015 at 09:51 AM Report Share #583266 Posted May 16, 2015 at 09:51 AM 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 More sharing options...
He B TeMy Posted May 16, 2015 at 03:11 PM Report Share #583273 Posted May 16, 2015 at 03:11 PM 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now