GetCursor() ? Wie aktuellen Cursor bestimmen ?
-
Muß irgendwie herausfinden, welchen aktuellen Cursor eine andere (hier z.B. Java-) Applikation gerade verwendet.
Mit GetCursor() erhält man wohl einen Handle auf den aktuellen Cursor, doch der ist immer 5230 auch wenn eine Eieruhr oder sonst ein Symbol am Cursor “klebt“.
Bin kein Programmierprofi und zum Cursor gehört sicher auch keine Fensterklasse, deren Namen man mit ::GetClassName() bestimmen könnte, aber irgendwie muß man doch herausfinden können, ob der Cursor gerade Standard ist oder ihm etwas anhängt.
Bin dankbar für jeden Tip!
-
Der Cursor ist immer mit einem Fenster "verknüpft"... Du solltest mal "GetCursorInfo" versuchen...
-
Nach Einbau von #include "winuser.h" und #define WINVER 0x0500 in StdAfx.h erkennt mein Win98 mit VC6 jetzt zwar GetCursorInfo() aber nach
HCURSOR hcursor;
hcursor=GetCursor();
CURSORINFO cursorinfo;
cursorinfo.hCursor=hcursor;
cursorinfo.cbSize=sizeof(CURSORINFO);
GetCursorInfo(&cursorinfo);Ist cursorinfo.cbSize immer = 20 und ändert sich mit dem Mauszeiger nicht.
-
Habe glaube ich jetzt eine für mich ausreichende Lösung:
Es reicht das Handle aus CURSORINFO zu bestimmen:HCURSOR hcursor;
hcursor=GetCursor();
CURSORINFO cursorinfo;
cursorinfo.hCursor=hcursor;
cursorinfo.cbSize=sizeof(CURSORINFO);
GetCursorInfo(&cursorinfo);
sprintf(buffer,"%d ",(int)cursorinfo.hCursor);Das Handle ist normal 5230,
der Textcursor 5222
die Hand 54614
ein Pfeil oben unten 5166
ein Pfeil mit getrenntem Mittelstrich von oben nach unten 33262
ein Pfeil mit getrenntem Mittelstrich von links nach rechts 33254
und schließlich eine Eieruhr 5214Das sollte reichen...