日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 调用win32 api 学习总结

發布時間:2025/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 调用win32 api 学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java使用JInvoke調用windows API


使用jinvoke調用windowsAPI。jna使用比較麻煩,需要寫c代碼和參數轉換,jinvoke的使用就像jdk中的包一樣。?

官網使用參考:http://www.jinvoke.com/calling-the-win32-api-from-java?

一個彈出框的例子(這種代碼用于調用任何dll,不只是windows的,也可以是自己寫的dll)?

import com.jinvoke.JInvoke;?
import com.jinvoke.NativeImport;?

public class HelloWindows?
{?
@NativeImport(library="User32")?
public static native int MessageBox(int hwnd,?
? ? ? ? ? ?String text,?
? ? ? ? ? ?String caption,?
? ? ? ? ? ?int type); //windows Api MessageBox函數原型?

public static void main(String[]argc)?
{?
? ?JInvoke.initialize();?
? ?MessageBox(0,"Thisi MessageBox is a native Win32 MessageBox",?
? ? ? "Hellow World",0);?
}?
}?

運行效果:?

使用以上代碼方式可以任意調用本地的DLL文件。?
注意:1.import com.jinvoke.JInvoke;import com.jinvoke.NativeImport;//引用包?
? ?2.@NativeImport(library="User32")//指定本地的DLL文件?
? ?3.public static native int MessageBox(int hwnd,String text,String caption,int type); //windows Api MessageBox函數原型 聲明一個可以在java當前類中使用的方法
? ? 4.JInvoke.initialize();//實例化JInvoke?
? ?5.MessageBox(0,"Thisi MessageBox is a native Win32 MessageBox","Hellow World",0);//然后就可以開始調用DLL中的函數了
?
如果只是為了使用User32.dll中的函數可以直接使用jinvoke.jar中提供的User32類,而不必使用@NativeImport(library="User32")去包含一個DLL,再去聲明一個做函數的類型轉換的方法。
?
編譯是需要帶上jinvoke.jar即:java -classpath .;jinvoke.jar HelloWindows?
========

Java 調用 Windows API 可能性的實現?


在 Google 輸入 java call win32api 的第一個結果
?
http://www.jinvoke.com/calling-the-win32-api-from-java


看看這個吧
?java版任務管理器
?java版注冊表編輯器
?
Calling the Win32 API from Java
?
首先從 http://www.jinvoke.com/calling-the-win32-api-from-java 將 jinvoke下載回來
?
將 jinvoke.jar 解壓到 磁盤任意目錄,配置環境變量
?
如果當前用戶中沒有 classpath 環境變量 請新建之
?
我這里 java 安裝路徑是 C:/Program Files/Java/jdk1.5.0_09
?
我應該設置的的 classpath 值是
?
.;C:/Program Files/Java/jdk1.5.0_09/lib/tools.jar;C:/Program Files/Java/jdk1.5.0_09/lib/dt.jar
?
其中 .; 代表當前目錄
?
其次查看 系統全局變量“系統變量”
?
找到path
?
在path頭處添加 .;?

尾部添加;C:/Program Files/Java/jdk1.5.0_09/bin;
?
配置好后一路“確定”后編寫java文件
?
import com.jinvoke.JInvoke; ?
import com.jinvoke.NativeImport; ?
??
public class HelloWindows ?
{ ?
@NativeImport(library="User32") ?
public static native int MessageBox(int hwnd, ?
? ? ? ? ? ?String text, ?
? ? ? ? ? ?String caption, ?
? ? ? ? ? ?int type); //windows Api MessageBox函數原型 ?
??
public static void main(String[]argc) ?
{ ?
? ?JInvoke.initialize(); ?
? ?MessageBox(0,"Thisi MessageBox is a native Win32 MessageBox", ?
? ? ? "Hellow World",0); ?
} ?
} ?
?
將 jinvoke.jar 放到 HelloWindows.java 同級目錄
?
統計目錄編寫批處理文件 compile.bat
?
@echo off ?
color 0f ?
??
javac -classpath %~dp1jinvoke.jar; %1 ?
if %errorlevel%==0 ( ?
echo 編譯成功 ?
cd %~dp1 ?
java -classpath %~dp1jinvoke.jar; %~n1>nul 2>nul ?
) ?
pause ?
?
把 HelloWindows.java 往 complie.bat 拖動
?
如果你的java軟件包沒問題就會出現這個畫面

csdn 示例下載地址
?
http://download.csdn.net/source/1623746
?
========

Java學習筆記 Java調用Win32 API控制鼠標活動范圍?


今天學習Java看到Jni部分, 終于看到Java如何調用其他語言寫的函數
?
首先是Java寫的測試類
?
public class TestJni
?
{
?
? ?native void SetMouseRangle(int left, int right, int top, int bottom);
?
? ?static{
?
? ? ?System.loadLibrary("TestJni");
?
? ?}
??
? ?public static void main(String []args){
?
? ? ? ? ?TestJni test = new TestJni();
?
? ? ? ? ?test.SetMouseRangle(0,0,0,0);
?
? ? ? ? ?test.SetMouseRangle(100,100,200,200);
?
? ?}
???
}
?
??SetMouseRangle用它來代替同名的本地函數,它的前面必須要有native關鍵字,而且它不能有函數體.這個函數是為了指定一個矩形的范圍,把鼠標限定在這個矩形里面5秒鐘.
??
? ?static{?
? ? ?System.loadLibrary("TestJni");?
? ?}
?
是為了加載TestJni.dll的(在其他平臺上動態庫的后綴名不為dll,這里由系統自己判斷后綴名是dll還是os等),本地的SetMouseRangle就放在這個動態庫中.
?
然后用javac生成class文件.用,javah生成c語言的頭文件.
??
然后打開C++編譯器,新建一個win32動態鏈接庫項目.把生成的TestJni.h頭文件包含進去就行了.
?
然后 #include"TestJni.h"?

創建一個導出函數
?
JNIEXPORT void JNICALL Java_TestJni_SetMouseRangle
?
?(JNIEnv *, jobject, jint left, jint right, jint top, jint bottom)
?
{
?
? ? ? RECT rect;?
? ? ? rect.left = left;?
? ? ? rect.right = right;?
? ? ? rect.top = top;?
? ? ? rect.bottom = bottom;? ? ??
?
? ? ? ClipCursor(&rect);?
? ? ? Sleep(5000);?
? ? ? ClipCursor(0);?
}
?
ClipCursor為一個Win32 API函數,作用是把鼠標限定在傳入的矩形范圍內.最后要調用ClipCursor(0);
?
否則鼠標將一直被限定在那個矩形范圍內.
?
然后編譯,在這里處了點問題,提示找不到Jni.h,想到一個笨辦法,把Jni.h的目錄附加進來.我的
?
Jni.h所在目錄為C:/Program Files/Java/jdk1.6.0/include,還要把一個目錄附加進來,因為還會用到C:/Program Files/Java/jdk1.6.0/include/win32這個目錄中的頭文件
?
然后編譯,將生成的dll拷貝到class所在目錄,如果名字不為TestJni.dll就把它改為這個名字,就可以運行了.
?
========

說明如何從 Java 調用 Win32API JWindow?


點擊這里察看該文章的英文版: 177162

概要
?JWINDOW 示例闡釋如何從 Java 應用程序調用 Win32API。 該示例包含單個類調用 JWindow, 基本上通過使用 Win 32 API CreateWindow 創建窗口并顯示 " Hello JWindow " 在工作區通過處理 WM _ PAINT WndProc 中。 此示例闡釋如何使用 @ dll.import 指令來調用 Win32DLL 函數從 Java、 回調和嵌套結構類型。


更多信息
可用于從 Microsoft 下載中心下載下列文件:
Jwindow.exe
?有關如何下載 Microsoft 支持文件請單擊下列文章編號以查看 Microsoft 知識庫中相應:?
119591 如何從聯機服務獲取 Microsoft 支持文件?
此文件進行病毒掃描 Microsoft。 Microsoft 使用最新病毒檢測軟件, 投遞文件日期上的可用。 文件存儲, 有助于防止對文件進行任何未經授權更改安全性增強的服務器上。
?該 JWINDOW 示例包含 JWindow.java, 它調用標準 Win32DLL 并闡釋如何使用 @ dll.import 指令來調用 DLL 函數從 Java。
?
要使用 J/Direct, 您需要安裝 1.02.4337 版本或更高的 Microsoft 編譯器 for Java (Jvc.exe) 和 Microsoft 虛擬機 for Java 2252 或更高版本。 編譯器就用 Microsoft SDK for Java 2.0 x 或更高版本。 虛擬機, 但是, SDK for Java 附帶 3.2 和以后, 版本中已不再并且必須下載 seperately。 有關詳細信息, 請訪問以下 Microsoft 網站:?
http://www.microsoft.com/mscorp/java/
?站點。?

當執行 Java 應用程序, 如果遇到一個 UnsatisifiedLinkError, 然后檢查您的編譯器版本。 如果編譯器不支持 J/Direct, MicrosoftWin 虛擬機將試圖鏈接本機方法使用原始本機接口, 因此不會成功。

參考
?支持有關 VisualJ++ 和 SDKforJava, 請訪問以下 MicrosoftWeb 站點獲取:?
http://www.microsoft.com/java

Warning: This article has been translated automatically

========

Java中調用Windows API的方法


要在Java中調用Windows API,最簡單的方法就是使用JNative.jar中提供的接口。該庫已經對Linux和Windows系統中的API進行了封裝,例如對Windows,使用它里面的接口調用就和在Delphi等開發工具中的調用方法是一樣的,因為函數的名字和參數都是一樣的。下面說明其用法。
?
安裝方法:將JNative.jar加到classpath中即可。
?
假如現在要給QQ的窗口發送消息,程序如下:
?

import org.junit.Test;
?
import org.xvolks.jnative.misc.basicStructures.HWND;
?
import org.xvolks.jnative.misc.basicStructures.LPARAM;
?
import org.xvolks.jnative.misc.basicStructures.UINT;
?
import org.xvolks.jnative.misc.basicStructures.WPARAM;
?
import org.xvolks.jnative.util.User32;
?
??
public class JNativeLearning {
?
? ? @Test
?
? ? public void sendMessage() throws Exception {
?
? ? ? ?HWND hWnd=User32.FindWindow("TXGuiFoundation", "QQ2010");
?
? ? ? ?if(hWnd.getValue()>0){
?
? ? ? ? ? ?System.out.println("窗口存在");
?
? ? ? ? ? ?User32.SendMessage(hWnd, new UINT(0x10), new WPARAM(0), new LPARAM(0));
?
? ? ? ?}else{
?
? ? ? ? ? ?System.out.println("窗口不存在");
?
? ? ? ?}
?
? ? }
?
}
??
?
其它接口請參見其JavaDoc:http://jnative.free.fr/docs/
??
========

Java調用C/C++ API 講解及代碼示例?


JAVA

我們知道Java是一種平臺無關性的語言,平臺對于上層的java代碼來說是透明的,所以在多數時間我們是不需要調用本地方法,但是假如你遇到了以下情況,你可能就需要使用Java調用本地方法了:
你的Java代碼需要得到一個文件的屬性。但是你找遍了JDK幫助文檔也找不到相關的API。
在本地還有一個別的系統,不過它不是Java語言實現的,這個時候你需要把兩套系統整合到一起。
你的Java代碼中需要用到某種算法,不過算法是用C實現并封裝在動態鏈接庫文件(DLL)當中的。
?
對于上述的三種情況,如果沒有JNI的話,那就會變得異常棘手了。JNI其實是Java Native Interface的簡稱,也就是java本地接口。它提供了若干的API實現了和Java和其他語言的通信(主要是C&C++)。
?
在Java中有一些native方法,這些方法只有方法簽名但是沒有方法體。其實這些naive方法就是我們說的 java native interface。它提供了一個調用(invoke)的接口,然后用C或者C++去實現。
?
JNI概述
?
JVM封裝了各種操作系統實際的差異性的同時,提供了JNI技術,它是一種雙向的接口,使得開發者可以通過Java代碼調用到各種native的庫,反之亦然。所以JNI(Java Native Interface)能作為Java語言的一部分,她能夠作為粘合劑將Java應用和其他本地應用(C/C++,Delphi)集合在一起。
?
作為一個雙向的接口,JNI能支持兩種native代碼:native libraries 和native applications。
你能使用JNI去寫一些native methods去允許Java Applications能呼叫native libraries中的函數,native methods的具體實現是可能C,C++或者Delphi。
JNI也支持嵌入一個JVM實現到一個本地應用程序中去,去執行那些用Java語言編寫的的模塊.比如,一個C++編寫的瀏覽器利用內嵌的JVM去執行下載到本地的applet。
?
實現步驟:
?
1) 完成Java代碼,編寫好Java調用類。
?
2) 編譯你的Java類。
?
3) 用javah生成編譯好的class文件對應的C/C++ 函數的頭文件。
?
4) 實現頭文件中的函數原型,編寫native代碼。
?
5) 將native代碼編譯打包成DLL庫(win32)或共享庫(Linux)。
?
6) 將你的Java代碼跑起來
?
?
例子
?
1. 編寫Java代碼。
?
注意:
?
(1) 調用本地代碼的java方法,要設置成native的。
?
(2) 要使用System的LoadLibrary方法去加載包含本地方法實現的庫。
?
package eric.test; ?
??
public class JNITest { ?
? ? ??
? ? static { ?
? ? ? ? System.loadLibrary("JNITest"); ?
? ? } ?
? ? ??
? ? public static native void sayHelloWorld(String msg); ?
? ? ??
? ? public static void main(String[] args) { ?
? ? ? ? sayHelloWorld("Hello, world"); ?
? ? } ?
} ?
??
?
2. 編譯生成的class文件:JNITest.class
?
3. 在命令行下使用javah生成C/C++頭文件。在工程的bin目錄下輸入以下命令:
?
Cmd代碼:
?
javah -classpath . -jni eric.test.JNITest ?
?
將生成頭文件eric_test_JNITest.h,內容如下:
?
Cpp代碼:


/* DO NOT EDIT THIS FILE - it is machine generated */ ?
#include <jni.h> ?
/* Header for class eric_test_JNITest */ ?
??
#ifndef _Included_eric_test_JNITest ?
#define _Included_eric_test_JNITest ?
#ifdef __cplusplus ?
extern "C" { ?
#endif ?
/*?
?* Class: ? ? eric_test_JNITest ?
?* Method: ? ?sayHelloWorld?
?* Signature: (Ljava/lang/String;)V?
?*/ ?
JNIEXPORT void JNICALL Java_eric_test_JNITest_sayHelloWorld ?
? (JNIEnv *, jclass, jstring); ?
??
#ifdef __cplusplus ?
} ?
#endif ?
#endif ?
??
注意,在執行javah的時候,要輸入完整的包名和類名。否則在以后的測試調用過程中會發生java.lang.UnsatisfiedLinkError這個異常。
?
4. 實現C++代碼。在VS2008中創建一個Win32 project,類型為DLL。
?
將剛才生成的頭文件eric_test_JNITest.h拷到工程目錄下,并且在項目中導入到Header Files里面。打開StdAfx.h文件,在最后面添加:


#include "jni.h" ?
#include "eric_test_JNITest.h" ?

打開JNITest.cpp文件,在其中添加實現代碼。函數名為頭文件中定義的函數聲明。

#include <iostream> ?
using namespace std; ?
??
JNIEXPORT void JNICALL Java_eric_test_JNITest_sayHelloWorld ?
? (JNIEnv* env, jclass method, jstring param) ?
{ ?
? ? const char* pt = env->GetStringUTFChars(param, 0); ??
? ? cout << pt << " called by Java Native Interface" << endl; ??
} ?
?
其中,GetStringUTFChars是jre中提供的jni方法,用來得到java string的字符串。
?
5. 構建C++項目。會出現"Cannot open include file: 'jni.h': No such file or directory"的錯誤,解決方法是將以下文件拷貝到C++工程目錄下
%JAVA_HOME%\include\jni.h
%JAVA_HOME%\include\win32\jni_md.h
?
同時將頭文件eric_test_JNITest.h中的 #include <jni.h> 改為
?
01.#include "jni.h" ?
?
然后重新build,將在debug目錄下生成JNITest.dll文件。
?
6. 將dll文件復制到Java工程的bin目錄下(這個位置十分重要,否則會出現not found的異常),并運行程序
?
java eric.test.JNITest ?
?
將輸出結果"Hello, world called by Java Native Interface"。
========

jni java調用win32 dll的方法?


1 在java中寫好java需要的win32 dll中需要的函數說明 ,并編譯成功
?

?2 ?在win32 的cmd中,到java文件所在的目錄(eg: d:\java\isoline\com\util)下,調用命令:
?
? ? ?1)javac objectiveAnalyse.java ? 此時成功后,會在目錄d:\java\isoline\com\util下生成objectiveAnalyse.class文件
? ? ?(2) cmd轉當前目錄到d:\java\isoline ? javah -jni com.util.objectiveAnalyse ?,即可生成c++ dll所需要的com_util_objectiveAnalyse.h文件
?


3 ?此時 會在當前目錄下生成java需要的com_util_objectiveAnalyse.h文件,文件中產生了函數Java_PictureFactoryPlugin_GetDataPicture()
?
4 ? 手工改成java需要的包結構,如java需要 com_util 包結構,則改為:Java_com_util_PictureFactoryPlugin_GetDataPicture()
?
5 ?在cpp文件中實現:Java_com_util_PictureFactoryPlugin_GetDataPicture() 的功能即可。
?
6 生成win32 dll ,就可以被java調用 了
?
========

使用 J-Interop 在 Java 中調用WMI


有關WMI的小知識
Windows管理規范(WMI)是微軟對來自分布式管理任務組(DMTF)的基于Web的企業管理(WBEM)和通用信息模型(CIM)標準的實現。WMI用于訪問Windows系統、應用、網絡、設備等組件,并管理它們。連接到一臺機器通過DCOM進行管理。因此,有關DCOM的小知識將有助于本文的理解。你可以到MSDN了解有關WMI的更多細節。
J-Interop
市場上有一些在使用 JAVA 調用 WMI 的好庫,包括 J-Interop、JACOB-Project 和 J-Integra。其中,我更喜歡J-Interop,因為它是完全免費和開源的API。它提供了沒有任何依賴的純DCOM橋,完全用Java編寫的沒有任何JNI代碼。
使用WMI管理Windows服務
現在,來看一個使用JAVA調用WMI的例子。這個例子利用J-Interop的API使用Win32_Service類解釋WMI操作,將啟動和停止在這個例子中的窗口服務。
步驟1:連接到WBEM服務
下面的代碼示例顯示了使用J-Interop如何初始化DCOM會話,并連接到遠程DCOM服務使。它使用SWbemLocator對象連接到SWbemServices,SWbemServices對象提供對本地或遠程計算機WMI的訪問,它調用“ConnectServer”方法連接到SWbemServices。在本例中,提供管理員級別的用戶連接到遠程計算機。
JISessiondcomSession=JISession.createSession(domainName,userName,password);
dcomSession.useSessionSecurity(false);
?
JIComServercomServer=newJIComServer(valueOf("WbemScripting.SWbemLocator"),hostIP,dcomSession);
IJIDispatchwbemLocator=(IJIDispatch)narrowObject(comServer.createInstance().queryInterface(IID));
//parameterstoconnecttoWbemScripting.SWbemLocator
Object[]params=newObject[]{
? ? ? ? ? ? ? ? ? ? ? ? ? newJIString(hostIP),//strServer
? ? ? ? ? ? ? ? ? ? ? ? ? newJIString(win32_namespace),//strNamespace
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant.OPTIONAL_PARAM(),//strUser
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant.OPTIONAL_PARAM(),//strPassword
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant.OPTIONAL_PARAM(),//strLocale
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant.OPTIONAL_PARAM(),//strAuthority
? ? ? ? ? ? ? ? ? ? ? ? ? newInteger(0),//iSecurityFlags
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant.OPTIONAL_PARAM()//objwbemNamedValueSet
? ? ? ? ? ? ? ? ? ? ? ? ? };
?
JIVariantresults[]=wbemLocator.callMethodA("ConnectServer",params);
IJIDispatchwbemServices=(IJIDispatch)narrowObject(results[0].getObjectAsComObject());
(domainName=遠程計算機域名,hostIP=遠程計算機IP地址,用戶名=管理員級別的用戶,密碼=密碼)
第2步:獲取Win32_Service實例
一旦你獲得對SWbemServices對象的引用,就可以調用這個類的任何方法。其中WbemServices.InstancesOf方法獲得任何Win32類的實例。
也可以使用WMI查詢語言(WQL)達到同樣的目的,如下所示:
finalintRETURN_IMMEDIATE=0x10;
finalintFORWARD_ONLY=0x20;
Object[]params=newObject[]{
newJIString("SELECT*FROMWin32_Service"),
JIVariant.OPTIONAL_PARAM(),
newJIVariant(newInteger(RETURN_IMMEDIATE+FORWARD_ONLY))
};
JIVariant[]servicesSet=wbemServices.callMethodA("ExecQuery",params);
IJIDispatchwbemObjectSet=(IJIDispatch)narrowObject(servicesSet[0].getObjectAsComObject());
第三步:執行方法
現在,已得到Win32_Service類的實例,可采用下述代碼來調用同一類的方法,因為,它返回多個服務實例,要列舉它們以便獲取IJIDispatcher服務。
JIVariant newEnumvariant = wbemObjectSet.get("_NewEnum");
IJIComObject enumComObject = newEnumvariant.getObjectAsComObject();
IJIEnumVariant enumVariant = (IJIEnumVariant) narrowObject(enumComObject.queryInterface(IJIEnumVariant.IID));
?
Object[] elements = enumVariant.next(1);
JIArray aJIArray = (JIArray) elements[0];
?
JIVariant[] array = (JIVariant[]) aJIArray.getArrayInstance();
for (JIVariant variant : array) {
? ? IJIDispatch wbemObjectDispatch = (IJIDispatch) narrowObject(variant.getObjectAsComObject());
?
? ? JIVariant returnStatus = wbemObjectDispatch.callMethodA("StopService");
?
? ? System.out.println(returnStatus.getObjectAsInt());
}
現在,下面的代碼顯示了一個使用WMI啟動和停止Windows服務的完整Java類。
packagecom.wmi.windows;
?
importstaticorg.jinterop.dcom.core.JIProgId.valueOf;
importstaticorg.jinterop.dcom.impls.JIObjectFactory.narrowObject;
importstaticorg.jinterop.dcom.impls.automation.IJIDispatch.IID;
importjava.util.logging.Level;
importorg.jinterop.dcom.common.JIException;
importorg.jinterop.dcom.common.JIRuntimeException;
importorg.jinterop.dcom.common.JISystem;
importorg.jinterop.dcom.core.IJIComObject;
importorg.jinterop.dcom.core.JIArray;
importorg.jinterop.dcom.core.JIComServer;
importorg.jinterop.dcom.core.JISession;
importorg.jinterop.dcom.core.JIString;
importorg.jinterop.dcom.core.JIVariant;
importorg.jinterop.dcom.impls.automation.IJIDispatch;
importorg.jinterop.dcom.impls.automation.IJIEnumVariant;
?
publicclassServiceManager{
?
? ? ? ? ?privatestaticStringdomainName="";
? ? ? ? ?privatestaticStringuserName="administrator";
? ? ? ? ?privatestaticStringpassword="";
? ? ? ? ?privatestaticStringhostIP="127.0.0.1";
? ? ? ? ?privatestaticfinalStringwin32_namespace="ROOT\\CIMV2";
?
? ? ? ? ?privatestaticfinalintSTOP_SERVICE=0;
? ? ? ? ?privatestaticfinalintSTART_SERVICE=1;
?
? ? ? ? ?privateJISessiondcomSession=null;
? ? ? ??
? ? ? ? ?publicstaticvoidmain(String[]args){
? ? ? ? ? ? ? ? ?ServiceManagermanager=newServiceManager();
? ? ? ? ? ? ? ? ? manager.stopService(domainName,hostIP,userName,password,"MySql");//stopsaservicenamedMySql
? ? ? ? ?}
? ? ? ??
? ?publicvoidstartService(StringdomainName,Stringhostname,Stringusername,Stringpassword,StringserviceName){
? ? ? ? ? ? ? ? ?execute(domainName,hostname,username,password,serviceName,START_SERVICE);
? ? ? ? ?}
? ? ? ??
? ? publicvoidstopService(StringdomainName,Stringhostname,Stringusername,Stringpassword,StringserviceName){
? ? ? ? ? ? ? ? ?execute(domainName,hostname,username,password,serviceName,STOP_SERVICE);
? ? ? ? ?}
? ? ? ??
publicvoidexecute(StringdomainName,Stringhostname,Stringusername,Stringpassword,StringserviceName,intaction){
?
? ? ? ? ? ? ? ? ?try{
? ? ? ? ? ? ? ? ? ? ? ? ? IJIDispatchwbemServices=createCOMServer();
?
? ? ? ? ? ? ? ? ? ? ? ? ? finalintRETURN_IMMEDIATE=0x10;
? ? ? ? ? ? ? ? ? ? ? ? ? finalintFORWARD_ONLY=0x20;
? ? ? ? ? ? ? ? ? ? ? ? ? Object[]params=newObject[]{
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? newJIString("SELECT*FROMWin32_ServiceWHEREName='"+serviceName+"'"),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant.OPTIONAL_PARAM(),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? newJIVariant(newInteger(RETURN_IMMEDIATE+FORWARD_ONLY))
? ? ? ? ? ? ? ? ? ? ? ? ? };
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant[]servicesSet=wbemServices.callMethodA("ExecQuery",params);
? ? ? ? ? ? ? ? ? ? ? ? ? IJIDispatchwbemObjectSet=(IJIDispatch)narrowObject(servicesSet[0].getObjectAsComObject());
?
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariantnewEnumvariant=wbemObjectSet.get("_NewEnum");
? ? ? ? ? ? ? ? ? ? ? ? ? IJIComObjectenumComObject=newEnumvariant.getObjectAsComObject();
? ? ? ? ? ? ? ? ? ?IJIEnumVariantenumVariant=(IJIEnumVariant)narrowObject(enumComObject.queryInterface(IJIEnumVariant.IID));
?
? ? ? ? ? ? ? ? ? ? ? ? ? Object[]elements=enumVariant.next(1);
? ? ? ? ? ? ? ? ? ? ? ? ? JIArrayaJIArray=(JIArray)elements[0];
?
? ? ? ? ? ? ? ? ? ? ? ? ? JIVariant[]array=(JIVariant[])aJIArray.getArrayInstance();
? ? ? ? ? ? ? ? ? ? ? ? ? for(JIVariantvariant:array){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IJIDispatchwbemObjectDispatch=(IJIDispatch)narrowObject(variant.getObjectAsComObject());
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//Printobjectastext.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JIVariant[]v=wbemObjectDispatch.callMethodA("GetObjectText_",newObject[]{1});
? ? ??
========

?java 調用user32.dll 鎖定電腦

public interface Kernel32 extends Library { ?
? ? public boolean Beep(int FREQUENCY, int DURATION); ?
? ? public void Sleep(int DURATION); ?
} ?
public interface User32 extends Library { ?
? ? boolean LockWorkStation(); ?
} ?
??
public static void main(String[] args) { ?
? ? Kernel32 lib = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class); ?
? ? lib.Beep(698, 1500); ?
? ? lib.Sleep(500); ?
? ? lib.Beep(698, 500); ?
? ? User32 dll = (User32) Native.loadLibrary("user32", User32.class); ?
? ? dll.LockWorkStation(); ?
} ?
========

java調用.dll文件


一.在程序用jnative調用window的dll
1. ? 安裝
http://sourceforge.net/projects/jnative
解壓后得到3個文件:JNativeCpp.dll,libJNativeCpp.so,JNative.jar,其中:
JNativeCpp.dll ? ? 放在windows/system32目錄下
libJNativeCpp.so ? ?linux下使用
JNative.jar ? ? ? ? ?導入工程中
2. ? 使用
2.1. ? ? 加載dll文件
JNative可使用兩種方式加載dll文件:
a.使用System.loadLibrary加載,使用此方法可加載系統目錄中的dll文件。
b.可以先把dll文件復制到system32目錄下,使用文件前綴名作為參數來加載dll文件。使用System.load加載,此方法參數為dll文件全路徑名。
2.2. ? ? 調用函數
a、首先創建JNative對象:
JNative jnative = new JNative(dll文件名, 函數名);
b、設置返回值類型:
jnative.setRetVal(Type.INT);
c、設置參數
jnative.setParameter(0, Type.STRING, …); //設置第一個參數為字符串
jnative.setParameter(1, Type.INT, String.valueof(…)); ? ? ? //設置第二個參數為整數
d、執行
n.invoke();
e、獲取返回值
Integer.parseInt(jnative.getRetVal());
3.實例
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.HeapMemoryBlock;
public class Test {
? ? ? ?public static void main(String[] args) throws NativeException, IllegalAccessException {
? ? ? ?JNative v=new JNative("Kernel32.dll","GetModuleFileNameA");
? ? ? ? int i = 0;
? ? ? ? v.setRetVal(Type.INT);
? ? ? ? Pointer pName = new Pointer(new HeapMemoryBlock(1024));
? ? ? ?
? ? ? ? v.setParameter(i++, 0);//module handle
? ? ? ? v.setParameter(i++, pName);//pFileName
? ? ? ? v.setParameter(i++, 1024);//nSize
? ? ? ? v.setRetVal(Type.INT);
? ? ? ? v.invoke();
? ? ? ? int ret = Integer.parseInt(v.getRetVal());
? ? ? ? if (ret == 0) {
? ? ? ? ? ? // return "null";
? ? ? ? ? ? System.err.println(
? ? ? ? ? ? ? ? ? ? "GetModuleFileName failed!");
? ? ? ? } else {
? ? ? ? ? ?
? ? ? ? ? ? String path = pName.getAsString().substring(0,
? ? ? ? ? ? ? ? ? ? ret);
? ? ? ? ? ? pName.dispose();
? ? ? ? ? ? v.dispose();
? ? ? ? ? ? System.out.println("current process's path is:"+path);
? ? ? ? }
? ? }
?
}
?
?
4.注意:
在JNative中用了JDK1.5的一些特性,如枚舉、靜態引入等,所以在JDK1.4下是不能用的。
二.在程序用jawin調用window的dll
jawin 可以對dll中的方法進行調用,也可以調用com中的方法.內部還提供了一個工具,直接對 com組件導出成 java的類,個人認為很方便。
下面是我們作的一個測試,很順利便通過了。
1、下載jawin:http://jawinproject.sourceforge.net/。
2、配置:
? ? a.將jawin.jar放于%JAVA_HOME%/jre/lib/ext下 。
? ? b.將jawin.dll放于c:/winnt/system32下。否則將出現錯誤:COMException : no jawin in java.library.path;
? ? 也可將jawin.dll放于每個項目目錄下。
?
? ?c.至此在Editplus中調試Jawin/NJawin的例子,可以通過。 而在Eclipse中有時還會出上面的錯誤:COMException : no jawin in java.library.path。
? ?d.在Eclipse中,菜單->window->preference->Java->installed JREs 將原來的remove,重新建一個指到你的java sdk目錄。 ?ok了。
?3、程序測試:
?
import org.jawin.FuncPtr;
?
import org.jawin.ReturnFlags;
?
public class GfJawinTest {
?
? ? ? ?public static void main(String[] args) {
?
? ? ? ? ? ? ? try {
?
? ? ? ? ? ? ? ? ? ? ?FuncPtr msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");
? ? ? ? ? ? ? ? ? ? ?msgBox.invoke_I(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.CHECK_NONE);
? ? ? ? ? ? ? } catch (Exception e) {
? ? ? ? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ? ? }
? ? ? ?}
}
?
4.利用jawin調用com組件, 如word:
//創建word
import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;
public class CreateWord {
?
? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ?Ole32.CoInitialize();// ? ? ? ? ? ? ? ? ? 初始化
? ? ? ? ? ? ? ? ? ? ?DispatchPtr app = new DispatchPtr("Word.Application");// ? ? ? ? ? ? ? 創建word對象
? ? ? ? ? ? ? ? ? ? ?app.put("Visible",true); // ? ? ? ? ? ? ? ? ? ? 使word可見
? ? ? ? ? ? ? ? ? ? ?DispatchPtr docs=(DispatchPtr)app.get("Documents"); // ? ? ? ? ? ? ? ? 獲得document對象集合
? ? ? ? ? ? ? ? ? ? ?DispatchPtr doc=(DispatchPtr)docs.invoke("Add"); ?// ? ? ? ? ? ? ? ? ? ?新增一個文檔
? ? ? ? ? ? ? ? ? ? ?app.invoke("Activate"); // ? ? ? ? ? ? ? ? ? ?激活當前文檔
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ?DispatchPtr objTextFont=(DispatchPtr)((DispatchPtr)doc.get("Content")).get("Font");
// ? ? ? ? ? ? ? ? ? 取得Font對象
? ? ? ? ? ? ? ? ? ? ?objTextFont.put("Name","黑體");
// ? ? ? ? ? ? ? ? ? 設置字體
? ? ? ? ? ? ? ? ? ? ?objTextFont.put("Size","48");
// ? ? ? ? ? ? ? ? ? 設置字號
? ? ? ? ? ? ? ? ? ? ?DispatchPtr docSelection=(DispatchPtr)app.get("Selection");
// ? ? ? ? ? ? ? ? ? 取得Selection對象
? ? ? ? ? ? ? ? ? ? ?docSelection.invoke("TypeText","Jawwintesttext!/nJawin測試文本。");
// ? ? ? ? ? ? ? ? ? 使用TypeText方法添加文本
? ? ? ? ? ? ? ? ? ? ?doc.invoke("SaveAs","d://jawintest.doc");
// ? ? ? ? ? ? ? ? ? 保存文檔(保存在C盤根目錄下)
? ? ? ? ? ? ? ? ? ? ?doc.invoke("Close");
// ? ? ? ? ? ? ? ? ? 關閉當前文檔,去掉前面的注釋符并重新編譯后可生效
? ? ? ? ? ? ? ? ? ? ?app.invoke("Quit");
// ? ? ? ? ? ? ? ? ? 退出Word,去掉前面的注釋符并重新編譯后可生效
?
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ?Ole32.CoUninitialize(); // ? ? ? ? ? ? ? ? ? ? 釋放對象
? ? ? ? ? ? ? } catch (Exception e) {
? ? ? ? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ? ? }
? ? ? ?}
?
}
?
//打開word
import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;
?
public class OpenWord {
? ? ? ?public static void main(String[] args) {
? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ?Ole32.CoInitialize();
? ? ? ? ? ? ? ? ? ? ?DispatchPtr app = new DispatchPtr("Word.Application");
? ? ? ? ? ? ? ? ? ? ?app.put("Visible", true);
? ? ? ? ? ? ? ? ? ? ?DispatchPtr docs = (DispatchPtr) app.get("Documents");
? ? ? ? ? ? ? ? ? ? ?DispatchPtr doc = (DispatchPtr) docs.invoke("Open", "d://word.doc");
? ? ? ? ? ? ? ? ? ? ?Ole32.CoUninitialize();
? ? ? ? ? ? ? } catch (Exception e) {
? ? ? ? ? ? ? ? ? ? ?e.printStackTrace();
? ? ? ? ? ? ? }
? ? ? ?}
}
?
//調用word中的另存為,保存為.html
import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;
?
public class Word2Html {
? ? ? ?public static void main(String[] args) {
?
? ? ? ? ? ? ? String path = "e://17001939578.doc";
? ? ? ? ? ? ? int iPos = path.lastIndexOf(".");
? ? ? ? ? ? ? String fileExtName = path.substring(iPos + 1);
? ? ? ? ? ? ? String fileMainName = path.substring(0, iPos);
? ? ? ? ? ? ? fileExtName = fileExtName.toLowerCase();
? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? ?Ole32.CoInitialize();
? ? ? ? ? ? ? ? ? ? ?// 初始化
? ? ? ? ? ? ? ? ? ? ?DispatchPtr app = new DispatchPtr("Word.Application");
? ? ? ? ? ? ? ? ? ? ?// 創建word對象
? ? ? ? ? ? ? ? ? ? ?app.put("Visible", false);
? ? ? ? ? ? ? ? ? ? ?// 設置word不可見
? ? ? ? ? ? ? ? ? ? ?DispatchPtr docs = (DispatchPtr) app.get("Documents");
? ? ? ? ? ? ? ? ? ? ?// 取得Documents對象
? ? ? ? ? ? ? ? ? ? ?DispatchPtr doc = (DispatchPtr) docs.invoke("Open", path);
? ? ? ? ? ? ? ? ? ? ?// 打開指定的word文件
? ? ? ? ? ? ? ? ? ? ?doc.invoke("SaveAs", fileMainName + ".html");
? ? ? ? ? ? ? ? ? ? ?// 另存為HTML文件
? ? ? ? ? ? ? ? ? ? ?app.invoke("quit");
? ? ? ? ? ? ? ? ? ? ?// 關閉word
? ? ? ? ? ? ? ? ? ? ?Ole32.CoUninitialize();
? ? ? ? ? ? ? ? ? ? ?// 釋放對象
? ? ? ? ? ? ? ? ? ? ?System.out.println("/n轉換完成!");
? ? ? ? ? ? ? ? ? ? ?System.out.println("/n文件名:" + fileMainName + ".html");
? ? ? ? ? ? ? } catch (Exception e) {
? ? ? ? ? ? ? ? ? ? ?System.out.println("/n該文件不存在!或者其他錯誤(如:運行環境問題)!");
? ? ? ? ? ? ? }
? ? ? ?}
}
?

========

12 其他鏈接

http://www.cnblogs.com/cy163/category/223619.html
最近在做實驗希望實現基于JNI技術在Java中使用 Slex.dll
Calling C Library Routines from Java
使用 SWIG 實現 Java 調用 C++ DLL
一種實現 Java調用C++的DLL的方法

總結

以上是生活随笔為你收集整理的java 调用win32 api 学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

99操视频 | 精品久久国产 | 一区二区久久 | 日韩二三区 | 最近中文字幕国语免费av | 国产无套精品久久久久久 | 免费看的黄色的网站 | 99久热在线精品视频成人一区 | 亚洲欧美色婷婷 | 日韩在线免费视频观看 | 国产视频97| 97超碰精品| 91麻豆国产 | 91丨九色丨国产丨porny精品 | 精品国产乱码一区二 | 中文成人字幕 | 国产一区在线看 | 九精品| 黄色大片免费播放 | 精品国产亚洲一区二区麻豆 | 81精品国产乱码久久久久久 | 国产精品av久久久久久无 | 日日干av| 在线成人免费电影 | 国产视频精品久久 | 亚洲激情在线播放 | 亚洲精品在线观 | 中文在线免费一区三区 | 日日碰夜夜爽 | 日韩大片在线免费观看 | 亚洲小视频在线观看 | 欧美视频99| 在线观看国产福利片 | 久久久久久99精品 | 97人人艹| 超碰伊人网 | 亚洲免费资源 | 97精品国产91久久久久久 | 在线电影日韩 | 国产在线视频一区二区 | 亚洲视频在线免费观看 | 久久字幕 | 韩日精品视频 | 国产999精品久久久久久绿帽 | 国产精品丝袜 | 久久综合五月天婷婷伊人 | 91九色成人蝌蚪首页 | av电影av在线| 久久伊99综合婷婷久久伊 | 日本一区二区免费在线观看 | 欧美精品第一 | 伊人伊成久久人综合网站 | 久久综合狠狠综合 | 九色在线 | 欧美另类高清 | 亚洲视频免费在线观看 | 手机av在线免费观看 | 在线观看911视频 | 午夜视频亚洲 | 一区二区网 | 久久久亚洲精华液 | 欧美日韩国内在线 | 中文字幕五区 | 欧美性性网 | 亚洲激情视频在线 | 中文字幕一区二区三区乱码不卡 | 麻豆精品视频在线 | 国产又黄又爽又猛视频日本 | 亚洲最大av在线播放 | 国产a网站 | 国产国产人免费人成免费视频 | 国产一区精品在线 | 日韩激情片在线观看 | 国产第一福利 | 国产一二三在线视频 | av视屏在线播放 | 国产精品粉嫩 | a特级毛片 | av一区二区三区在线播放 | 中文字幕久久久精品 | 99精品免费久久久久久久久日本 | 亚洲激情六月 | 日韩精品一区二区免费视频 | 午夜视频免费 | 有码中文在线 | 国产精品久久三 | 欧美激情第28页 | 亚洲精品www久久久久久 | 日b黄色片 | 中文字幕在线视频国产 | 久草在线中文888 | 少妇性bbb搡bbb爽爽爽欧美 | 免费黄色a网站 | 精品国产色| 在线 国产 日韩 | 国产一区在线播放 | 亚洲黄色小说网址 | 成人app在线播放 | 成人在线免费小视频 | 99亚洲精品 | 日本久久精品 | 亚洲乱码中文字幕综合 | 日韩经典一区二区三区 | 91精品国产欧美一区二区 | 一级一片免费观看 | 奇米网777 | 亚洲国产伊人 | 江苏妇搡bbbb搡bbbb | 国产成人精品一区二区三区在线 | 国产破处视频在线播放 | 狠狠色香婷婷久久亚洲精品 | 99精品乱码国产在线观看 | 欧美一级特黄aaaaaa大片在线观看 | 深爱五月激情五月 | 97人人澡人人爽人人模亚洲 | 中文字幕在线观看亚洲 | 在线国产99| 久久久国产精品电影 | 在线观看网站黄 | 草久草久| 国产精品 日韩 | 91看片在线播放 | 在线成人观看 | 国产一区成人 | 黄色美女免费网站 | 九九日韩 | 欧洲精品码一区二区三区免费看 | 欧美成年黄网站色视频 | 日韩欧美一区二区三区在线观看 | 在线观看国产高清视频 | 国色天香av | 天天操网站 | 97视频亚洲 | 在线 高清 中文字幕 | 一级c片 | 欧美精品久久久久久久亚洲调教 | 人人玩人人添人人澡超碰 | 久久免费中文视频 | 天天爽人人爽夜夜爽 | 91超在线| 人人爽久久涩噜噜噜网站 | 亚洲欧美日韩国产精品一区午夜 | 国产一级片免费视频 | 国产精品资源在线观看 | 亚洲欧美偷拍另类 | 久久黄色小说 | 亚洲免费av电影 | 五月婷婷综合在线观看 | 中文字幕乱视频 | 欧美精品久久久久久久久久丰满 | 亚洲国产资源 | 日韩一级片网址 | 日韩小视频网站 | 波多野结衣在线观看视频 | 日本一区二区三区免费看 | 波多野结衣日韩 | 91黄色在线视频 | 欧美精品乱码久久久久久按摩 | 高清日韩一区二区 | 国产亚洲成人精品 | 国产在线第三页 | 久久这里只有精品首页 | 亚洲午夜精品久久久久久久久久久久 | 97视频资源| 亚洲做受高潮欧美裸体 | 亚洲精品视频在线观看网站 | 日韩在线国产精品 | 国产高清久久久久 | 99国产精品免费网站 | 亚洲色图 校园春色 | 国产一区在线视频播放 | 欧美天堂视频在线 | 亚洲第一av在线播放 | 欧美一二三视频 | 在线视频观看你懂的 | 最新成人在线 | 久久97精品 | 亚洲成免费 | 久久综合成人网 | 91成人短视频在线观看 | 欧美色图亚洲图片 | 亚洲最大成人免费网站 | 一本一本久久a久久精品综合妖精 | 欧美污在线观看 | 欧美日韩国产在线精品 | 婷婷久久一区二区三区 | 欧美大片大全 | 精品视频999| 精品专区一区二区 | 国产精品每日更新 | 久久久精品在线观看 | 精品在线99 | 日韩欧美高清在线观看 | 久久久视频在线 | 深夜激情影院 | 日韩免费在线视频 | 97色在线观看 | 免费a视频在线观看 | 狠狠色丁香婷婷综合视频 | 欧美二区在线播放 | 久久三级毛片 | 色a综合 | 婷婷 中文字幕 | 精品国产99 | 免费观看的av网站 | 亚洲伦理一区 | 狠狠干五月天 | 96精品视频 | 国产资源精品在线观看 | 91成人久久| 中文字幕一区二区三区乱码在线 | 人人插人人玩 | 丁香视频在线观看 | 国产一区二区播放 | 中文字幕在线观看不卡 | av在线专区| av一区二区三区在线 | 中文字幕在线看视频国产中文版 | 91看片在线免费观看 | 日本性高潮视频 | 欧美成人日韩 | 色五丁香| 日韩系列 | 日韩激情视频在线观看 | 色偷偷av男人天堂 | 日韩高清激情 | 亚洲欧美国产精品va在线观看 | 在线看国产精品 | www.香蕉视频在线观看 | 国产自产高清不卡 | 2022国产精品视频 | 国产成人在线观看免费 | 免费中文字幕视频 | 精品久久久久久综合 | 特黄特色特刺激视频免费播放 | 在线观看91av | 国产99久久久国产 | 久久成人资源 | 国产操在线| 波多野结衣在线视频一区 | 中文在线亚洲 | 99久久99久久免费精品蜜臀 | 色婷婷精品大在线视频 | 色妞久久福利网 | 亚洲无人区小视频 | 国产永久网站 | 久久免费国产精品1 | 欧美日韩在线播放一区 | 人人干人人干人人干 | 欧美成人影音 | 久久久久久麻豆 | 国产精品 999 | 99在线热播精品免费99热 | 日韩黄色av网站 | 中文字幕乱码电影 | 99久久精品免费看国产免费软件 | 亚洲乱码国产乱码精品天美传媒 | 激情av在线资源 | 亚洲激情综合 | 日韩在线网址 | 亚洲三区在线 | 超碰人人乐 | 91成年人在线观看 | 韩国av免费看 | 九九久久国产 | 午夜黄色影院 | 美女视频黄是免费的 | 手机av在线网站 | 国产小视频在线免费观看 | 91麻豆精品国产91久久久使用方法 | 亚洲黄色一级视频 | 国产123av| 亚洲乱码在线观看 | 免费在线黄 | 久久调教视频 | 国产又黄又猛又粗 | av网站有哪些 | 欧美日韩国产二区三区 | 国产亚州精品视频 | 日韩视频免费看 | 国产成人精品日本亚洲999 | 免费特级黄色片 | 欧美日韩国产在线 | 国产亚洲婷婷免费 | 成人资源在线观看 | 99re久久资源最新地址 | 日韩毛片在线播放 | 欧美日韩视频 | 色狠狠综合天天综合综合 | 免费成人黄色 | 九九九九精品 | 九九热精品视频在线观看 | 色妞久久福利网 | 国产高清小视频 | 黄污在线看 | 98超碰在线 | 国产美女免费视频 | 丁香视频五月 | 手机在线黄色网址 | av在线官网 | 狠狠色丁香婷婷综合最新地址 | 精品久久久99 | 欧美亚洲三级 | 玖草影院 | 中国一级片免费看 | 久久视频99 | 亚洲综合视频在线播放 | 特级a老妇做爰全过程 | 日韩免费观看高清 | 激情欧美丁香 | 五月激情久久久 | 成片免费观看视频大全 | 插久久| 免费视频久久久久 | 五月天婷婷免费视频 | 日韩av免费观看网站 | 欧洲视频一区 | 在线观看视频99 | 中文一区在线观看 | 2019天天干夜夜操 | 中文字幕有码在线观看 | 黄色资源在线 | 一级电影免费在线观看 | 国产在线观看h | 五月婷婷在线视频观看 | 欧美综合在线视频 | 精品免费视频123区 午夜久久成人 | 久久免费电影网 | 狠狠操精品 | 三级黄色在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 狠狠狠干狠狠 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 精品久久久久久亚洲综合网站 | 九九免费在线观看视频 | 亚洲精品在线视频网站 | 全黄网站| 黄色一级在线视频 | 五月婷久久 | 日日日干| 天天人人| 久久久在线视频 | 欧美久久电影 | 免费看久久 | 久久久婷 | 一本色道久久综合亚洲二区三区 | 99久久日韩精品视频免费在线观看 | www.夜夜骑.com | 精品久久一区二区三区 | 国产福利精品一区二区 | 99久久激情视频 | 婷婷综合影院 | 久久在线影院 | 99re视频在线观看 | 欧美在线不卡一区 | 日韩大片在线看 | 欧美孕妇与黑人孕交 | 福利视频网址 | 亚洲国产精品推荐 | 高清精品久久 | 国产精品毛片一区视频播 | 狠狠狠的干 | 国产麻豆视频免费观看 | 免费在线观看91 | 又污又黄网站 | 亚洲激情中文 | 日本中文一区二区 | 国产精品短视频 | 在线色亚洲 | 啪啪小视频网站 | 国产精品麻豆一区二区三区 | 91中文字幕网 | 色综合天天天天做夜夜夜夜做 | 成人97人人超碰人人99 | 日韩欧美一区二区三区黑寡妇 | 久久久久99精品成人片三人毛片 | 2022久久国产露脸精品国产 | 中文字幕欲求不满 | 欧美国产日韩在线观看 | 97在线影院 | 欧美三级在线播放 | 最近中文字幕完整高清 | 日韩电影在线观看一区 | 一二区av | 国产精品完整版 | 亚洲91网站| 国产精品专区h在线观看 | 亚洲h在线播放在线观看h | 欧美人操人 | 日韩精品一区二区不卡 | 国内精品久久天天躁人人爽 | 最新成人av| www视频在线播放 | 国产成人精品一区二 | 亚洲精品乱码久久久久久高潮 | 久久第四色 | 精品一区二区免费在线观看 | 国产免费大片 | 四虎国产| 国产精品久久久久久久久毛片 | a天堂最新版中文在线地址 久久99久久精品国产 | 在线观看 国产 | 成年人国产在线观看 | 免费在线观看污网站 | 久久96国产精品久久99软件 | 高清在线一区 | 在线播放第一页 | 亚洲va欧美va人人爽 | 水蜜桃亚洲一二三四在线 | 一级欧美黄 | 三级av在线播放 | 岛国av在线免费 | 91久久国产露脸精品国产闺蜜 | 99色在线观看 | 日韩中文字幕视频在线观看 | 久久er99热精品一区二区 | 久久婷婷一区二区三区 | 亚洲人人精品 | 国产a网站 | 在线天堂8√ | 四虎国产视频 | 天天干夜夜操视频 | 日韩在线电影 | 久久免费精品视频 | 丝袜制服综合网 | 中文字幕色网站 | 9999亚洲 | 国产色网| 在线看污网站 | 九九精品无码 | 日韩成人在线免费观看 | 在线视频一区二区 | 国产亚洲日 | 日韩在线网 | 中国精品一区二区 | 国产一区私人高清影院 | 亚洲激情在线视频 | 日本中文字幕在线电影 | 国产精品刺激对白麻豆99 | 黄色天堂在线观看 | 国产a级片免费观看 | 99色网站| 国产精品一区二区三区在线播放 | 中文字幕亚洲精品在线观看 | 九九热在线精品视频 | 午夜婷婷综合 | 免费观看完整版无人区 | 欧美韩国日本在线 | 国产美女精品 | 黄色片免费看 | 成人一级视频在线观看 | 国产手机视频精品 | 色综合久久久久综合体桃花网 | 国产区精品在线 | 特级西西444www大精品视频免费看 | 日韩欧美99 | a久久久久久 | 欧美日韩在线第一页 | 在线观看成人小视频 | 色婷婷久久久综合中文字幕 | 天天射天天操天天干 | 人人插人人草 | 国产成人在线免费观看 | 日韩一区在线免费观看 | 欧美激情精品久久久 | 亚洲国产精品500在线观看 | 91免费网站在线观看 | 成人9ⅰ免费影视网站 | 99免费在线视频 | 国产精品久久久久久久久久妇女 | 国产高清视频在线播放 | 99视频偷窥在线精品国自产拍 | 婷婷精品视频 | 五月天色站 | 国产高清不卡一区二区三区 | 在线成人高清电影 | 欧美日韩一区久久 | 国产九九九九九 | 亚洲精品一区二区三区在线观看 | 免费在线观看av网址 | 亚洲国产日韩在线 | 午夜美女网站 | 日日麻批40分钟视频免费观看 | 狠狠色丁香婷婷综合视频 | www免费网站在线观看 | 在线观看av不卡 | 婷婷丁香久久五月婷婷 | 四虎永久精品在线 | 亚洲人久久久 | 91丨porny丨九色 | 亚洲国产手机在线 | 五月婷婷爱 | 中文字幕在线观看2018 | 国产91免费观看 | 国产成在线观看免费视频 | 在线视频日韩欧美 | 亚洲精品午夜视频 | 亚洲激情婷婷 | 99热精品免费观看 | 亚洲激情 在线 | 激情久久综合 | 91精品啪在线观看国产线免费 | 五月综合婷 | 青青河边草观看完整版高清 | 天天爱天天操天天爽 | 亚洲一区视频免费观看 | 免费黄色a级毛片 | 超级碰碰碰碰 | 国产成人精品999在线观看 | 国产一区二区高清不卡 | av先锋中文字幕 | 国产a级片免费观看 | 欧美一区二区精品在线 | 国产精品久久久久久久久久白浆 | 国产成人精品999在线观看 | 日韩色一区二区三区 | 精品一区 在线 | 探花视频在线观看免费版 | 精品久久久久久一区二区里番 | 国产原厂视频在线观看 | 亚洲成人免费 | 色婷婷av一区二 | 免费观看第二部31集 | 中文字幕在线观看免费高清完整版 | 成人久久18免费网站图片 | 91精品日韩 | 欧美在线视频一区二区三区 | 天天爽综合网 | 97精品国产97久久久久久免费 | av中文字幕第一页 | 99免费精品 | 久久免费国产精品 | 精品麻豆 | 人人射av | 狠狠干干 | 久久黄色美女 | 国精产品999国精产品视频 | 欧美极品xxxxx| www激情网 | 婷婷色婷婷 | 国产黄色片免费观看 | 国产精品免费在线播放 | 欧洲精品码一区二区三区免费看 | 国产又粗又硬又长又爽的视频 | 麻豆国产精品永久免费视频 | 在线播放av网址 | 欧美精品首页 | 国产美女精品视频免费观看 | 视频福利在线观看 | 97视频在线免费观看 | 欧美视频在线观看免费网址 | 国产精品亚洲视频 | 伊人五月在线 | 成人免费在线观看av | 久久草av | 日本黄色免费播放 | 狠狠操精品 | 久久久久国产视频 | 亚洲精品在线电影 | 日韩在线视频观看免费 | 国产精品 中文在线 | 欧美精彩视频在线观看 | 手机av看片 | 成人午夜精品 | 成人在线免费观看网站 | 国产亚洲激情视频在线 | 天天操天天干天天爱 | 91麻豆精品国产91久久久久久 | av中文字幕剧情 | 国产理伦在线 | 激情五月五月婷婷 | 色婷婷综合久久久中文字幕 | 欧美大码xxxx | 久久丁香 | 国产精品青青 | 国产精品一区二区在线免费观看 | 久草免费在线 | av在线进入| 色综合天天爱 | 亚洲国产免费 | 国产99久久 | 日韩大片在线免费观看 | 日日操夜 | 日韩免费在线一区 | 五月婷婷开心中文字幕 | 亚洲一级电影视频 | 中文字幕一二 | 日韩欧美一区二区三区在线 | 久久草av| 亚洲国产精品久久久久婷婷884 | 日韩免费三区 | 国产美女精品人人做人人爽 | 人人澡人人舔 | 久久一级片 | 欧美日韩免费视频 | 成人一区二区三区在线观看 | 日韩在线免费小视频 | 99色在线观看 | 免费激情在线电影 | av大全在线看 | 国产97色 | 高清中文字幕 | 人人插人人费 | 成人视屏免费看 | 成年在线观看 | 精品国产欧美 | 欧美一级性生活视频 | 开心激情网五月天 | 91喷水 | 亚洲一级电影在线观看 | 日日综合 | 日韩在线观看高清 | 精品嫩模福利一区二区蜜臀 | 香蕉视频网址 | 欧美亚洲国产一卡 | av免费线看 | 亚洲综合在线五月天 | 久久综合精品一区 | 天天天干天天射天天天操 | 美女福利视频在线 | 久久96国产精品久久99软件 | 国产91对白在线播 | 国产一区在线观看免费 | 免费视频久久 | 久久艹国产视频 | 国内精品久久久 | 欧美日韩国产综合网 | 成人免费在线观看av | 欧美疯狂性受xxxxx另类 | 1区2区3区在线观看 三级动图 | 久久免费av| 激情综合亚洲 | 在线色亚洲 | 国产高清在线免费观看 | 正在播放国产精品 | 激情综合五月天 | 免费视频在线观看网站 | 亚州激情视频 | 欧美日韩国产一区二 | 园产精品久久久久久久7电影 | 国产va精品免费观看 | 午夜精品一区二区三区可下载 | 在线观看视频一区二区三区 | 久久兔费看a级 | 免费观看国产精品视频 | 狠狠狠色丁香综合久久天下网 | 国产九色视频在线观看 | 91亚洲狠狠婷婷综合久久久 | 日韩av线观看 | 国产成人精品av | 香蕉视频色 | 亚洲第一av在线播放 | 99免费精品 | 国产中文字幕一区 | 在线韩国电影免费观影完整版 | 亚洲欧美国产精品 | 国产一区免费在线观看 | 超黄视频网站 | 国产第一页在线观看 | 国产在线观看免费观看 | 欧美激情精品久久久久久 | 国产无套精品久久久久久 | 亚一亚二国产专区 | 国产精品女主播一区二区三区 | 亚洲国产一区av | 午夜色大片在线观看 | 色婷婷午夜 | 日韩高清av在线 | 69夜色精品国产69乱 | 99久久99视频只有精品 | 国产精品99久久久久 | 天天色天天综合网 | 一区二区三区视频网站 | 午夜视频在线瓜伦 | 天天av在线播放 | 天天操 夜夜操 | 亚洲黄色免费网站 | 日韩精品视频免费在线观看 | 国产午夜精品一区二区三区欧美 | 激情久久综合 | 91激情在线视频 | 亚洲人成人99网站 | 色在线网| 日韩视 | 欧美日韩中文字幕综合视频 | 中文字幕三区 | 精品亚洲成人 | 成人黄色电影免费观看 | 香蕉在线视频播放网站 | 色婷婷综合久久久 | 在线视频欧美日韩 | 国产精品国产亚洲精品看不卡 | 黄色91在线| 在线天堂8√ | 五月天av在线 | 91在线操 | 黄色com| 久草在线免费看视频 | 欧美精品久久久久 | 激情中文字幕 | 在线黄色毛片 | 久久精品视频免费观看 | 深夜免费小视频 | 久久国产一区二区三区 | 91资源在线观看 | 在线观看黄色免费视频 | 亚洲精品视频在线观看免费视频 | 欧洲精品亚洲精品 | 嫩嫩影院理论片 | 成人久久影院 | 欧美久久久久久 | 亚洲精品福利在线观看 | 国产精品 国内视频 | 久久五月婷婷丁香社区 | 久久久久国产成人精品亚洲午夜 | 女人久久久久 | 国产精品露脸在线 | 深爱激情婷婷网 | 91九色porny在线 | 91在线看网站 | 亚洲91av| 干 操 插| 久久久鲁 | 久要激情网| 日韩成人精品 | 国产精品a久久久久 | 欧美国产日韩在线视频 | 中文字幕在线视频第一页 | 丁香六月婷婷综合 | 国产资源在线视频 | 国产在线精品一区二区三区 | 国产免费一区二区三区最新 | 不卡电影一区二区三区 | 6080yy精品一区二区三区 | 国产精品嫩草55av | av看片网址 | 欧美一区二区精美视频 | 9在线观看免费 | 亚洲影视资源 | 国产精品 中文在线 | 在线观看91视频 | 六月丁香婷婷久久 | 91成版人在线观看入口 | 久久狠狠一本精品综合网 | aⅴ视频在线| 99视频在线观看一区三区 | 91香蕉视频在线 | 91精品视频导航 | 精品久久精品 | av电影中文字幕在线观看 | 九色91在线视频 | 国产精品美女久久 | 亚洲国产精品资源 | 欧美久久久久久久 | 天天色天天射天天综合网 | www.亚洲精品视频 | 玖操 | 久久影视中文字幕 | 久热av | 国产成人av在线 | 99av国产精品欲麻豆 | 国产中文字幕亚洲 | 久草综合在线观看 | 亚洲最大在线视频 | 免费观看性生活大片3 | 狠狠久久 | 久久久久免费网 | 国产精品久久电影观看 | 中文字幕在线观看第二页 | 精品国产一区二区在线 | 在线观看成人一级片 | 色在线中文字幕 | 亚洲精品a区 | 九九热免费视频在线观看 | 国产一级性生活 | 国产精品自产拍在线观看中文 | 国产精品18久久久久久首页狼 | 国产一二区视频 | 亚洲婷婷网 | 在线中文字幕av观看 | 黄色av电影在线观看 | 波多野结衣最新 | 亚洲永久av | 日韩一区二区三区在线看 | 亚州av一区 | 中文在线免费视频 | 99精品视频免费全部在线 | 日韩在线视频播放 | 国产午夜精品av一区二区 | 亚洲美女精品区人人人人 | 97超碰精品 | 麻豆手机在线 | 免费色视频网址 | 国产高清视频在线免费观看 | 婷婷色吧 | 黄p网站在线观看 | 国产69精品久久99的直播节目 | 蜜臀av性久久久久av蜜臀三区 | 99re久久资源最新地址 | 国产精品久久久久久久av大片 | 日韩精品视频在线免费观看 | 免费看三级黄色片 | 日本午夜在线亚洲.国产 | 91丨九色丨91啦蝌蚪老版 | 亚洲精品美女视频 | 麻豆影视在线免费观看 | 最近中文国产在线视频 | 香蕉色综合 | av高清网站在线观看 | 久久资源总站 | 天天做天天爱夜夜爽 | 精品一区久久 | 天天插日日操 | 在线观看国产 | 久久国产精品视频观看 | 亚欧日韩成人h片 | 欧美三级高清 | 日韩视频免费在线观看 | 日韩免费在线观看视频 | 久久久www成人免费毛片麻豆 | 久久国产欧美日韩 | 一区二区三区视频网站 | 视频在线观看入口黄最新永久免费国产 | 一区二区三区日韩在线 | 99热在线精品观看 | 国产在线观看高清视频 | 成av人电影| 最近中文字幕完整高清 | 人人澡人人添人人爽一区二区 | 911在线| 丁香花在线观看免费完整版视频 | 日韩精品久久久久久 | 国产精品久久毛片 | 少妇搡bbbb搡bbb搡忠贞 | 欧美激情视频免费看 | 久久久激情网 | 日本中文字幕网址 | 精品国产一区二区三区久久影院 | 国产福利在线免费观看 | 午夜成人免费电影 | 久久天天躁狠狠躁夜夜不卡公司 | 久久国产精品免费视频 | 亚洲色图色 | 国产一级片播放 | 九九综合在线 | 免费av一级电影 | 在线观看日韩 | 狠狠干2018| 中文字幕在线观看视频网站 | 国产精品淫片 | 91系列在线观看 | 香蕉视频在线免费看 | 国内精品久久久久国产 | 欧美午夜精品久久久久久浪潮 | 国产精品久久久久久久久久久久冷 | 色av资源网 | 日本中出在线观看 | 91在线精品播放 | 国产永久免费 | 又黄又爽又刺激的视频 | 在线免费观看一区二区三区 | 国产成人精品一区二区在线观看 | 麻豆91在线观看 | 97精品国自产拍在线观看 | 国产色a在线观看 | 日韩mv欧美mv国产精品 | 久久伊人爱 | 在线看福利av | 亚洲黄色av网址 | 精品国产伦一区二区三区观看说明 | 日韩91av | 成人黄色在线看 | 视频在线观看入口黄最新永久免费国产 | 99视频黄| 国产精品久久久久久久久岛 | 免费视频18| 天天爽天天摸 | 午夜精品一区二区三区在线视频 | 日日摸日日碰 | 久草在线免费在线观看 | 婷婷亚洲最大 | 亚洲精选视频免费看 | 丁香网婷婷| 中文字幕91视频 | 久久99国产视频 | 超碰在线99 | 国产精品久久久久高潮 | 五月天综合网站 | 国产小视频你懂的在线 | 中文字幕人成乱码在线观看 | 久草精品视频在线观看 | 亚洲成人av电影在线 | 精品一区中文字幕 | 99产精品成人啪免费网站 | 999久久久久 | 在线看片成人 | 国产69久久久欧美一级 | 波多野结衣资源 | 午夜美女福利 | 日本视频网 | 91视频观看免费 | 在线视频 一区二区 | 91在线精品秘密一区二区 | 欧美日韩一区二区三区免费视频 | 久久综合操 | 天天色天天操综合网 | 欧美日韩亚洲国产一区 | 国产精品一区二区在线 | 国产视频精品免费 | 久久久网页 | 黄色亚洲在线 | 国产在线观看xxx | 国产又粗又长的视频 | 国产精品网站 | 欧美成a人片在线观看久 | 日韩91精品 | 激情校园亚洲 | 免费观看性生活大片 | 麻豆av一区二区三区在线观看 | 在线观看视频日韩 | 精品自拍sae8—视频 | www.久久免费| 免费a网址 | 欧美 日韩精品 | 夜夜爱av| 99热超碰| 国产精品手机看片 | 免费在线观看av网站 | 99av国产精品欲麻豆 | 91污污视频在线观看 | 日本午夜在线观看 | 高清不卡毛片 | 成人影片在线免费观看 | 国产黑丝一区二区三区 | 91看片看淫黄大片 | 久草免费在线观看视频 | 久久av免费观看 | 国产黄色精品网站 | 亚洲一级黄色 | 1024在线看片 | 91在线小视频| 成人天堂网 | 天天操夜操视频 | 丁香视频全集免费观看 | 波多野结衣综合网 | 日韩艹| 97av.com| 欧美日韩精品免费观看视频 | 国产在线永久 | 亚洲精品在线视频观看 | 九九视频免费在线观看 | 久久久国产精品电影 | 欧美与欧洲交xxxx免费观看 | 日韩成人免费电影 | 亚洲成人资源 | 中文字幕免费高清在线观看 | 视频二区在线 | 在线观看爱爱视频 | 国产第一页在线播放 | 久久香蕉电影 | 国产精品99久久久久久宅男 | 亚洲精欧美一区二区精品 | 99视频免费观看 | 国产一级久久久 | 成年人黄色免费网站 | 国产免费观看久久 | 99热超碰| 欧美另类调教 | 人人插人人看 | 一本大道久久精品懂色aⅴ 五月婷社区 | 日本 在线 视频 中文 有码 | 天天做天天爱天天爽综合网 | 国产一区二区三区视频在线 | www.天天操 | 国产一区观看 | 丰满少妇麻豆av | 色婷久久 | 久精品视频在线观看 | 午夜久久久久久久久 | av蜜桃在线| 美女视频黄,久久 | 国产精品乱码久久久 | 国产一级片免费视频 | 国产一区二区在线观看视频 | 日韩艹 | 九九热精品在线 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 特黄特色特刺激视频免费播放 | 欧美日韩精品在线一区二区 | 婷婷六月综合网 | 免费在线观看不卡av | 成年人免费在线 | 日韩| 久久国内视频 | 久久精品99国产精品 | 中文字幕中文字幕在线中文字幕三区 | 成人免费视频免费观看 | 免费在线观看一区二区三区 |