|

分享源码
界面截图: |
- |
是否带模块: |
- |
备注说明: |
- |
本帖最后由 失败D宏 于 2021-12-2 17:45 编辑
内附demo
https://125.confly.eu.org/forum.php?mod ... 14699447&extra=
https://gitee.com/SnailcatMall/JscmAPIjava
下载地址: https://gitee.com/SnailcatMall/JscmAPIjava
![]() ![]() ![]()
<h1>JAVA 基于JNA SDK1.8 Win32 API 调用库</h1>
<h3>我们的宗旨是:让JAVA更加便捷高效的开发窗体</h3>
<h3>易语言代码转JAVA</h3>
<h3>模块引用基于火山语言库</h3>
<hr>
<h1>更新日志表</h1>
<table>
<tr>
<td>更新API函数,重构项目</td>
<td>2021年10月3日10:45:15</td>
</tr>
<tr>
<td>更新API函数,重构项目</td>
<td>2021年10月2日10:18:34</td>
</tr>
<tr>
<td>更新API函数,重构项目</td>
<td>2021年9月25日23:27:18</td>
</tr>
</table>
<hr>
<h3>API 函数列表</h3>
<h1>进程线程类</h1>
<table style="font-size: 10px">
<tr >
<td>返回值</td>
<td>调用函数</td>
<td>参数表</td>
<td>方法名</td>
</tr>
</table>
<table style="font-size: 10px">
<tr >
<td>String</td>
<td>ProcessAndThread.getProcessName(Integer th32ProcessID)</td>
<td>参数1:进程ID</td>
<td>进程ID取进程名</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.getProcessNameToProcessID(String ProcessName)</td>
<td>参数1:进程名</td>
<td>进程名取ID</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.processOpen(Integer dwProcessID)</td>
<td>参数1:进程ID</td>
<td>打开进程ID</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.processClose(Integer dwProcessID)</td>
<td>参数1:进程句柄</td>
<td>关闭进程句柄</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.processOver(Integer dwProcessID)</td>
<td>参数1:进程ID</td>
<td>结束进程</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.processOver(String ProcessName)</td>
<td>参数1:进程名</td>
<td>结束进程</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.getProcessID ()</td>
<td>参数1:无</td>
<td>取自身进程ID</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.whetherProcessThereAre(String ProcessName)</td>
<td>参数1:进程名</td>
<td>进程是否存在</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.processGetWindow(String ProcessName)</td>
<td>参数1:进程名</td>
<td>进程名取窗口句柄</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.processNameGetThreadID(String ProcessName)</td>
<td>参数1:进程名</td>
<td>进程名取线程ID</td>
</tr>
<tr style="background-color: aliceblue">
<td>String</td>
<td>ProcessAndThread.getProcessToPath(String ProcessName)</td>
<td>参数1:进程名</td>
<td>取启动进程路径</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.getModuleHandle(String lpModuleName)</td>
<td>参数1:模块名 DLL 或 EXE</td>
<td>取模块句柄</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.getTopProcessID(String ProcessName)</td>
<td>参数1:进程名</td>
<td>进程名取父进程ID</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.memoryTuning()</td>
<td>无</td>
<td>内存优化</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.processSuspended(String ProcessName,boolean flag)</td>
<td>参数1:进程名<br/>参数2:<br/>true->暂停<br/>false->释放</td>
<td>进程暂停</td>
</tr>
<tr>
<td>Integer</td>
<td>enumThread(String ProcessName,List:THREADENTRY32 threadentry32List)</td>
<td>参数1:进程名<br/>参数2:返回线程集合</td>
<td>进程名枚举线程ID</td>
</tr>
<tr>
<td>Integer</td>
<td>openThreadID(Integer threadID)</td>
<td>参数1:线程ID<br/></td>
<td>打开线程</td>
</tr>
<tr>
<td>Integer</td>
<td>getThreadID()</td>
<td>无</td>
<td>取自身线程ID</td>
</tr>
<tr>
<td>Integer</td>
<td>gethTread()</td>
<td>无</td>
<td>取自身线程伪句柄</td>
</tr>
<tr>
<td>Integer</td>
<td>threadConsumption(Integer hTread)</td>
<td>参数1:线程句柄</td>
<td>线程销毁</td>
</tr>
<tr>
<td>Integer</td>
<td>threadSuspended(Integer hTread,boolean flag)</td>
<td>参数1:线程句柄<br/>参数2:真挂机-假释放<br/></td>
<td>线程挂起</td>
</tr>
<tr>
<td>MODULEINFO</td>
<td>ProcessAndThread.selectModuleInfo(String ProcessName, Integer moduleHandle)</td>
<td>参数1:进程名<br/>参数2:模块地址</td>
<td>查询模块信息</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.elevatePrivileges(String ProcessName,Integer TokenIndex)</td>
<td>参数1:进程名<br/>参数2:权限选择</td>
<td>提升权限</td>
</tr>
</table>
<h1>内存操作类</h1>
<table style="font-size: 10px">
<tr >
<td>返回值</td>
<td>调用函数</td>
<td>参数表</td>
<td>方法名</td>
</tr>
</table>
<table style="font-size: 10px">
<tr>
<td>Integer</td>
<td>ProcessAndThread.createMemoryZero(String ProcessName,long dwSize)</td>
<td>参数1:进程名<br/>参数2:长度</td>
<td>创建申请内存</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.releaseMemoryZero(String ProcessName,Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>释放申请内存</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.memoryAddressIsValid(String ProcessName,Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存地址是否有效</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.memoryAddressIsStatic(String ProcessName,Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存地址是否为静态地址</td>
</tr>
<tr>
<td>boolean</td>
<td>ProcessAndThread.memoryAddressIsBaseAddress(String ProcessName,Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存地址是否为基地址</td>
</tr>
<tr>
<td>PMEMORY_BASIC_INFORMATION</td>
<td>ProcessAndThread.selectMemoryAddressAttribute(String ProcessName,Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>查询内存保护</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.updateMemoryAddressAttribute(String ProcessName, Integer address,Integer attribute, Integer dwSize)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:属性<br/>参数4:长度</td>
<td>修改内存保护</td>
</tr>
<tr>
<td>short</td>
<td>ProcessAndThread.ReadProcessMemoryShort(String ProcessName, Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存读短整数</td>
</tr>
<tr>
<td>float</td>
<td>ProcessAndThread.ReadProcessMemoryFloat(String ProcessName, Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存读小数型</td>
</tr>
<tr>
<td>float</td>
<td>ProcessAndThread.ReadProcessMemoryDouble(String ProcessName, Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存读双精度型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.ReadProcessMemoryInt(String ProcessName, Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存读整数型</td>
</tr>
<tr>
<td>long</td>
<td>ProcessAndThread.ReadProcessMemoryLong(String ProcessName, Integer address)</td>
<td>参数1:进程名<br/>参数2:内存地址</td>
<td>内存读长整数型</td>
</tr>
<tr>
<td>String</td>
<td>ProcessAndThread.ReadProcessMemoryString(String ProcessName, Integer address,Integer dwSize)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:文本长度</td>
<td>内存读文本型</td>
</tr>
<tr style="background-color: aliceblue">
<td>String</td>
<td>ProcessAndThread.RReadProcessMemoryByteHex(String ProcessName, Integer address,Integer len)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:返回长度</td>
<td>内存读字节数组HEX【内存读字节集】</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryShort(String ProcessName, Integer address,short lpBuffer)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据</td>
<td>内存写短数型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryFloat(String ProcessName, Integer address,float lpBuffer)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据</td>
<td>内存写小数型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryDouble(String ProcessName, Integer address,double lpBuffer)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据</td>
<td>内存写双精度小数型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryInt(String ProcessName, Integer address,int lpBuffer)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据</td>
<td>内存写整型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryLong(String ProcessName, Integer address,long lpBuffer)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据</td>
<td>内存写长整型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryString(String ProcessName, Integer address,String lpBuffer)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据</td>
<td>内存写文本整型</td>
</tr>
<tr>
<td>Integer</td>
<td>ProcessAndThread.WriteProcessMemoryHex(String ProcessName, Integer address,String lpBuffer,Integer len)</td>
<td>参数1:进程名<br/>参数2:内存地址<br/>参数3:写入数据<br/>参数3:长度</td>
<td>内存写字节数组HEX【内存写字节集】</td>
</tr>
</table>
<h1>转换操作类</h1>
<table style="font-size: 10px">
<tr >
<td>返回值</td>
<td>调用函数</td>
<td>参数表</td>
<td>方法名</td>
</tr>
</table>
<table style="font-size: 10px">
<tr>
<td>Integer</td>
<td>CodeConversion.HexToInt(String content)</td>
<td>参数1:十六进制文本->009AF51C</td>
<td>十六进制转十进制</td>
</tr>
<tr>
<td>Integer</td>
<td>CodeConversion.String IntToHex(Integer n) </td>
<td>参数1:十进制文本->10155292</td>
<td>十进制转十六进制</td>
</tr>
</table>
<h1>模块操作类</h1>
<table style="font-size: 10px">
<tr >
<td>返回值</td>
<td>调用函数</td>
<td>参数表</td>
<td>方法名</td>
</tr>
</table>
<table style="font-size: 10px">
<tr>
<td>Integer</td>
<td>ModuleOperation.getDLLFunctionAddress(Integer ModelAddress,String Fun)</td>
<td>参数1:模块句柄<br/>参数2:函数名<br/></td>
<td>取库函数地址</td>
</tr>
<tr>
<td>Integer</td>
<td>ModuleOperation.getLoadDLL(String DLLFile)</td>
<td>参数1:DLL文件地址</td>
<td>加载DLL</td>
</tr>
<tr>
<td>Integer</td>
<td>ModuleOperation.getDLLModelAddressZero(String ModuleName)</td>
<td>参数1:DLL文件地址</td>
<td>取DLL模块地址1</td>
</tr>
<tr>
<td>Integer</td>
<td>ModuleOperation.getDLLModelAddressOne(Integer ModuleName)</td>
<td>参数1:DLL文件地址</td>
<td>取DLL模块地址2</td>
</tr>
</table>
<h1>窗口操作类</h1>
<table style="font-size: 10px">
<tr >
<td>返回值</td>
<td>调用函数</td>
<td>参数表</td>
<td>方法名</td>
</tr>
</table>
<table style="font-size: 10px">
<tr>
<td>Integer</td>
<td>WindowOperation.windowTop(Integer hwnd ,boolean flag)</td>
<td>参数1:窗口句柄<br/>参数2:是否置顶<br/></td>
<td>窗口置顶</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowAlpha(Integer hwnd,Integer Alpha,boolean flag)</td>
<td>参数1:窗口句柄<br/>参数2:透明度<br/>参数3:是否穿透<br/></td>
<td>窗口透明度</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowThrough(Integer hwnd, boolean flag)</td>
<td>参数1:窗口句柄<br/>参数2:是否穿透</td>
<td>窗口穿透</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowMaxTop(Integer hwnd,boolean flag)</td>
<td>参数1:窗口句柄<br/>参数2:是否置顶</td>
<td>总在最前</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowFocus(Integer hwnd)</td>
<td>参数1:窗口句柄<br/></td>
<td>窗口焦点</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowMin(Integer hwnd)</td>
<td>参数1:窗口句柄<br/></td>
<td>窗口最小化</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowMax(Integer hwnd)</td>
<td>参数1:窗口句柄<br/></td>
<td>窗口最大化</td>
</tr>
<tr>
<td>Integer</td>
<td>WindowOperation.windowIsMin(Integer hwnd)</td>
<td>参数1:窗口句柄<br/></td>
<td>是否最小化</td>
</tr>
</table>
具体可以参考其他之前的贴子 : 前提需要有java基础!!
|
评分
-
查看全部评分
|