小编Dan*_*iro的帖子

找出Java中关注的应用程序(窗口)

我想知道如何编写一个知道哪个Windows应用程序是焦点的Java程序.我可以打开很多窗口,但我想知道正在使用的那个窗口(就像我正在键入的那样,就像谷歌Chrome一样).

我不需要在窗口或应用程序中更改任何内容,只需要知道它的名称.

java windows

23
推荐指数
3
解决办法
2万
查看次数

使用JNA获取GetForegroundWindow();

我在之前的一个帖子(/sf/ask/364464341/)上问了一个类似的问题,但我被引导使用JNI,而我我没有取得多大成功...我已经阅读了一些教程,虽然有些工作正常,但其他人却没有,我仍然无法获得我需要的信息,这是前景窗口的标题.

现在我正在研究JNA,但我无法弄清楚如何访问GetForegroundWindow()...我想我可以使用此代码(在另一个线程上找到)获取窗口句柄后打印文本:

import com.sun.jna.*;
import com.sun.jna.win32.*;

public class jnatest {
    public interface User32 extends StdCallLibrary {
        User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);

        int GetWindowTextA(PointerType hWnd, byte[] lpString, int nMaxCount);
    }

    public static void main(){
        byte[] windowText = new byte[512];

        PointerType hwnd = //GetForegroundWindow() (?)...
        User32.INSTANCE.GetWindowTextA(hwnd, windowText, 512);
        System.out.println(Native.toString(windowText));

    }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢!

java windows winapi jna

10
推荐指数
2
解决办法
1万
查看次数

测试Prolog差异列表

我一直在阅读有多大的差异列表,我希望从书中测试一些例子.但似乎你不能以与插入([1,2,3],[4,5],X)相同的方式传递列表作为输入,其中X = [1,2,3, 4,5].奇怪的是,我咨询过的任何一本书都没有提到这一点.

我在swipl上运行代码,我有兴趣测试差异追加谓词:

dapp(A-B,B-C,A-C).
Run Code Online (Sandbox Code Playgroud)

和"旋转列表的第一个元素"谓词:

drotate([H|T]-T1,R-S) :- dapp(T-T1,[H|L]-L,R-S).
Run Code Online (Sandbox Code Playgroud)

任何想法,我如何在swipl中测试这些谓词?

list prolog difference-lists

7
推荐指数
1
解决办法
1190
查看次数

标签 统计

java ×2

windows ×2

difference-lists ×1

jna ×1

list ×1

prolog ×1

winapi ×1