源码:unmrp源码

2011/12/12 13:15:00  人气 739    修改美化论坛  



’>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
’Mrp格式定义 by ele前 QQ:1003082820 E-Mail:yongqian25@163.com

’以下定义为作者自己总结得来,难免有错误
’如需使用此定义请保留作者信息
’>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Public Type MRPFILEINFO ’MRP文件信息结构
mHeader As Long ’文件头(MRPG) &H4750524D
mInfoSize As Long ’文件信息+模块列表大小 不包括前8字节(mHeader和mInfoSize)
mFileSize As Long ’文件总大小
mInfoBegin As Long ’模块信息偏移(通常为240)
mIntName As String * 12 ’内部文件名 以Null结尾
mProName As String * 24 ’应用名称 以Null结尾
mCode0 As String * 16 ’SDK授权编码 (猜测)(正版只有前9位且在HEX范围,其余应该是被乱修改的)
mCode1 As Long ’编码1 应用编号 (部分MRP的被倒序,疑被错误修改)
mCode2 As Long ’编码2 版本编号 (同上)
mCode3 As Long ’编码3 ?(通常为7)
mCode4 As Long ’编码4 编译器版本(猜测)(通常为10002)
mCode5(3) As Byte ’编码5
mComp As String * 40 ’出品公司、版权等 以Null结尾
mDesc As String * 64 ’应用描述 以Null结尾
mCode6(3) As Byte ’编码6 =编码1倒序
mCode7(3) As Byte ’编码7 =编码2倒序
mCode8(3) As Byte ’少数MRP下面有数据
mCode9(3) As Byte
mCode10(3) As Byte
End Type

’Public Type MRPFILELIST ’MRP文件内容列表结构
’ aNameLen As Long ’文件名长度
’ aName As String * aNameLen ’文件名 以Null结尾
’ aFileAddr As Long ’文件开始地址
’ aFileLen As Long ’文件长度
’ aOther As Long ’Null
’End Type

’Public Type MRPFILERES ’MRP文件内容结构
’ aNameLen As Long ’文件名长度
’ aName As String * aNameLen ’文件名 以Null结尾
’ aFileLen As Long ’文件长度
’ aOther As Long ’Null
’ aFile(aFileLen - 1) As Byte ’gzip文件
’End Type


Public mrpFile As String
Public SavePath As String
Public bmpFile As String

模块:浏览文件夹(SHBrowseForFolder.bas)

Attribute VB_Name = “浏览文件夹“
Option Explicit

Public Declare Function SHBrowseForFolder Lib “shell32.dll“ Alias “SHBrowseForFolderA“ (lpBrowseInfo As BROWSEINFO) As Long
Public Declare Function SHGetPathFromIDList Lib “shell32.dll“ Alias “SHGetPathFromIDListA“ (ByVal pidl As Long, ByVal pszPath As String) As Long

Public Type BROWSEINFO
hOwner As Long ’父窗口句柄
pidlRoot As Long ’最上层文件,可为0
pszDisplayName As String ’返回的文件夹(带一个Null字符)
lpszTitle As String ’对话框标题(以vbNullChar结尾)
ulFlaga As Long ’浏览标志
lpfn As Long ’回调函数地址,可为Null
lParam As Long ’若有回调函数,设置它的值
iImage As Long ’保存所选文件夹映像索引的缓冲区
End Type

Public Const BIF_RETURNONLYFSDIRS = &H1 ’仅允许浏览文件系统
Public Const BIF_DONTGOBELOWDOMAIN = &H2 ’强制停留在网上邻居中
Public Const BIF_STATUSTEST = &H4 ’显示状态栏
Public Const BIF_RETURNFSANCESTORS = &H8 ’返回文件系统祖先?
Public Const BIF_EDITBOX = &H10 ’显示输入框(需IE4)
Public Const BIF_VALIDATE = &H20 ’若输入非法文件名就返回BFFM_VALIDATEFAILED给回调函数
Public Const BIF_USENEWUI = &H40 ’使用新界面(>Win2k)
Public Const BIF_BROWSEFORCOMPUTER = &H1000 ’允许浏览计算机
Public Const BIF_BROWSEFORPINTER = &H2000 ’允许打开打印机文件夹
Public Const BIF_BROWSEINCLUDEFILES = &H4000 ’允许浏览文件(需IE4)


Public Function BrowseForFolder(Optional Title As String, Optional hWnd As Long) As String ’浏览文件夹
Dim bi As BROWSEINFO
Dim pidl As Long
Dim Folder As String

Folder = String(255, vbNullChar)

With bi
.hOwner = hWnd
.ulFlaga = BIF_RETURNONLYFSDIRS Or BIF_USENEWUI ’Or BIF_EDITBOX
.pidlRoot = 0
.lpszTitle = IIf(Title <> ““, Title, “选择文件夹“) & vbNullChar
End With

pidl = SHBrowseForFolder(bi)

If SHGetPathFromIDList(ByVal pidl, ByVal Folder) Then
BrowseForFolder = Left(Folder, InStr(Folder, vbNullChar) - 1)
Else
BrowseForFolder = ““
End If

End Function

模块:声明(module1.bas)
Attribute VB_Name = “声明“
Option Explicit

’窗口置顶API
Public Declare Function SetWindowPos Lib “user32“ (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

’控制解压过程
Public Declare Function OpenProcess Lib “kernel32“ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function GetExitCodeProcess Lib “kernel32“ (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function CloseHandle Lib “kernel32“ (ByVal hObject As Long) As Long

Public Const PROCESS_QUERY_INFOMATION = &H400
Public Const STILL_ALIVE = &H103


’>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
’Mrp格式定义 by ele前 QQ:1003082820 E-Mail:yongqian25@163.com

’以下定义为作者自己总结得来,难免有错误
’如需使用此定义请保留作者信息
’>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Public Type MRPFILEINFO ’MRP文件信息结构
mHeader As Long ’文件头(MRPG) &H4750524D
mInfoSize As Long ’文件信息+模块列表大小 不包括前8字节(mHeader和mInfoSize)
mFileSize As Long ’文件总大小
mInfoBegin As Long ’模块信息偏移(通常为240)
mIntName As String * 12 ’内部文件名 以Null结尾
mProName As String * 24 ’应用名称 以Null结尾
mCode0 As String * 16 ’SDK授权编码 (猜测)(正版只有前9位且在HEX范围,其余应该是被乱修改的)
mCode1 As Long ’编码1 应用编号 (部分MRP的被倒序,疑被错误修改)
mCode2 As Long ’编码2 版本编号 (同上)
mCode3 As Long ’编码3 ?(通常为7)
mCode4 As Long ’编码4 编译器版本(猜测)(通常为10002)
mCode5(3) As Byte ’编码5
mComp As String * 40 ’出品公司、版权等 以Null结尾
mDesc As String * 64 ’应用描述 以Null结尾
mCode6(3) As Byte ’编码6 =编码1倒序
mCode7(3) As Byte ’编码7 =编码2倒序
mCode8(3) As Byte ’少数MRP下面有数据
mCode9(3) As Byte
mCode10(3) As Byte
End Type

’Public Type MRPFILELIST ’MRP文件内容列表结构
’ aNameLen As Long ’文件名长度
’ aName As String * aNameLen ’文件名 以Null结尾
’ aFileAddr As Long ’文件开始地址
’ aFileLen As Long ’文件长度
’ aOther As Long ’Null
’End Type

’Public Type MRPFILERES ’MRP文件内容结构
’ aNameLen As Long ’文件名长度
’ aName As String * aNameLen ’文件名 以Null结尾
’ aFileLen As Long ’文件长度
’ aOther As Long ’Null
’ aFile(aFileLen - 1) As Byte ’gzip文件
’End Type


Public mrpFile As String
Public SavePath As String
Public bmpFile As String
下页    上页    全部    余下    
 

. 请牢记绝客网域名:jkniu.com jkmrp.com

发表回复

   


  通知楼主

6楼

新会员152244.03-08 10:27
你牛,我顶!

回复只看TA

5楼

狠妮.03-05 07:17
汗!!!看不懂啊.你这是天书额!!!

回复只看TA

4楼

烟消^【云散】.12-13 19:38
晕!★★头冒金星

回复只看TA

地板

新会员133129.12-13 17:11
这是什么?不懂

回复只看TA

椅子

★风流小猪★.12-12 20:46
老大,我不懂

回复只看TA