梦想吧技术论坛's Archiver

似水年华 发表于 2007-4-22 07:19 PM

AU3-网吧私人保险柜(客户端)

#include <GUIConstants.au3>
#include <GuiListView.au3>
#Include <GuiStatusBar.au3>
#include <Constants.au3>
#include <GuiList.au3>
#include <file.au3>
#Include <process.au3>
#include <string.au3>
#Include <date.au3>

Opt( "RunErrorsFatal", 0 ) ;防止执行程序出错被冲止
Opt("TrayIconHide",1)   ;隐藏

Dim $all,$listview,$nesfi=@SystemDir,$wiyh,$wipas,$shulang

$tenor = ProcessList(@ScriptName)
If $tenor[0][0] > 1 Then
msgbox(0,"提示","已经有一个程序在运行",10)
Exit
EndIf
if @OSTYPE <> "WIN32_NT" then
MsgBox(0,"提示","本程序只支持NT/2000/XP/2003系统")
exit
EndIf
If Not FileExists(@ScriptDir&"\"&"xiaoqin.ini") Then
MsgBox(48,'提示','没有找到配置文件')
Exit
EndIf

$lq=qieMM( IniRead(@ScriptDir&"\"&"xiaoqin.ini",'参数','调用路径','') )
If FileExists($lq) Then
FileCopy($lq&'\xiaoqin.ini',@ScriptDir&"\xiaoqin.ini",1)
FileCopy($lq&'\game.db',@ScriptDir&"\game.db",1)
EndIf

$luxs=StringSplit(qieMM(IniRead(@ScriptDir&"\"&"xiaoqin.ini",'参数','存储路径','')), "=")
$yydaxi=qieMM(IniRead(@ScriptDir&"\"&"xiaoqin.ini",'参数','空间大小',''))
$cong=StringSplit($yydaxi, "|")
$sazl=StringSplit(qieMM(IniRead(@ScriptDir&"\"&"xiaoqin.ini",'参数','存档数量','')), "=")
If $luxs[0]<>2 Or $cong[0]<2   Or $sazl[0]<>2 Then
MsgBox(16,'警告','xiaoqin.ini配置文件被非法修改')
Exit
Else
$tlpass=StringSplit($cong[$cong[0]], "=")
If $tlpass[0]<>3 Then
   MsgBox(16,'警告','xiaoqin.ini配置文件被非法修改')
   Exit
ElseIf $luxs[2]<> $sazl[2] Or $luxs[2]<>$tlpass[3] Or $sazl[2]<>$tlpass[3] Then
   MsgBox(16,'警告','xiaoqin.ini配置文件被非法修改')
   Exit
Else
   $luxing=$luxs[1]
   $shulang=$sazl[1]
   $zong=$tlpass[2]
   $jibe=$tlpass[1]
EndIf
EndIf

;;;;;;;;;;;;;;;;;;;;;;登录界面
Local $a_PartsRightEdge[2] = [230, -1]
Local $a_PartsText[2] = ["总容量:"&$zong&" MB", "制作:小覃"]
win()
Func win()
$gui1=GUICreate ( "网吧私人保险柜 v3.0" ,300,178)
GUICtrlCreateGroup("", 5, 48, 290, 80);=大框

GUICtrlCreateLabel("用户名称:", 18, 70, 54, 25)
$name = GUICtrlCreateInput("", 72, 65, 150, 21);用户名输入框
GUICtrlSetFont (-1, 11)
GUICtrlCreateLabel("用户密码:", 18, 100, 54, 25)
$pass= GUICtrlCreateInput("", 72, 95, 150, 21,$ES_PASSWORD);用户密码输入框
GUICtrlSetFont (-1, 11)

$shuzhe=GUICtrlCreateLabel("注册帐号",   235, 65, 50,17,$SS_NOTIFY)
GUICtrlSetCursor(-1, 0);忘记密码的设置参数
GUICtrlSetColor(-1,0x0000FF);忘记密码的设置参数
GUICtrlSetTip ( -1, '注册新用户,空间大小是为'&$zong&'M' )
$wangqi=GUICtrlCreateLabel("忘记密码",   235, 85, 50,17,$SS_NOTIFY)
GUICtrlSetCursor(-1, 0);忘记密码的设置参数
GUICtrlSetColor(-1,0x0000FF);忘记密码的设置参数
GUICtrlSetTip ( -1, '忘记密码' )
$jiukai=GUICtrlCreateLabel("修改密码", 235, 105, 50,17,$SS_NOTIFY)
GUICtrlSetCursor(-1, 0);修改密码的设置参数
GUICtrlSetColor(-1,0x30000FF);修改密码的设置参数
GUICtrlSetTip ( -1, '修改密码' )

$OK=GUICtrlCreateButton("确   定",   80, 130, 50,25);按钮
$ESC=GUICtrlCreateButton( "取   消",   170, 130, 50,25);按钮

GUICtrlCreatePic(@ScriptDir&"\logo.jpg",1,1, 298,48 );=图片
_GUICtrlStatusBarCreate ($gui1, $a_PartsRightEdge, $a_PartsText)
GUICtrlSetColor(-1,0xE0FFFF)
GUICtrlSetState ($OK, $GUI_DEFBUTTON)
GUISetState ()

While 1
$msg = GUIGetMsg()
$mane=GUICtrlRead($name)
$bass=GUICtrlRead($pass)
Select

Case $msg = $OK ;用户登录
   If $mane='' Or $bass='' Then
    MsgBox(48,'提示','用户名或用户密码不能为空',0)
   ElseIf FileExists($luxing&$mane)=0 Then
    MsgBox(48,'提示','该用户未注册',0)
    GUICtrlSetData ($name,"")
    GUICtrlSetData ($pass,"")
   ElseIf $bass<>qieMM(IniRead($luxing&$mane&"\users.dat","参数","用户密码","")) Then
    MsgBox(48,'提示','用户名或用户密码不正确',0)
    GUICtrlSetData ($pass,"")
   Else
    $redtj=qieMM(IniRead($luxing&$mane&"\users.dat","参数","用户等级",""))
    $sesq=IniRead($luxing&$mane&"\users.dat","参数","注册时间","")
    $relq=StringSplit($redtj, "=")
    If $relq[0]=3 Then
     If $relq[1]<>$mane Or $relq[3]<>$sesq Then
      $tenxi='未知的等级'
     Else
      $tenxi=$relq[2]
     EndIf
    Else
     $tenxi='未知的等级'
    EndIf
     FileInstall('D:\qin\ys.exe', $nesfi&'\ys.exe',1)
     GUIDelete ($gui1)
     yonghu($mane,jbfile($tenxi,$yydaxi),$luxing,$tenxi)
   EndIf
Case $msg = $shuzhe;注册帐号
    $reduser=qieMM(IniRead(@ScriptDir&"\"&"xiaoqin.ini",'参数','注册用户',''))
    If $reduser='开放注册' Then
     GUIDelete ($gui1)
     logser($luxing,$jibe)
    Else
     MsgBox(48,'提示','目前停止注册',0)
    EndIf
Case $msg = $wangqi ;忘记密码
     GUIDelete ($gui1)
     wangqimm1($luxing)
Case $msg = $jiukai ;修改密码
     GUIDelete ($gui1)
     xiukaimm($luxing)
Case $msg = $GUI_EVENT_CLOSE or $msg=$ESC
     Exit
EndSelect
Wend
EndFunc

Func yonghu($yhm,$dx,$luqin,$jibie) ;上传下载准备操作
$gui2=GUICreate("“"&$yhm&"”的私人空间",425,397,-1,-1)
$Status = GUICtrlCreateLabel("", 0, 382, 425, 15,BitOR($SS_SUNKEN, $SS_CENTER))
$tab=GUICtrlCreateTab (-3,-2, 430,385,$TCS_FLATBUTTONS)
$tab0=GUICtrlCreateTabitem ("    私 人 存 储    ")
$listview = GUICtrlCreateListView("文件名称               |大小|上传时间        ", 6, 25, 413, 349)
GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
$search = FileFindFirstFile($luqin&$yhm&'\用户存储\*.rar')  
If $search <> -1 Then
While 1
   $file = FileFindNextFile($search)
   If @error Then ExitLoop
   $sname=StringTrimRight ($file, 4)
   $emb=Round(FileGetSize($luqin&$yhm&'\用户存储\'&$file)/1048576,2)
   $hs =   FileGetTime($luqin&$yhm&'\用户存储\'&$file, 1)
   $shutime=$hs[0]&'-'&$hs[1]&'-'&$hs[2]&' '&$hs[3]&':'&$hs[4]&':'&$hs[5]
   GUICtrlCreateListViewItem($sname&'|'&$emb&'MB|'&$shutime, $listview)
WEnd
EndIf
FileClose($search)

$buttoncontext = GUICtrlCreateContextMenu($listview)
$up = GUICtrlCreateMenu("上   传",$buttoncontext)
$uppapers = GUICtrlCreateMenuitem("文   件",$up)
$upfolder = GUICtrlCreateMenuitem("文件夹",$up)

$down = GUICtrlCreateMenuitem("下   载",$buttoncontext)
$reanaw = GUICtrlCreateMenuitem("刷   新",$buttoncontext)
$del = GUICtrlCreateMenuitem("删   除",$buttoncontext)
$rea = GUICtrlCreateMenuitem("重命名",$buttoncontext)


$tab1=GUICtrlCreateTabitem ("    游 戏 存 档    ")
GUICtrlCreateLabel ("游戏列表名称:",10,30,100,15)
$rtys=GUICtrlCreateLabel ("",215,30,180,15)
$stsl=GUICtrlCreateLabel ("可存"&$shulang&'个档',350,30,100,15)

$uy1=GUICtrlCreateList ("", 5,45,205, 315)
$uy2=GUICtrlCreateList ("", 215,45,205, 330)

$uptouy1 = GUICtrlCreateContextMenu($uy1)
$upgame = GUICtrlCreateMenuitem("上传",$uptouy1)
GUICtrlCreateLabel("关键词:", 5, 360,50,15)
$input = GUICtrlCreateInput("", 50, 355, 80, 20)
GUICtrlSetTip (-1, '游戏查找,输入关键词回车既可')
$button = GUICtrlCreateButton("搜索", 130, 355, 40, 20)
$button1 = GUICtrlCreateButton("下一个", 170, 355, 40, 20)

$uptouy2 = GUICtrlCreateContextMenu($uy2)
$downgame = GUICtrlCreateMenuitem("下载",$uptouy2)
$delgame = GUICtrlCreateMenuitem("删除",$uptouy2)
$reagame = GUICtrlCreateMenuitem("改名",$uptouy2)


Dim $bs
If _FileReadToArray(@ScriptDir&'\game.db',$bs) Then
For $a = 1 to $bs[0]
   $ay=StringSplit($bs[$a], "]")
   If $ay[0]<>0 Then
    If StringLeft($ay[1], 1)='[' Then
     GUICtrlSetData($uy1,StringTrimLeft($ay[1], 1))
    EndIf
   EndIf
Next
EndIf


GUISetState (@SW_SHOW)
$hy=Round(DirGetSize($luqin&$yhm&'\用户存储\')/1048576,2)
GUICtrlSetData($Status, "用户等级:"&$jibie&"    空间大小:"&$dx&"M    已用大小:"&$hy&"M")
IniWrite ($luqin&$yhm&"\users.dat","参数", "最后登录", _NowDate())
GUICtrlSetState ($button, $GUI_DEFBUTTON)
$y=-1
While 1
$msg = GUIGetMsg()
Select
   Case $msg = $uppapers
             $Fileup = FileOpenDialog("请选择文件",'', "All(*.*)",1)
    If $Fileup<>"" Then
     $wxm=StringSplit(formatPath2($Fileup), "\")
     GUIDelete ($gui2)
     up($luqin&$yhm , formatPath2($Fileup) , $wxm[$wxm[0]] , $dx ,$yhm,$dx,$luqin,$jibie)
    EndIf  
   Case $msg = $upfolder
             $xianup = FileSelectFolder("请选择文件夹", "",0,'')
    If $xianup<>"" Then
     $xiam=StringSplit(formatPath2($xianup), "\")
     GUIDelete ($gui2)
     up($luqin&$yhm , formatPath2($xianup) , $xiam[$xiam[0]] , $dx ,$yhm,$dx,$luqin,$jibie)
    EndIf
   Case $msg = $down
    $downm=_GUICtrlListViewGetItemText($listview, _GUICtrlListViewGetSelectedIndices($listview), 0)
    If $downm<>'' Then
     $regd=RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer","Download Directory")
     $Filedown = FileSelectFolder("下载文件", "",7,$regd)
     If $Filedown<>"" Then
      RegWrite ( "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer","Download Directory", "REG_SZ", $Filedown)
      GUIDelete ($gui2)
      down($luqin&$yhm , $downm , formatPath2($Filedown) ,$yhm,$dx,$luqin,$jibie)
     EndIf
    EndIf
   Case $msg = $reanaw
      $hy1=Round(DirGetSize($luqin&$yhm&'\用户存储\')/1048576,2)
      GUICtrlSetData($Status, "“"&$yhm&"”的私人空间(已使用"&$hy1&"M   总容量"&$dx&"M)")
      _GUICtrlListViewDeleteAllItems ($listview)
     $search = FileFindFirstFile($luqin&$yhm&'\用户存储\*.rar')  
     If $search <> -1 Then
      While 1
       $file = FileFindNextFile($search)
       If @error Then ExitLoop
       $sname=StringTrimRight ($file, 4)
       $emb=Round(FileGetSize($luqin&$yhm&'\用户存储\'&$file)/1048576,2)
       $hs =   FileGetTime($luqin&$yhm&'\用户存储\'&$file, 1)
       $shutime=$hs[0]&'-'&$hs[1]&'-'&$hs[2]&' '&$hs[3]&':'&$hs[4]&':'&$hs[5]
       GUICtrlCreateListViewItem($sname&'|'&$emb&'MB|'&$shutime, $listview)
      WEnd
     EndIf
     FileClose($search)
   Case $msg = $del
     $st=_GUICtrlListViewGetItemText($listview, _GUICtrlListViewGetSelectedIndices($listview), 0)
     If $st<>'' Then
      $yeng=MsgBox(0+4,'提示','确认删除 '&$st,0)
      If $yeng=6 Then
       FileDelete($luqin&$yhm&'\用户存储\'&$st&'.rar')
       Sleep(500)
       If FileExists($luqin&$yhm&'\用户存储\'&$st&'.rar') Then
        MsgBox(16,'警告','删除无效,文件正在被另一个人或程序使用')
       Else
        _GUICtrlListViewDeleteItemsSelected ($listview)
        $hy2=Round(DirGetSize($luqin&$yhm&'\用户存储\')/1048576,2)
        GUICtrlSetData($Status, "“"&$yhm&"”的私人空间(已使用"&$hy2&"M   总容量"&$dx&"M)")      
       EndIf
      EndIf
     EndIf
   Case $msg = $rea
     $st=_GUICtrlListViewGetItemText($listview, _GUICtrlListViewGetSelectedIndices($listview), 0)
     If $st<>'' Then
       $gui10=GUICreate("文件重命名",210,62,-1,-1,$WS_SYSMENU)
      GUICtrlCreateLabel("名称:",5, 8, 40, 15)
      $in=GUICtrlCreateInput ( $st,40, 5, 118, 20)
      $readname = GUICtrlCreateButton("确定", 160, 5, 40, 20)
      GUICtrlSetState ($readname, $GUI_DEFBUTTON)
      GUISetState (@SW_SHOW)
      While 1
       $ms = GUIGetMsg()
       $ipn=GUICtrlRead($in)
       If $ms= $GUI_EVENT_CLOSE Then
        GUIDelete ($gui10)
        ExitLoop
       EndIf
       If $ms= $readname Then
        If $ipn='' Then
         MsgBox(0,'错误','文件名不能为空',0)
        Else
         If FileExists($luqin&$yhm&'\用户存储\'&$ipn&'.rar') Then
          MsgBox(48,'提示','该名称已存在',0)
         Else
          FileMove($luqin&$yhm&'\用户存储\'&$st&'.rar', $luqin&$yhm&'\用户存储\'&$ipn&'.rar',0)
          Sleep(500)
          If FileExists($luqin&$yhm&'\用户存储\'&$ipn&'.rar')=0 And FileExists($luqin&$yhm&'\用户存储\'&$st&'.rar') Then
           MsgBox(16,'警告','重命名无效,文件正在被另一个人(程序)使用或文件名包含非法字符',0)
          Else
           $id=_GUICtrlListViewGetSelectedIndices($listview)
           _GUICtrlListViewSetItemText ($listview, $id, 0, $ipn)
           GUIDelete ($gui10)
           ExitLoop
          EndIf
         EndIf
        EndIf
       EndIf
      
      Wend
     EndIf
   Case $msg = $upgame;上传游戏存档
    $ret = _GUICtrlListGetText ($uy1, _GUICtrlListSelectedIndex ($uy1))
    If $ret<>-1 Then
     If $shulang-_GUICtrlListGetInfo ($uy2) <=   0 Then
      MsgBox(48,'提示','每个游戏存档数量不能超过'&$shulang&'个',0)
     Else
      DirCreate ($luqin&$yhm&'\游戏存档\'&$ret)
     $wj=@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC
      $wd=IniReadSection(@ScriptDir&'\game.db',$ret)
      $gsa= IniRead (@ScriptDir&'\game.db', $ret, "存档路径", "" )
      $bsa=IniRead (@ScriptDir&'\game.db', $ret, "排除路径", "" )
      $tpmesa=_TempFile()
      $tpmeba=_TempFile()
      If $gsa<>'' Then
       $sa=StringSplit($gsa, '|')
       For $w = 1 To $sa[0]
        FileWrite ($tpmesa, '"'&formatPath2($sa[$w])&'" ')
       Next
       $yyw=FileReadLine ($tpmesa, 1)
      Else
       ExitLoop
      EndIf
      If $bsa<>'' Then
       $ba=StringSplit($bsa, '|')
       For $u = 1 To $ba[0]
        FileWrite ($tpmeba, '-x"'&formatPath2($ba[$u])&'" ')
       Next
       $yyb=FileReadLine($tpmeba, 1)
      Else
       $yyb='-x '
      EndIf
      FileDelete ($tpmesa)
      FileDelete ($tpmeba)
      If $yyw<>'' Then
        $gui8=GUICreate("上传存档",355,110,-1,-1,$WS_SYSMENU)
        $jindutao = GUICtrlCreateProgress (10,50,293,20)
        GUICtrlCreateLabel("正在上传游戏存档,请稍候……", 10, 20, 230, 20)
        GUICtrlSetFont (-1,12)
        $Statustao = GUICtrlCreateLabel("   0%", 308, 51, 100, 20)
        GUICtrlSetFont ($Statustao,11)
        GUISetState ()     
        $redcmd = Run(@ComSpec & ' /c '&$nesfi&'\ys a "'&$luqin&$yhm&'\游戏存档\'&$ret&'\'&$wj&'.rar" -y '&$yyb&$yyw, @SystemDir, @SW_HIDE, $STDOUT_CHILD) ;压缩
        ProcessWait ('ys.exe',60)
        $xk=0

Do
          $msg = GUIGetMsg()
          $PID=ProcessExists("ys.exe")
          If $PID=0 Then
           If FileExists($luqin&$yhm&'\游戏存档\'&$ret&'\'&$wj&'.rar')=0 Then
            MsgBox(48,'错误','无法上传该文件',0)
            GUIDelete ($gui8)
            ExitLoop
           Else
             $xk=100
             GUICtrlSetData ($jindutao,$xk)
             GUICtrlSetData($Statustao,$xk&'%')
             GUICtrlSetData($uy2,$wj&'.rar')
             GUICtrlSetData($stsl,'可存'&$shulang-_GUICtrlListGetInfo ($uy2)&'个档')
             GUIDelete ($gui8)
             ExitLoop
           EndIf
          EndIf
          $bshi=StringSplit(StdoutRead($redcmd), "%")
          If $bshi[0]=2 Then
           $xk=StringRight ($bshi[1], 3)
           If $xk = 100 Then
             GUICtrlSetData ($jindutao,$xk)
             GUICtrlSetData($Statustao,$xk&'%')
             GUICtrlSetData($uy2,$wj&'.rar')
             GUICtrlSetData($stsl,'可存'&$shulang-_GUICtrlListGetInfo ($uy2)&'个档')
             ProcessClose('ys.exe')
             GUIDelete ($gui8)
             ExitLoop   
           Else
             GUICtrlSetData ($jindutao,$xk)
             GUICtrlSetData($Statustao,$xk&'%')
           EndIf
          EndIf
        
          If $msg = $GUI_EVENT_CLOSE Then
           $dlj=MsgBox(0+4,'提示','正在上传游戏存档,确定退出?',0)
           If $dlj=6 Then
            ProcessClose('ys.exe')
            ProcessWaitClose ('ys.exe', 60)  
            Sleep(200)
            FileDelete ($luqin&$yhm&'\游戏存档\'&$ret&'\'&$wj&'.rar')
            GUIDelete ($gui8)
            ExitLoop   
           EndIf
          EndIf
         Until $xk=100
       EndIf
      EndIf  

     EndIf
    Case $msg = $downgame;下载游戏存档
     $rot = _GUICtrlListGetText ($uy2, _GUICtrlListSelectedIndex ($uy2))
     If $rot<>-1 Then
       $goa=IniRead (@ScriptDir&'\game.db', $frer, "存档路径", "" )
       If $goa<>'' Then
        $gui11=GUICreate("下载存档",355,160,-1,-1,$WS_SYSMENU)
        $jindutao2 = GUICtrlCreateProgress (10,50,293,20)
        $jindutao = GUICtrlCreateProgress (10,90,293,20,$PBS_SMOOTH)
        GUICtrlSetColor(-1, 32250)
        GUICtrlCreateLabel("正在下载游戏存档,请稍候……", 10, 20, 230, 20)
        GUICtrlSetFont (-1,12)
        $Statustao2 = GUICtrlCreateLabel("0%", 308, 51, 100, 20)
        $Statustao = GUICtrlCreateLabel("0%", 308, 91, 100, 20)
        GUICtrlSetFont ($Statustao,11)
        GUISetState ()
        $xsa=StringSplit($goa, '|')
        $tempba=_TempFile()
        $d=0
        For $y= 1 To $xsa[0]
         $banfu=StringLeft ($xsa[$y], 1 )
         If StringInStr (FileReadLine ($tempba, 1), $banfu)=0 Then
          FileWrite ($tempba, $banfu)
          $redcmd = Run(@ComSpec & ' /c '&$nesfi&'\ys x "'&$luqin&$yhm&'\游戏存档\'&$frer&'\'&$rot&'" -y -o+ '&$banfu&':\', @SystemDir, @SW_HIDE, $STDOUT_CHILD)
          ProcessWait ('ys.exe',60)
          $xj=0
          Do
           $msg = GUIGetMsg()
           $PID=ProcessExists("ys.exe")
           If $PID=0 Then
            $xj=100
            GUICtrlSetData ($jindutao,$xj)
            GUICtrlSetData($Statustao,$xj&'%')
            ExitLoop
           EndIf
           $bshi=StringSplit(StdoutRead($redcmd), "%")
           If $bshi[0]=2 Then
            $xj=StringRight ($bshi[1], 2)
            If $xj < 0 Or $xj > 100 Then
              GUICtrlSetData ($jindutao,$xj)
              GUICtrlSetData($Statustao,$xj&'%')  
            Else
              GUICtrlSetData ($jindutao,$xj)
              GUICtrlSetData($Statustao,$xj&'%')
            EndIf
           EndIf
         
           If $msg = $GUI_EVENT_CLOSE Then
            $dlj=MsgBox(0+4,'提示','正在下载游戏存档,确定退出?',0)
            If $dlj=6 Then
             ProcessClose('ys.exe')
             ExitLoop   
            EndIf
           EndIf
          Until $xj=100
         EndIf
         $d=$d+1
         $s=Round( $d/$xsa[0]*100, 0)
         GUICtrlSetData ($jindutao2,$s)
         GUICtrlSetData($Statustao2,$s&'%')      
        Next
        FileDelete ($tempba)
        GUIDelete ($gui11)
       EndIf
     EndIf   
    Case $msg = $delgame;删除游戏存档
     $det =_GUICtrlListSelectedIndex ($uy2)
     $sdet=_GUICtrlListGetText ($uy2, $det)
     If $det<>-1 Then
      $yeng=MsgBox(0+4,'提示','确认删除 '&$sdet)
      If $yeng=6 Then
       FileDelete($luqin&$yhm&'\游戏存档\'&$frer&'\'&$sdet)
       Sleep(500)
       If FileExists($luqin&$yhm&'\游戏存档\'&$frer&'\'&$sdet) Then
        MsgBox(16,'警告','删除无效,文件正在被另一个人或程序使用')
       Else
        _GUICtrlListDeleteItem ($uy2, $det)
        GUICtrlSetData($stsl,'可存'&$shulang-_GUICtrlListGetInfo ($uy2)&'个档')
       EndIf
      EndIf
     EndIf
    Case $msg = $reagame;攸改游戏存档名称
     $ren =_GUICtrlListSelectedIndex ($uy2)
     $sren=_GUICtrlListGetText ($uy2, $ren)
      If $ren<>-1 Then
        $gui9=GUICreate("改名",210,62,-1,-1,$WS_SYSMENU)
       GUICtrlCreateLabel("名称:",5, 8, 40, 15)
       $int=GUICtrlCreateInput ( StringTrimRight ($sren,4),40, 5, 118, 20)
       $ko = GUICtrlCreateButton("确定", 160, 5, 40, 20)
       GUICtrlSetState ($ko, $GUI_DEFBUTTON)
       GUISetState (@SW_SHOW)
       While 1
        $ms = GUIGetMsg()
        $ibn=GUICtrlRead($int)
        If $ms= $GUI_EVENT_CLOSE Then
         GUIDelete ($gui9)
         ExitLoop
        EndIf
        If $ms= $ko Then
         If $ibn='' Then
          MsgBox(0,'错误','名称不能为空',0)
         Else
          If FileExists($luqin&$yhm&'\游戏存档\'&$frer&'\'&$ibn&'.rar') Then
           MsgBox(48,'提示','该名称已存在',0)
          Else
           FileMove($luqin&$yhm&'\游戏存档\'&$frer&'\'&$sren, $luqin&$yhm&'\游戏存档\'&$frer&'\'&$ibn&'.rar',0)
           Sleep(500)
           If FileExists($luqin&$yhm&'\游戏存档\'&$frer&'\'&$ibn&'.rar')=0 And FileExists($luqin&$yhm&'\游戏存档\'&$frer&'\'&$sren) Then
            MsgBox(16,'警告','重命名无效,文件正在被另一个人(程序)使用或文件名包含非法字符',0)
           Else
             _GUICtrlListReplaceString ($uy2 , $ren ,    $ibn&'.rar')
            GUIDelete ($gui9)
            ExitLoop
           EndIf
          EndIf
         EndIf
        EndIf
       Wend
      EndIf   
    Case $msg = $button ;搜索游戏
      $rf=GUICtrlRead($input)
      If $rf='' Then
       MsgBox(48, "提示", '请输入关键词')
      Else
       If namefile($rf,$uy1,0)<>-1 Then
        _GUICtrlListSelectIndex ($uy1, namefile($rf,$uy1,0))
       Dim $y=namefile($rf,$uy1,0)
       Else
        MsgBox(48, "提示", '对不起!找不到“'&$rf&'”')
       EndIf
      EndIf

    Case $msg = $button1 ;搜索下一个游戏
      If $y=-1 Then
       MsgBox(48, "提示", "请先搜索")
      Else
       If GUICtrlRead($input)='' Or GUICtrlRead($input)<>$rf Then
        MsgBox(48, "提示", "请先搜索")
        $y=-1
       Else
        $y=$y+1
        If namefile($rf,$uy1,$y)<>-1 Then
         _GUICtrlListSelectIndex ($uy1, namefile($rf,$uy1,$y))
        EndIf
       EndIf
      EndIf
  
    Case $msg = $GUI_EVENT_CLOSE      
FileDelete ($nesfi&'\ys.exe')     
Exit   
Case $msg = $GUI_EVENT_PRIMARYDOWN   
$pos = GUIGetCursorInfo()     
If IsArray($pos) Then      
If ($pos[4] == $listview) Then      
GUICtrlSetTip($listview,_GUICtrlListViewGetItemText($listview, _GUICtrlListViewGetSelectedIndices($listview), 0))     
EndIf     
EndIf      

Case $msg = $uy1   
_GUICtrlListClear ($uy2)     $rert = _GUICtrlListGetText ($uy1, _GUICtrlListSelectedIndex ($uy1))   
If ($rert == $LB_ERR) Then     
Else      
GUICtrlSetData($rtys, $rert&'列表:')      
$sear = FileFindFirstFile($luqin&$yhm&'\游戏存档\'&$rert&'\*.rar')        
If $sear <> -1 Then      
While 1        
$filk = FileFindNextFile($sear)        
If @error Then ExitLoop      
GUICtrlSetData($uy2,$filk)      
WEnd      
EndIf      

FileClose($sear)   
EndIf     

GUICtrlSetData($stsl,'可存'&$shulang-_GUICtrlListGetInfo ($uy2)&'个档')      
Dim $frer=$rert EndSelect WendEndFunc

;         用户路径    原文件    目标文件     总大小       返回原值

Func up($yonglq , $yanwx , $mubaowx , $zmb    ,$yhm6,$dx6,$luqin6,$jibie6)
$gui6=GUICreate("上传文件",355,110,-1,-1,$WS_SYSMENU)
$jindu = GUICtrlCreateProgress (10,50,293,20) GUICtrlCreateLabel("正在上传文件,请稍候……", 10, 20, 200, 20)
GUICtrlSetFont (-1,12)
$Status = GUICtrlCreateLabel("    0%", 308, 51, 100, 20)
GUICtrlSetFont ($Status,11) GUISetState ()     
$ymb=Round(DirGetSize($yonglq&'\用户存储')/1048576,2)   
$qsdx=FileGetSize($yanwx)/1048576   
If $qsdx=0 Then $qsdx=DirGetSize($yanwx)/1048576     
$ydx=Round($qsdx,2)     
If $ymb > $zmb Or $ymb = $zmb Then      
MsgBox(48,'提示','用户空间已满,请删除一些文件再上传')     
GUIDelete ($gui6)     
yonghu($yhm6,$dx6,$luqin6,$jibie6)   
ElseIf $ymb+$ydx > $zmb Then      
MsgBox(48,'提示','你的空间已经容不下该文件,请删除一些文件再上传')   
GUIDelete ($gui6)     
yonghu($yhm6,$dx6,$luqin6,$jibie6)   
ElseIf FileExists($yonglq&'\用户存储\'&$mubaowx&'.rar') Then      
$rs=MsgBox(48+4,'提示','你的空间已存在该文件,是否替换?')     
If $rs=6 Then      FileDelete ($yonglq&'\用户存储\'&$mubaowx&'.rar')     
IniDelete ($yonglq&'\data.db', "私人存档",$mubaowx)     
Else      
GUIDelete ($gui6)      
yonghu($yhm6,$dx6,$luqin6,$jibie6)     
EndIf        
EndIf   

$redcmd = Run(@ComSpec & ' /c '&$nesfi&'\ys a "'&$yonglq&'\用户存储\'&$mubaowx&'.rar"'&' -ep1 -m0 -hpQ147241793 -y "'&$yanwx&'"', @SystemDir, @SW_HIDE, $STDOUT_CHILD) ;压缩
ProcessWait ('ys.exe',60) $xh=0   
Do     $msg = GUIGetMsg()    $PID=ProcessExists("ys.exe")   
If $PID=0 Then     
If FileExists($yonglq&'\用户存储\'&$mubaowx&'.rar')=0 Then      
MsgBox(48,'错误','无法上传该文件',0)     
GUIDelete ($gui6)      yonghu($yhm6,$dx6,$luqin6,$jibie6)     Else      
$xh=100      
GUICtrlSetData ($jindu,$xh)      
GUICtrlSetData($Status,$xh&'%')      
MsgBox(0,'提示','上传已经完成',0)      
GUIDelete ($gui6)       yonghu($yhm6,$dx6,$luqin6,$jibie6)      
EndIf   
EndIf     
$bshi=StringSplit(StdoutRead($redcmd), "%")   
If $bshi[0]=2 Then     
$xh=StringRight ($bshi[1], 3)     
If $xh = 100 Then      GUICtrlSetData ($jindu,$xh)      GUICtrlSetData($Status,$xh&'%')      
MsgBox(0,'提示','上传已经完成',0)      
ProcessClose('ys.exe')      
GUIDelete ($gui6)     
yonghu($yhm6,$dx6,$luqin6,$jibie6)         
Else     
GUICtrlSetData ($jindu,$xh)      GUICtrlSetData($Status,$xh&'%')     
EndIf    EndIf      
If $msg = $GUI_EVENT_CLOSE Then      
$dlj=MsgBox(0+4,'提示','正在下载中,确定退出?',0)   
If $dlj=6 Then      
ProcessClose('ys.exe')      ProcessWaitClose ('ys.exe', 60)        
Sleep(200)      FileDelete ($yonglq&'\用户存储\'&$mubaowx&'.rar')            
GUIDelete ($gui6)      yonghu($yhm6,$dx6,$luqin6,$jibie6)         
EndIf   
EndIf   
Until $xh=100    EndFunc

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.