Hi,
I am developing a Windows Form application with C# .NET 2.0.
In my form, I have many controls and panels on it. I need to capture a mouse click within the form before any of the controls or panels do.
What I'm trying to do is to mimic the dropdown menu in Microsoft Word 2007. In Word 2007, if you click on the top left menu button, a dropdown menu will appear. If you click anywhere outside of that menu, the menu will disappear/close.
I did it right now by having a menu panel that is 'floating' on top of other controls. So if the user clicks anywhere outside of that menu panel, that menu panel show 'close' (by setting the Visible to false). But I can't figure out how to capture a mouse click outside of that panel unless I put mouse event listener on every controls outside of that panel, which is something I'm trying to avoid.
Any help is appreciated. Thanks!
Regards,
-LouisInheritance
I am developing a Windows Form application with C# .NET 2.0.
In my form, I have many controls and panels on it. I need to capture a mouse click within the form before any of the controls or panels do.
What I'm trying to do is to mimic the dropdown menu in Microsoft Word 2007. In Word 2007, if you click on the top left menu button, a dropdown menu will appear. If you click anywhere outside of that menu, the menu will disappear/close.
I did it right now by having a menu panel that is 'floating' on top of other controls. So if the user clicks anywhere outside of that menu panel, that menu panel show 'close' (by setting the Visible to false). But I can't figure out how to capture a mouse click outside of that panel unless I put mouse event listener on every controls outside of that panel, which is something I'm trying to avoid.
Any help is appreciated. Thanks!
Regards,
-Louis
Ok so I know how to check if the user has clicked on a specific object, however I really don't care if where the user clicks, I just need to know if they've clicked (Whether on the actual form or on an object or whatever). My code is this:
When I run the code, I get an error:
PInvokeStackImbalance was detected
'A call to PInvoke function 'Mouse click!Mouse_click.Form1::GetAsyncKeyState' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.'
I'm very new to vb.net so the documentation really doesn't help me.Any help would be awesome :)
Lachlan CourtLachlan Court
1 Answer
There are several ways really to do this and it depends on what exactly you are trying to accomplish. One way would be to have a specific place that you route all click events:
Notice all the Events that this Sub handles? And if you want to determine what button was pushed, you might be able to do something like this:
Again, this is just one way and not very practical for large apps full of controls or working across any application. Something like that would be more involved and might require a system wide hook.
[EDIT]:
Along the lines of what Robin commented (excellent suggestion, by the way) is that you can alternatively add the handler in a separate line of code to avoid having to include every control up front. In fact, if you did follow this method, which I really like, you could do this with each control on the form with a loop:
Along the lines of what Robin commented (excellent suggestion, by the way) is that you can alternatively add the handler in a separate line of code to avoid having to include every control up front. In fact, if you did follow this method, which I really like, you could do this with each control on the form with a loop:
C Mouse Event System Wide World
Thanks for that, Robin! Completely escaped my mind..
ApachiApachi
Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.
Not the answer you're looking for? Browse other questions tagged vb.net or ask your own question.
I was wondering how I could make a console application that detects if the user scrolls with his mousewheel (anywhere on screen).
The reason that I want it to be a console application would be that I can run it in the background. I've searched quite a bit now and I can't seem to find what I need.
Default8,53077 gold badges5454 silver badges9393 bronze badges
M. BoeckxM. Boeckx
2 Answers
you may read this topic:
Linux /dev/input/event Tutorial
If you have own controls, you can setup such things very easily throught the designer, or in code dynamically. However, the mouse needs to be on top of your control, so that you will receive the event. So in your case you need to register on the message filter. Take care, that you do not do to much in there. This may slow down your whole application, if you do to much at this place:
You can also setup a windows forms project without showing a form either. Here is a program.cs code of a windows forms project:
Community♦
PatrickPatrick
One way to achieve it is using Raw Input via P/Invoke. Start here:
Referred from: http://www.codeproject.com/Questions/217948/I-need-to-capture-mouse-events-in-Console
CivaCiva1,02911 gold badge1111 silver badges2929 bronze badges
Not the answer you're looking for? Browse other questions tagged c#backgroundscrollconsole-application or ask your own question.
-->Definition
MouseMouseMouseMouse
Remarks
The Mouse class provides mouse related events, methods and, properties which provide information regarding the state of the mouse.
Each event that Mouse defines as an attached event is also re-exposed by the base element classes UIElement and ContentElement as a new routed event. Generally, it is more convenient to handle mouse events for an application on UIElement and ContentElement, rather than using the Mouse events. For details, see Input Overview.
The static members of the Mouse class delegate to the primary MouseDevice of the calling thread's input manager.
Fields
GotMouseCaptureEventGotMouseCaptureEventGotMouseCaptureEventGotMouseCaptureEvent | Identifies the GotMouseCapture attached event. |
LostMouseCaptureEventLostMouseCaptureEventLostMouseCaptureEventLostMouseCaptureEvent | Identifies the LostMouseCapture attached event. |
MouseDownEventMouseDownEventMouseDownEventMouseDownEvent | Identifies the MouseDown attached event. |
MouseEnterEventMouseEnterEventMouseEnterEventMouseEnterEvent | Identifies the MouseEnter attached event. |
MouseLeaveEventMouseLeaveEventMouseLeaveEventMouseLeaveEvent | Identifies the MouseLeave attached event. |
MouseMoveEventMouseMoveEventMouseMoveEventMouseMoveEvent | Identifies the MouseMove attached event. |
MouseUpEventMouseUpEventMouseUpEventMouseUpEvent | Identifies the MouseUp attached event. |
MouseWheelDeltaForOneLineMouseWheelDeltaForOneLineMouseWheelDeltaForOneLineMouseWheelDeltaForOneLine | Represents the number of units the mouse wheel is rotated to scroll one line. |
MouseWheelEventMouseWheelEventMouseWheelEventMouseWheelEvent | Identifies the MouseWheel attached event. |
PreviewMouseDownEventPreviewMouseDownEventPreviewMouseDownEventPreviewMouseDownEvent | Identifies the PreviewMouseDown attached event. |
PreviewMouseDownOutsideCapturedElementEventPreviewMouseDownOutsideCapturedElementEventPreviewMouseDownOutsideCapturedElementEventPreviewMouseDownOutsideCapturedElementEvent | Identifies the PreviewMouseDownOutsideCapturedElement attached event. |
PreviewMouseMoveEventPreviewMouseMoveEventPreviewMouseMoveEventPreviewMouseMoveEvent | Identifies the PreviewMouseMove attached event. |
PreviewMouseUpEventPreviewMouseUpEventPreviewMouseUpEventPreviewMouseUpEvent | Identifies the PreviewMouseUp attached event. |
PreviewMouseUpOutsideCapturedElementEventPreviewMouseUpOutsideCapturedElementEventPreviewMouseUpOutsideCapturedElementEventPreviewMouseUpOutsideCapturedElementEvent | Identifies the PreviewMouseUpOutsideCapturedElement attached event. |
PreviewMouseWheelEventPreviewMouseWheelEventPreviewMouseWheelEventPreviewMouseWheelEvent | Identifies the PreviewMouseWheel attached event. |
QueryCursorEventQueryCursorEventQueryCursorEventQueryCursorEvent | Identifies the QueryCursor attached event. |
Properties
CapturedCapturedCapturedCaptured | Gets the element that has captured the mouse. |
DirectlyOverDirectlyOverDirectlyOverDirectlyOver | Gets the element the mouse pointer is directly over. |
LeftButtonLeftButtonLeftButtonLeftButton | Gets the state of the left button of the mouse. |
MiddleButtonMiddleButtonMiddleButtonMiddleButton | Gets the state of the middle button of the mouse. |
OverrideCursorOverrideCursorOverrideCursorOverrideCursor | Gets or sets the cursor for the entire application. |
PrimaryDevicePrimaryDevicePrimaryDevicePrimaryDevice | Gets the primary mouse device. |
RightButtonRightButtonRightButtonRightButton | Gets the state of the right button. |
XButton1XButton1XButton1XButton1 | Gets the state of the first extended button. |
XButton2XButton2XButton2XButton2 | Gets the state of the second extended button. |
Methods
AddGotMouseCaptureHandler(DependencyObject, MouseEventHandler)AddGotMouseCaptureHandler(DependencyObject, MouseEventHandler)AddGotMouseCaptureHandler(DependencyObject, MouseEventHandler)AddGotMouseCaptureHandler(DependencyObject, MouseEventHandler) | Adds a handler for the GotMouseCapture attached event. |
AddLostMouseCaptureHandler(DependencyObject, MouseEventHandler)AddLostMouseCaptureHandler(DependencyObject, MouseEventHandler)AddLostMouseCaptureHandler(DependencyObject, MouseEventHandler)AddLostMouseCaptureHandler(DependencyObject, MouseEventHandler) | Adds a handler for the LostMouseCapture attached event. |
AddMouseDownHandler(DependencyObject, MouseButtonEventHandler)AddMouseDownHandler(DependencyObject, MouseButtonEventHandler)AddMouseDownHandler(DependencyObject, MouseButtonEventHandler)AddMouseDownHandler(DependencyObject, MouseButtonEventHandler) | Adds a handler for the MouseDown attached event. |
AddMouseEnterHandler(DependencyObject, MouseEventHandler)AddMouseEnterHandler(DependencyObject, MouseEventHandler)AddMouseEnterHandler(DependencyObject, MouseEventHandler)AddMouseEnterHandler(DependencyObject, MouseEventHandler) | Adds a handler for the MouseEnter attached event. |
AddMouseLeaveHandler(DependencyObject, MouseEventHandler)AddMouseLeaveHandler(DependencyObject, MouseEventHandler)AddMouseLeaveHandler(DependencyObject, MouseEventHandler)AddMouseLeaveHandler(DependencyObject, MouseEventHandler) | Adds a handler for the MouseLeave attached event. |
AddMouseMoveHandler(DependencyObject, MouseEventHandler)AddMouseMoveHandler(DependencyObject, MouseEventHandler)AddMouseMoveHandler(DependencyObject, MouseEventHandler)AddMouseMoveHandler(DependencyObject, MouseEventHandler) | Adds a handler for the MouseMove attached event. |
AddMouseUpHandler(DependencyObject, MouseButtonEventHandler)AddMouseUpHandler(DependencyObject, MouseButtonEventHandler)AddMouseUpHandler(DependencyObject, MouseButtonEventHandler)AddMouseUpHandler(DependencyObject, MouseButtonEventHandler) | Adds a handler for the MouseUp attached event. |
AddMouseWheelHandler(DependencyObject, MouseWheelEventHandler)AddMouseWheelHandler(DependencyObject, MouseWheelEventHandler)AddMouseWheelHandler(DependencyObject, MouseWheelEventHandler)AddMouseWheelHandler(DependencyObject, MouseWheelEventHandler) | Adds a handler for the MouseWheel attached event. |
AddPreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler) | Adds a handler for the PreviewMouseDown attached event. |
AddPreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler) | Adds a handler for the PreviewMouseDownOutsideCapturedElement attached event. |
AddPreviewMouseMoveHandler(DependencyObject, MouseEventHandler)AddPreviewMouseMoveHandler(DependencyObject, MouseEventHandler)AddPreviewMouseMoveHandler(DependencyObject, MouseEventHandler)AddPreviewMouseMoveHandler(DependencyObject, MouseEventHandler) | Adds a handler for the PreviewMouseMove attached event. |
AddPreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler) | Adds a handler for the PreviewMouseUp attached event. |
AddPreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)AddPreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler) | Adds a handler for the PreviewMouseUpOutsideCapturedElement attached event. |
AddPreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler)AddPreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler)AddPreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler)AddPreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler) | Adds a handler for the PreviewMouseWheel attached event. |
AddQueryCursorHandler(DependencyObject, QueryCursorEventHandler)AddQueryCursorHandler(DependencyObject, QueryCursorEventHandler)AddQueryCursorHandler(DependencyObject, QueryCursorEventHandler)AddQueryCursorHandler(DependencyObject, QueryCursorEventHandler) | Adds a handler for the QueryCursor attached event. |
Capture(IInputElement)Capture(IInputElement)Capture(IInputElement)Capture(IInputElement) | Captures mouse input to the specified element. |
Capture(IInputElement, CaptureMode)Capture(IInputElement, CaptureMode)Capture(IInputElement, CaptureMode)Capture(IInputElement, CaptureMode) | Captures mouse input to the specified element using the specified CaptureMode. |
GetIntermediatePoints(IInputElement, Point[])GetIntermediatePoints(IInputElement, Point[])GetIntermediatePoints(IInputElement, Point[])GetIntermediatePoints(IInputElement, Point[]) | Retrieves up to 64 previous coordinates of the mouse pointer since the last mouse move event. |
GetPosition(IInputElement)GetPosition(IInputElement)GetPosition(IInputElement)GetPosition(IInputElement) | Gets the position of the mouse relative to a specified element. |
RemoveGotMouseCaptureHandler(DependencyObject, MouseEventHandler)RemoveGotMouseCaptureHandler(DependencyObject, MouseEventHandler)RemoveGotMouseCaptureHandler(DependencyObject, MouseEventHandler)RemoveGotMouseCaptureHandler(DependencyObject, MouseEventHandler) | Removes a handler for the GotMouseCapture attached event. |
RemoveLostMouseCaptureHandler(DependencyObject, MouseEventHandler)RemoveLostMouseCaptureHandler(DependencyObject, MouseEventHandler)RemoveLostMouseCaptureHandler(DependencyObject, MouseEventHandler)RemoveLostMouseCaptureHandler(DependencyObject, MouseEventHandler) | Removes a handler for the LostMouseCapture attached event. |
RemoveMouseDownHandler(DependencyObject, MouseButtonEventHandler)RemoveMouseDownHandler(DependencyObject, MouseButtonEventHandler)RemoveMouseDownHandler(DependencyObject, MouseButtonEventHandler)RemoveMouseDownHandler(DependencyObject, MouseButtonEventHandler) | Removes a handler for the MouseDown attached event. |
RemoveMouseEnterHandler(DependencyObject, MouseEventHandler)RemoveMouseEnterHandler(DependencyObject, MouseEventHandler)RemoveMouseEnterHandler(DependencyObject, MouseEventHandler)RemoveMouseEnterHandler(DependencyObject, MouseEventHandler) | Removes a handler for the MouseEnter attached event. |
RemoveMouseLeaveHandler(DependencyObject, MouseEventHandler)RemoveMouseLeaveHandler(DependencyObject, MouseEventHandler)RemoveMouseLeaveHandler(DependencyObject, MouseEventHandler)RemoveMouseLeaveHandler(DependencyObject, MouseEventHandler) | Removes a handler for the MouseLeave attached event. |
RemoveMouseMoveHandler(DependencyObject, MouseEventHandler)RemoveMouseMoveHandler(DependencyObject, MouseEventHandler)RemoveMouseMoveHandler(DependencyObject, MouseEventHandler)RemoveMouseMoveHandler(DependencyObject, MouseEventHandler) | Removes a handler for the MouseMove attached event. |
RemoveMouseUpHandler(DependencyObject, MouseButtonEventHandler)RemoveMouseUpHandler(DependencyObject, MouseButtonEventHandler)RemoveMouseUpHandler(DependencyObject, MouseButtonEventHandler)RemoveMouseUpHandler(DependencyObject, MouseButtonEventHandler) | Removes a handler for the MouseUp attached event. |
RemoveMouseWheelHandler(DependencyObject, MouseWheelEventHandler)RemoveMouseWheelHandler(DependencyObject, MouseWheelEventHandler)RemoveMouseWheelHandler(DependencyObject, MouseWheelEventHandler)RemoveMouseWheelHandler(DependencyObject, MouseWheelEventHandler) | Removes a handler for the MouseWheel attached event. |
RemovePreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseDownHandler(DependencyObject, MouseButtonEventHandler) | Removes a handler for the PreviewMouseDown attached event. |
RemovePreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseDownOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler) | Removes a handler for the PreviewMouseDownOutsideCapturedElement attached event. |
RemovePreviewMouseMoveHandler(DependencyObject, MouseEventHandler)RemovePreviewMouseMoveHandler(DependencyObject, MouseEventHandler)RemovePreviewMouseMoveHandler(DependencyObject, MouseEventHandler)RemovePreviewMouseMoveHandler(DependencyObject, MouseEventHandler) | Removes a handler for the PreviewMouseMove attached event. |
RemovePreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseUpHandler(DependencyObject, MouseButtonEventHandler) | Removes a handler for the PreviewMouseUp attached event. |
RemovePreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler)RemovePreviewMouseUpOutsideCapturedElementHandler(DependencyObject, MouseButtonEventHandler) | Removes a handler for the PreviewMouseUpOutsideCapturedElement attached event. |
RemovePreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler)RemovePreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler)RemovePreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler)RemovePreviewMouseWheelHandler(DependencyObject, MouseWheelEventHandler) | Removes a handler for the PreviewMouseWheel attached event. |
RemoveQueryCursorHandler(DependencyObject, QueryCursorEventHandler)RemoveQueryCursorHandler(DependencyObject, QueryCursorEventHandler)RemoveQueryCursorHandler(DependencyObject, QueryCursorEventHandler)RemoveQueryCursorHandler(DependencyObject, QueryCursorEventHandler) | Removes a handler for the QueryCursor attached event. |
SetCursor(Cursor)SetCursor(Cursor)SetCursor(Cursor)SetCursor(Cursor) | Sets the mouse pointer to the specified Cursor. |
Synchronize()Synchronize()Synchronize()Synchronize() | Forces the mouse to resynchronize. |
UpdateCursor()UpdateCursor()UpdateCursor()UpdateCursor() | Forces the mouse cursor to be updated. |
Attached Events
GotMouseCaptureGotMouseCaptureGotMouseCaptureGotMouseCapture | Occurs when an element captures the mouse. |
LostMouseCaptureLostMouseCaptureLostMouseCaptureLostMouseCapture | Occurs when an element loses mouse capture. |
MouseDownMouseDownMouseDownMouseDown | Occurs when any mouse button is depressed. |
MouseEnterMouseEnterMouseEnterMouseEnter | Occurs when the mouse pointer enters the boundaries of an element. Fortunately, developers are easily surprised even by experienced gamers: our resource is regularly updated with radically new racing, exciting re-releases and interesting updates from rarely beloved publications. Biker street hacked games. |
MouseLeaveMouseLeaveMouseLeaveMouseLeave | Occurs when the mouse pointer leaves the boundaries of an element. |
MouseMoveMouseMoveMouseMoveMouseMove | Occurs when the mouse pointer moves. |
MouseUpMouseUpMouseUpMouseUp | Occurs when any mouse button is released. Download lagu dian piesesha mp3. |
MouseWheelMouseWheelMouseWheelMouseWheel | Occurs when the mouse wheel is rotated. |
PreviewMouseDownPreviewMouseDownPreviewMouseDownPreviewMouseDown | Occurs when any mouse button is depressed. |
PreviewMouseDownOutsideCapturedElementPreviewMouseDownOutsideCapturedElementPreviewMouseDownOutsideCapturedElementPreviewMouseDownOutsideCapturedElement | Occurs when the primary mouse button is pressed outside the element that is capturing mouse events. |
PreviewMouseMovePreviewMouseMovePreviewMouseMovePreviewMouseMove | Occurs when the mouse moves over an element. |
PreviewMouseUpPreviewMouseUpPreviewMouseUpPreviewMouseUp | Occurs when any mouse button is released. |
PreviewMouseUpOutsideCapturedElementPreviewMouseUpOutsideCapturedElementPreviewMouseUpOutsideCapturedElementPreviewMouseUpOutsideCapturedElement | Occurs when the primary mouse button is released outside the element that is capturing mouse events. |
PreviewMouseWheelPreviewMouseWheelPreviewMouseWheelPreviewMouseWheel | Occurs when the mouse wheel rotates. |
QueryCursorQueryCursorQueryCursorQueryCursor | Occurs when an element queries for the current mouse cursor. |
Applies to
How can I simulate a mouse event causing the pointer to move 500 pixels to the left, then click using C++. How would I do something like this?
Mateen Ulhaq11.9k1111 gold badges5151 silver badges9494 bronze badges
Josh PolkJosh Polk
6 Answers
Here's some modified Win32 code I had lying around:
You'll need to call
MouseSetup()
to eachINPUT
buffer before you use it.Resources
MSDN -
MSDN -
MSDN -
Mateen UlhaqMateen UlhaqSendInput()
MSDN -
INPUT
MSDN -
MOUSEINPUT
11.9k1111 gold badges5151 silver badges9494 bronze badges
Here is a solution using
Xlib
for those who use Linux
: Just Build it and then to simulate a click at x ,y do:
i.e.
axiomaxiom6,70622 gold badges2121 silver badges3131 bronze badges
Use
SendInput
to generate the input you want to simulate. From MSDN documentation:Synthesizes keystrokes, mouse motions, and button clicks.
tenfourtenfour27.5k1212 gold badges6262 silver badges124124 bronze badges
C++ alone can't do this. It has no concept of a 'mouse', let alone a 'click'.
You need some sort of library which talks to your windowing system. For example, QT. Then it's a matter of searching through the API and making the right C++ calls.
nsandersnsanders9,20822 gold badges3333 silver badges4545 bronze badges
I have never did this using C++. Nevertheless, there is a Java class called Robot which is able to produce mouse events. I used this back on Java version 1.4 but it does still work. I tried the example from this Simulate a physical mouse move in Mac OS X. It runs smoothly with Oracle Java 1.6.0_26 on MacOSX Lion. The good about Java is that it is platform independent.
You can still use JNI to bind it with C++.
I hope it helps
Community♦
ChubsChubs
Mateen Ulhaq11.9k1111 gold badges5151 silver badges9494 bronze badges
George GaálGeorge Gaál