speechless |
10-09-2010 00:00 1492160 |
Âëîæåíèé: 1
êàê òî äàâíî äåëàë äëÿ ñåáÿ, ïîñìîòðè
Êîä:
#include <GUIConstants.au3>
GUICreate("MoDev",400,130) ; will create a dialog box that when displayed is centered
GUISetState (@SW_SHOW) ; will display an empty dialog box
$regEnumVal = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\RZ\MoDev", 1) ;÷èòàåì ïåðâîå çíà÷åíèå èç ðååñòðà
if @error <> 0 then $regEnumVal="#"
GUICtrlCreateLabel ("Äèñê", 10, 17, 30)
GUICtrlCreateLabel ("Âûáîð èêîíêè", 20, 90, 40,30)
GUICtrlCreateLabel ("Ñìîíòèðîâàòü", 90, 17, 75)
GUICtrlCreateLabel ("Îòìîíòèðîâàòü", 87, 45, 80)
GUICtrlCreateLabel ("Ïîèñê äèñêîâ", 90, 75, 75)
GUICtrlCreateGroup ("Áîíóñ", 12, 33, 53, 90)
GUICtrlCreateLabel ( "MoDev ïàðàçèòèðóåò íà ñòàíäàðòíîé âèíäîçíîé óòèëèòå ""mountvol"" äëÿ ìîíòèðîâàíèÿ/äåìîíòèðîâàíèÿ ðàçäåëîâ äèñêà áåç ïåðåçàãðóçêè ÂÍÈÌÀÍÈÅ: ïðè èçìåíåíèè ðàçìåðîâ ðàçäåëîâ ïîâòîðèòå ïîèñê äèñêîâ", 210,10, 180, 110)
$combo=GUICtrlCreateCombo ($regEnumVal, 45,10,35) ; ñîçäàåì combo
ControlDisable("", "#", $combo) ;äåëàåì ñåðûì combo
For $i = 1 to 100
$regEnumVal = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\RZ\MoDev", $i) ;÷èòàåì â öèêëå ðååñòð
if @error <> 0 Then ExitLoop
GUICtrlSetData($combo,$regEnumVal) ; äîáàâëÿåì â combo áóêâû fixed äèñêîâ
next
$deMount=GUICtrlCreateButton ("Äåìîíòèðîâàòü", 170, 40, 25,23,$BS_ICON) ;êíîïêà äåìîíòèðîâàòü
GUICtrlSetImage ($deMount,"shell32.dll",131,0)
$mount=GUICtrlCreateButton ("Ìîíò", 170, 10, 25,23,$BS_ICON) ;êíîïêà ìîíòèðîâàòü
GUICtrlSetImage ($mount,"shell32.dll",112,0)
$search=GUICtrlCreateButton ("Ïîèñê äèñêîâ", 170, 70, 25,23,$BS_ICON) ;êíîïêà ïîèñêà
GUICtrlSetImage ($search,"shell32.dll",22,0)
$ico=GUICtrlCreateButton ("Èêîíêè", 20, 50, 37,35,$BS_ICON) ;êíîïêà âûáîðà èêîíêè
If GUICtrlRead($combo)="#" then ControlDisable("", "", $ico) ;åñëè äèñêîâ íåò êíîïêà $ico íåàêòèâíà
$str = StringLeft(GUICtrlRead($combo), 1) ;áåðåì òîëüêî áóêâó
$r=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\"&$str&"\DefaultIcon", "") ;÷èòàåì ïóòü ê èêîíêå
GUICtrlSetImage ($ico,"shell32.dll",8) ;ïîêàç èêîíêè íà êíîïêå ïî óìîë÷àíèþ
GUICtrlSetImage ($ico,$r,0) ;ïîêàç èêîíêè íà êíîïêå
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
Select
Case $msg=$deMount
$system = StringLeft(@WindowsDir, 2)
If GUICtrlRead($combo)=$system then
MsgBox(8192,"Warning", "Îñòîðîæíî !!! Âû âûáðàëè ñèñòåìíûé äèñê")
EndIf
$deMountMsg=msgbox(8212,"Demounted", "Äåìîíòèðîâàòü äèñê "&GUICtrlRead($combo)&" Óâåðåí?")
If $deMountMsg=6 then ;åñëè Äà òî
Run("mountvol.exe"&" "&GUICtrlRead($combo)&" /D") ;äåìîíòèðóåì âûáðàííûé ðàçäåë
EndIf
Case $msg=$mount
$MountMsg=msgbox(8260,"Mounted", "Ñìîíòèðîâàòü äèñê "&GUICtrlRead($combo))
;msgbox(8260,"Mounted", $MountMsg)
If $MountMsg=6 then ;åñëè Äà òî
$point = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\RZ\MoDev", GUICtrlRead($combo)) ;÷èòàåì òî÷êó ìîíòèðîâàíèÿ
;msgbox(8260,"Mounted", $point)
$point=StringReplace( $point, "\??\Volume", "\\?\Volume") ;ìåíÿåì ñòðîêó äëÿ mountvol
;msgbox(8260,"Mounted", $point)
Run("mountvol.exe"&" "&GUICtrlRead($combo)&" "&$point) ;ìîíòèðóåì âûáðàííûé ðàçäåë
EndIf
Case $msg=$combo ;ïðè âûáîðå äèñêà
$str = StringLeft(GUICtrlRead($combo), 1) ;áåðåì òîëüêî áóêâó
$r=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\"&$str&"\DefaultIcon", "") ;÷èòàåì ïóòü ê èêîíêå
GUICtrlSetImage ($ico,"shell32.dll",8) ;ïîêàç èêîíêè íà êíîïêå ïî óìîë÷àíèþ
GUICtrlSetImage ($ico,$r,0) ;ïîêàç èêîíêè íà êíîïêå
$system = StringLeft(@WindowsDir, 2)
If GUICtrlRead($combo)=$system then ;åñëè äèñê ñèñòåìíûé
MsgBox(8192,"Warning", "Îñòîðîæíî !!! Âû âûáðàëè ñèñòåìíûé äèñê") ;ïîÿâëÿåòñÿ ïðåäóïðåæäåíèå
EndIf
Case $msg=$search
$fixedDrive = DriveGetDrive( "fixed" ) ;âñå fixed äèñêè
If NOT @error Then
;MsgBox(4096,"", "Found " & $fixedDrive[0] & " drives")
For $i = 1 to $fixedDrive[0] ;èùåì âñå ôèêñèðîâàííûå äèñêè
;MsgBox(4096,"Drive " & $i, $fixedDrive[$i])
$key = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices", "\DosDevices\" & $fixedDrive[$i]) ;èùåì âñå çíà÷åíèÿ ôèêñèðîâàííûõ äèñêîâ â ðååñòðå
;MsgBox(4096, "\DosDevices\" & $fixedDrive[$i], $key)
For $ii = 1 to 100
$a = RegEnumVal("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices", $ii) ;ïðîñìîòð âåòâè MountedDevices
If @error <> 0 Then ExitLoop
;MsgBox(4096, "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices" & $ii, $a)
$result = StringInStr($a, "\??\Volume") ;ïðîâåðêà íà íàëè÷èå ñòðîê "\??\Volume"
;MsgBox(0, "Search result:", $result)
If $result = 1 Then ;åñëè ñòðîêè "\??\Volume" åñòü
$v = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices", $a) ;òî ÷èòàåì çíà÷åíèÿ ýòèõ êëþ÷åé
;MsgBox(4096, $a, $v)
If $v = $key Then
;MsgBox(4096, $fixedDrive[$i], $a) ;íàéäåííûå ñîîòâåòñòâèÿ áóêâû äèñêà è òî÷êè ìîíòèðîâàíèÿ
; Write a single REG_SZ value
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\RZ\MoDev", $fixedDrive[$i], "REG_SZ", $a) ;çàïèñü ðåçóëüòàòà â ðååñòð
EndIf
EndIf
next
Next
EndIf
GUICtrlDelete($combo) ;óäàëÿåì ñòàðîå combo
$regEnumVal = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\RZ\MoDev", 1) ;÷èòàåì ïåðâîå çíà÷åíèå èç ðååñòðà
$combo=GUICtrlCreateCombo ($regEnumVal, 45,10,35) ; ñîçäàåì combo
For $i = 1 to 100
$regEnumVal = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\RZ\MoDev", $i) ;÷èòàåì â öèêëå ðååñòð
if @error <> 0 Then ExitLoop
GUICtrlSetData($combo,$regEnumVal) ; äîáàâëÿåì â combo áóêâû fixed äèñêîâ
next
ControlEnable("", "", $ico) ;êíîïêà $ico àêòèâíà
$str = StringLeft(GUICtrlRead($combo), 1) ;áåðåì òîëüêî áóêâó
$r=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\"&$str&"\DefaultIcon", "") ;÷èòàåì ïóòü ê èêîíêå
GUICtrlSetImage ($ico,"shell32.dll",8) ;ïîêàç èêîíêè íà êíîïêå ïî óìîë÷àíèþ
GUICtrlSetImage ($ico,$r,0) ;ïîêàç èêîíêè íà êíîïêå
Case $msg=$ico
$str = StringLeft(GUICtrlRead($combo), 1) ;áåðåì òîëüêî áóêâó
$icoPatch = FileOpenDialog("Âûáîð èêîíêè", "", "Icons (*.ico;*.dll;*.exe)", 1 ) ;îêíî âûáîðà ôàéëà
If $icoPatch<>"" then ;åñëè ïóòü íå ïóñòîé
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\"&$str&"\DefaultIcon", "", "REG_SZ", $icoPatch) ;çàïèñü â ðååñòð ïóòè ê èêîíêå
GUICtrlSetImage ($ico,"shell32.dll",8) ;ïîêàç èêîíêè íà êíîïêå ïî óìîë÷àíèþ
GUICtrlSetImage ($ico,$icoPatch,0) ;ïîêàç èêîíêè íà êíîïêå
EndIf
EndSelect
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
âåðñèþ íå ïîìíþ, íà âñÿêèé ñëó÷àé ïðèêðåïëÿþ exe
|