本帖最后由 wllx 于 2023-9-12 07:37 编辑
发出源码,是为了让你看看并创新,这只是一个例子,什么都发出来,那还发源码做啥?直接成品不好吗 ?有三个调用文件可以自己处理,一个是解析奶牛分享地址后写入配置文件好下载文件,另外一个是系统下 器。特别提示:现解析方法已被封,所需文件下载不了了,我没有直连地址。
boot.sdi bootmgfw.efi 这些文件 都 要发给你?这个到处都 找得到。镜像查询.exe你自己不可以写一个?
代码 如下:皮肤文件 网上自己找
_WinAPI_Wow64EnableWow64FsRedirection(False)
Local $winos = IniRead("D:\mht\setup.ini", "OS", "Win", "")
_skins1()
Global $Dism = 'dism.exe',$font='微软雅黑'
$mht = GUICreate("镜像信息查看器(ESD|WIM)", 450, 328)
GUICtrlCreateLabel("镜 像:", 10, 10, 60, 30, BitOR(0x1, 0x0300))
GUICtrlSetFont(-1, 9, 400, 0, $font)
$LJPU = GUICtrlCreateInput($winos , 75, 12, 290, 26)
GUICtrlSetFont(-1, 9, 400, 0, $font)
$Button1 = GUICtrlCreateButton("...", 370, 12, 70, 26)
GUICtrlSetFont(-1, 9, 400, 0, $font)
GUICtrlCreateLabel("", 0, 46, 450, 1, $SS_BLACKRECT)
GUICtrlCreateLabel("镜像信息:", 10, 50, 60, 30, BitOR(0x1, 0x0300))
GUICtrlSetFont(-1, 8.5, 400, 0, $font)
$imageinfo = GUICtrlCreateList("", 10, 75, 430, 223)
GUICtrlSetFont(-1, 10, 400, 0, $font)
GUICtrlCreateLabel("数字就代表卷号并对应版本,请仔细选择你要安装的版本。", 10, 300, 430, 20, BitOR(0x1, 0x0300))
GUICtrlSetFont(-1, 10, 400, 0, $font)
GUISetState(@SW_SHOW)
MountImage()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Button1
$file = FileOpenDialog("",@ScriptDir & "\wim\os","文件(*.esd;*.wim)", 1, "", $mht)
If $file Then GUICtrlSetData($LJPU, $file)
Sleep(500)
MountImage()
EndSwitch
WEnd
Func MountImage()
Local $sFilePath = @TempDir & '\ImageInfo.txt'
;~ FileDelete($sFilePath)
GUICtrlSetData($imageinfo, "")
RunWait(@ComSpec & ' /C ' & '@echo off &' & $Dism & ' /Get-ImageInfo /imagefile:"' & GUICtrlRead($LJPU) & '" >' & $sFilePath, @WindowsDir & '\system32', @SW_HIDE)
$wimtxt = FileRead($sFilePath)
Local $INDEX = StringRegExp($wimtxt, '索引: (\V+)', 3)
Local $name = StringRegExp($wimtxt, '名称: (\V+)', 3)
For $i = 0 To UBound($name) - 1
GUICtrlSetData($imageinfo, $INDEX[$i] & "、" & $name[$i], $INDEX[0] & "." & $name[0])
Next
;~ FileDelete($sFilePath)
EndFunc ;==>MountImage
Func _skins1()
FileInstall("D:\au3\Skin\china.she", @TempDir & "\china.she", 1)
FileInstall("D:\au3\Skin\Skin.dll", @TempDir & "\", 1)
$skins = @TempDir & "\china.she"
$Dll = DllOpen(@TempDir & "\Skin.dll")
DllCall($Dll, "int", "SkinH_AttachEx", "str", $skins, "str", "mhgd")
DllCall($Dll, "int", "SkinH_SetAero", "int", 1)
FileDelete(@TempDir & "\china.she")
EndFunc ;==>_skins1
源码发出,只是让你看看是否可以借用一些代码,不是叫你全盘照抄然后作为自己的思想
|