找回密码
 加入
搜索
楼主: chenmaochun

[系统综合] 由于硬盘损坏,源码丢失,高手能帮忙反编译下吗?

  [复制链接]
发表于 2017-7-1 22:04:29 | 显示全部楼层
回复  chzj589


    你发下那个Partinfo.txt文件
yamakawa 发表于 2017-7-1 20:05

用变通方法能实现,但多了十几行代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-2 09:08:34 | 显示全部楼层
回复 14# yamakawa
还“你发下那个Partinfo.txt文件”,其实也没办法解决
发表于 2017-7-2 10:35:58 | 显示全部楼层
回复 17# chzj589


    我不知道有没办法解决,因为我不知道哪个文件内容啊?
稍微看了他的代码,是外部程序生成的那个txt,但是我电脑没有装那个程序,所以才让你上传,
发表于 2017-7-2 11:05:08 | 显示全部楼层
回复  chzj589


    我不知道有没办法解决,因为我不知道哪个文件内容啊?
稍微看了他 ...
yamakawa 发表于 2017-7-2 10:35

期待你能解决
发表于 2017-7-2 11:33:55 | 显示全部楼层
回复 17# chzj589
    Func fqxx()
        Local $diskinfo = FileOpen(@ScriptDir & "\Partinfo.txt", 0)
        Local $partinfo = FileRead($diskinfo)
                $partinfo =StringRegExpReplace($partinfo,"                ","        无盘符        ")
                $partinfo =StringRegExpReplace($partinfo,"Primary","主分区")
                $partinfo =StringRegExpReplace($partinfo,"Logical","逻辑分区")
                Local $aData = StringRegExp($partinfo, '(?mi)^(\d:\d)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\d)\s*', 3)
                ;_ArrayDisplay($aData)
                For $i = 0 To UBound($aData) - 1 Step 9
                                        If $aData[$i + 8] = "1" Then 
                                                $aData[$i + 8] = "O"
                                        Else
                                                $aData[$i + 8] = "X"
                                        EndIf
                                        
                GUICtrlCreateListViewItem($aData[$i] & "|" & $aData[$i + 1] & "|" & $aData[$i + 2] & "|" & $aData[$i + 3]& "|" & $aData[$i + 4]& "|" & $aData[$i + 5]& "|" & $aData[$i + 6]& "|" & $aData[$i + 7]& "|" & $aData[$i + 8], $disklist)
                Next
EndFunc   
楼上的看下,这个代码可以么
发表于 2017-7-2 11:59:17 | 显示全部楼层
本帖最后由 yamakawa 于 2017-7-2 12:21 编辑

不好意思,没注意到,他没获取盘符,这样的话,guictrlcreatelistviewitem这行,你去掉$i + 6那段就好了
#include <GuiListView.au3>
 ;#include <Array.au3>
$Form_main = GUICreate("", 930, 520, -1, -1)
Local $disklist = GUICtrlCreateListView("", 10, 100, 910, 200);, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
_guictrllistview_insertcolumn($disklist, 0, "编号", 40, 2)
_guictrllistview_insertcolumn($disklist, 1, "盘符", 40, 2)
_guictrllistview_insertcolumn($disklist, 2, "总共空间", 60, 2)
_guictrllistview_insertcolumn($disklist, 3, "剩余空间", 60, 2)
_guictrllistview_insertcolumn($disklist, 4, "分区类型", 60, 2)
_guictrllistview_insertcolumn($disklist, 5, "分区格式", 60, 2)
;_guictrllistview_insertcolumn($disklist, 6, " 盘符", 0, 2)
_guictrllistview_insertcolumn($disklist, 7, "引导类型", 60, 2)
_guictrllistview_insertcolumn($disklist, 8, "激活", 50, 2)
fqxx()
GUISetState(@SW_SHOW, $Form_main)
 
While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3
                        Exit
        EndSwitch
WEnd
 
Func fqxx()
        Local $diskinfo = FileOpen(@ScriptDir & "\Partinfo.txt", 0)
        Local $partinfo = FileRead($diskinfo)
                $partinfo =StringRegExpReplace($partinfo,"                ","        无盘符        ")
                $partinfo =StringRegExpReplace($partinfo,"Primary","主分区")
                $partinfo =StringRegExpReplace($partinfo,"Logical","逻辑分区")
                Local $aData = StringRegExp($partinfo, '(?mi)^(\d:\d)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(\d)\s*', 3)
                ;_ArrayDisplay($aData)
                For $i = 0 To UBound($aData) - 1 Step 9
                                    If        $aData[$i + 8] = "1" Then 
                                                $aData[$i + 8] = "O"
                                        Else
                                                $aData[$i + 8] = "X"
                                        EndIf
                                        
                                
                GUICtrlCreateListViewItem($aData[$i] & "|" & $aData[$i + 1] & "|" & $aData[$i + 2] & "|" & $aData[$i + 3]& "|" & $aData[$i + 4]& "|" & $aData[$i + 5]& "|" & $aData[$i + 7]& "|" & $aData[$i + 8], $disklist)
                Next
EndFunc   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-2 12:25:29 | 显示全部楼层
回复 21# yamakawa
可以读,但少了第三行
发表于 2017-7-2 12:36:37 | 显示全部楼层
回复 22# chzj589


    第三行是什么内容?你发的partionf。txt文件,我这里用这个代码可以正确显示啊
发表于 2017-7-2 12:40:02 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-2 12:44:59 | 显示全部楼层
回复 24# yamakawa
怪事,我显示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-2 12:56:11 | 显示全部楼层
回复 25# chzj589


    。。。这个我在上面说了啊。。因为我最开始没去看他的代码,连盘符都读取了,所以
GUICtrlCreateListViewItem($aData[$i] & "|" & $aData[$i + 1] & "|" & $aData[$i + 2] & "|" & $aData[$i + 3]& "|" & $aData[$i + 4]& "|" & $aData[$i + 5]& "|" & $aData[$i + 7]& "|" & $aData[$i + 8], $disklist)
这行里面要去掉$i + 6部分
发表于 2017-7-2 12:58:12 | 显示全部楼层
回复 24# yamakawa
没显示第三行,
1:1        C:        30.00GB        17.81GB        Primary        NTFS        WinXP        MBR        1
1:2        D:        88.02GB        72.71GB        Logical        FAT32                MBR        0
1:3        E:        89.01GB        64.53GB        Logical        FAT32                MBR        0
1:4        F:        91.06GB        39.65GB        Logical        FAT32                MBR        0

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-7-2 13:01:42 | 显示全部楼层
总之,那个正则可以截取那个文本文件的信息,可以先用arraydisplay显示看看。。
怎么显示看你自己安排了。。。
发表于 2017-7-2 13:02:34 | 显示全部楼层
回复 26# yamakawa
你的列表控件代码是?
$disklist = GUICtrlCreateListView("", 15, 20, 490, 106, $LVS_REPORT, $WS_EX_CLIENTEDGE)
发表于 2017-7-2 13:07:13 | 显示全部楼层
回复 28# yamakawa
用arraydisplay显示就少第三行,27楼图片就不显示
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 07:21 , Processed in 0.071297 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表