草庐IT

java - Java 中的虚拟操纵杆

您是否听说过具有Java封装的Windows虚拟操纵杆?我正在尝试PPJOY,它工作得很好,但是我需要使用JNI让它在Java中工作,目前看来这并不容易。谢谢! 最佳答案 你来了。我为PPJoy制作了一个Java包装器。而且它真的很容易使用。见:try{/**Trytocreateanewjoystick.*/Joystickjoystick=newJoystick();try{/**Setjoystickvalues*//**SetanalogvaluesforAxisX/Y/Z,*RotationX/Y/Z,Slider,Dia

Java:加载具有依赖项的共享库

我正在使用JNA用Ja​​va包装一个共享库(用C编写)。共享库是在内部编写的,但是该库使用来自另一个外部库的函数,这又依赖于另一个外部库。所以情况是这样的:ext1即内部使用外部库ext2,它再次使用外部库ext1。我尝试过的是:System.loadLibrary("ext1");System.loadLibrary("ext2");NativeLIbrary.loadLibrary("internal",xxx.class);加载库“ext2”时,此方法失败并出现“UnresolvedException”;链接器提示库“ext1”中确实存在的符号。因此,似乎System.load

java - 如何从java代码调用外部dll函数

我需要从Java代码调用外部DLL库函数。我使用Netbeans7.2。我的dll的功能是:BooleanisValid(stringword)ListgetWords(Stringword)我正在关注this例子。但我不知道如何声明我的dll函数。我找到了另一个link.但这对我不起作用。 最佳答案 我偶然发现了“从Java调用DLL”的相同问题,并且首先对复杂性感到沮丧。然而,有一个优雅的解决方案(对于processing.org栖息地的人们来说也可能很有趣......)考虑到问题的相当“一般”形式(也许,为此降级是不合理的),

JAVA JNA WindowProc 实现

我正在尝试用Java编写一个简单的应用程序,它将与USB设备进行通信。USB设备是我使用Microchip微Controller制作的。通信相当简单,因为USB设备来自HID类,计算机和设备之间交换64字节的数组。我的程序根据产品ID和供应商ID找到设备,可以写入和读取64字节,但现在我想检测设备何时连接或断开与计算机的连接。正如我在Microchip作为示例应用程序提供的C#程序中看到的那样,WndProc方法被重写并处理WM_DEVICECHANGE消息。我的问题是如何使用JNA在Java中完成此操作,如果可能的话,我如何重写WindowProc方法并处理消息:),但我希望它是:D

java - 使用 JNA 将 C 数组返回给 Java

我不太熟悉C,但我需要在我的java代码中使用C库。我已经创建了DLL并且能够很好地访问它,但我试图将一个整数数组从C代码返回到Java代码。在C中,我认为您可以简单地返回一个指向数组的指针,但它并没有像我在Java代码中期望的那样工作。这是C代码:int*getConusXY(doublelatitude,doublelongitude){maparamstcprm;doublereflat=25,reflon=-95,lat1=20.191999,lon1=-121.54001,x1=0,y1=0,x2=1073,y2=689,gsize=5.079,scaLat=25,scaLo

java - 如何检查文件是否可读?

我正在编写Java6应用程序,我必须检查文件是否可读。但是,在Windows上,canRead()始终返回true。所以我认为,唯一的解决方案可能是一些基于WINAPI并用JNA/JNI编写的native解决方案。但是,还有另一个问题,因为很难在WINAPI中找到一个简单的函数来返回有关文件访问的信息。我找到了GetNamedSecurityInfo或GetSecurityInfo但我不是高级WINAPI程序员,它们对我来说与JNA/JNI相关太复杂了。任何想法如何处理这个问题? 最佳答案 Java7引入了Files.isReada

java - 如何在 Java 中获取程序窗口的 x 和 y?

有没有办法让我在java中获取窗口的X和Y值?我读到我必须使用运行时,因为java不能直接搞砸,但是我不太确定如何做到这一点。谁能给我一些关于如何获得它的链接/提示? 最佳答案 要获得“任何其他不相关应用程序”的x和y位置,您将不得不查询操作系统,这意味着可能使用JNI、JNA或其他一些脚本实用程序,例如AutoIt(如果是Windows)。我推荐JNA或脚本实用程序,因为两者都比JNI更容易使用(以我有限的经验),但要使用它们,您需要下载一些代码并将其与您的Java应用程序集成。编辑1我不是JNA专家,但我确实对它进行了一些摆弄,

java - 使用 JNA 启动/停止服务

我正在编写一个实用程序来启动和停止Windows服务。该程序将分布在许多具有不同用户权限级别的计算机上,因此我不想使用命令行。我试过使用JNA,importcom.sun.jna.platform.win32.W32Service;importcom.sun.jna.platform.win32.W32ServiceManager;importcom.sun.jna.platform.win32.Winsvc;/****@author*/publicclassWindowsServices{/***@paramargsthecommandlinearguments*/publicsta

java - Java 中的全局热键

我正在尝试制作一个使用全局热键的应用程序,在决定使用jintellitypeapi之前,我已经坚持了大约2天试图弄清楚它。当我运行Jintellitype'swebsite上提供的示例时,我总是遇到问题:无法在AMD64位平台上加载IA32位.dll,我使用64位JRE、64位Windows,但找不到解决方案:无论是在网站/论坛上还是使用谷歌.我不熟悉处理.dll文件和JNI/JNA,但我认为为了让事情正常进行,我应该生成一个.dll文件并将其添加到系统文件夹,或者只是获取一个预制的.dll类似Jintellitype提供的文件(如有错误请指正)。那么,使用JIntellitype背后

java - Java中如何获取一个新的指针?

如何从JNA在C中调用具有此方法签名的方法?intopen_device(context*ctx,device**dev,intindex);C方法的最后两行如下所示:*dev=pdev;return0;这是该方法中唯一使用dev的地方。这意味着我必须将指针传递给指向该方法的空指针,对吗?然后该方法用device对象的地址填充空指针,我可以将指向设备的指针传递给其他方法。我的问题是:这样做是否正确?如果是,我如何从Java分配一个新指针?根据接受的答案,我这样做了:Memoryp=newMemory(Pointer.SIZE);Memoryp2=newMemory(Pointer.SI