现在在做一个java的UI程序,大致就是一个仿QQ的程序,现在要实现当聊天窗体最小化有消息时,是最小化的任务栏图标闪烁(不是右下角的图标闪烁),在winAPI里有个flashWindow函数(在user32.dll里)是专门用来让任务栏闪烁的,请谁可以帮我写个实例调用flashWindow函数,我现在就是在jni调用flashWindow方法时打住了。求指点迷津~

解决方案 »

  1.   

    估计是没人帮你写了。。
    你自己写个java类,用javah生成h文件,然后自己写吧。。
      

  2.   

    有Java Native Access或许你可以试试
    https://jna.dev.java.net/
      

  3.   

    jna?主要是到写C++那部分代码时不知道该怎么写,生成dll文件时老是出错
      

  4.   

    从来没写过JNI,一直JNA。
    调用FlashWindow很简单,但是你要能找到窗口的句柄。
      

  5.   

    jna?主要是到写C++那部分代码时不知道该怎么写,生成dll文件时老是出错
      

  6.   

    谁能帮我弄个例子出来 第一次使用jna,不懂
      

  7.   


    这个句柄能用jna找到吗?
      

  8.   

    你先搜搜相关代码,不要加上Java或者JNA关键字,看下C或者别的语言里是怎么做的,然后再转成Java的。
    比如遍历窗口可以用EnumWindowsProc,判断窗口进程可以用GetWindowThreadProcessId。你自己先研究研究吧,不难,但也不是十来行代码就搞定的,估计没人愿意代写代码。
      

  9.   


    使用jnad调用findWindow这个方法出现
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'FindWindow': ???????¨?
    at com.sun.jna.Function.<init>(Function.java:179)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:344)
    at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:324)
    at com.sun.jna.Library$Handler.invoke(Library.java:203)
    at $Proxy0.FindWindow(Unknown Source)
    at gds.jni.flashWindow.HelloWorld.main(HelloWorld.java:74)
    这是什么原因?
    这是我调用是传的参数  win32API.FindWindow(null,"窗体1");