Показать полную графическую версию : Простейшее окно с ограничениями
11943499
15-03-2010, 00:43
Ребята, нужна помощь...
Нужно открыть окно файл-менеджера с нужным диском и чтобы показывалось содержимое только этого диска без возможности переключаться на другие ресурсы но с возможностью запуска прог.
Или же на крайняк использовать функцию (?) windows открытия диска.
"FileOpenDialog" не предлагать ! )
FileSelectFolder('Choose folder', 'C:\', 1+2+4, '')
11943499
15-03-2010, 01:14
Это даже для "крайняка" не подходит. Нужен доступ к файлам и их запуску.
11943499, то бишь написать файл manager? :D
идея конечно заманчивая и интересная. но я на седня пасс. возможно завтра :)
11943499
15-03-2010, 01:26
Наверняка есть готовая функция api или что-то вроде, позволяющее инициировать файловый диалог...
11943499, ну да. и это FileOpenDialog. но он тебе, как ты говоришь, не подходит
Как вам такой простенький вариант :
Test GUI : #include <WindowsConstants.au3>
#include <GUITreeView.au3>
#include <File.au3>
$hGUI = GUICreate("Test", 400, 500)
$hTreeView = GUICtrlCreateTreeView(6, 6, 300, 450, -1, $WS_EX_STATICEDGE+$WS_EX_CLIENTEDGE)
_GUICtrlTreeView_SetBkColor($hTreeView , 0xDBDBDB )
$idDiscItem=GUICtrlCreateTreeViewItem("D:",$hTreeView)
_GUICtrlTreeView_SetIcon($hTreeView,$idDiscItem,"shell32.dll",7)
$Exit_Button = GUICtrlCreateButton("Exit", 330, 470, 60, 20)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3, $Exit_Button
Exit
Case Else
If $nMsg <= 0 Then ContinueLoop
$iItem_CtrlID = GUICtrlRead($hTreeView)
$sFullName=StringReplace(_GUICtrlTreeView_GetTree($hTreeView, $iItem_CtrlID) ,'|','\')
UpDateTV($hTreeView,$iItem_CtrlID)
If StringInStr ( FileGetAttrib ($sFullName ) , "D") Then ContinueLoop
ShellExecute($sFullName)
EndSwitch
WEnd
Func UpDateTV($hTV,$idItem)
If _GUICtrlTreeView_GetChildren($hTV,$idItem) =False Then
$aFolderList=_FileListToArray( $sFullName,'*',2)
For $i =1 To UBound($aFolderList)-1
$hChild=GUICtrlCreateTreeViewItem ( $aFolderList[$i], $idItem )
_GUICtrlTreeView_SetIcon($hTV,$hChild,"shell32.dll",3)
Next
$aFileList=_FileListToArray( $sFullName,'*',1)
For $i =1 To UBound($aFileList)-1
$hChild=GUICtrlCreateTreeViewItem ( $aFileList[$i], $idItem )
_GUICtrlTreeView_SetIcon($hTV,$hChild,"shell32.dll",0)
Next
_GUICtrlTreeView_Expand($hTV, $idItem)
EndIf
EndFunc
Лучше конечно использовать : WM_NOTIFY
Можно причесывать его : Находить файл иконки и т.д.
11943499
15-03-2010, 23:04
Как вам такой простенький вариант :
Test GUI :
читать дальше » »
Не понял что за ссылка, кидает в начало моей же ветки... ?
Не понял что за ссылка, кидает в начало моей же ветки... ? »
у тебя не FireFox с NoScript? если так, просто добавь oszone.net в список доверенных сайтов
а там просто раскрывающийся блок с кодом того, что тебе надо
11943499
16-03-2010, 00:09
у тебя не FireFox с NoScript? если так, просто добавь oszone.net в список доверенных сайтов
а там просто раскрывающийся блок с кодом того, что тебе надо »
Если не сложно, просьба передать код любым другим способом.... Ни опера, ни IE не открывают эту ссылку.
#include <WindowsConstants.au3>
#include <GUITreeView.au3>
#include <File.au3>
$hGUI = GUICreate("Test", 400, 500)
$hTreeView = GUICtrlCreateTreeView(6, 6, 300, 450, -1, $WS_EX_STATICEDGE+$WS_EX_CLIENTEDGE)
_GUICtrlTreeView_SetBkColor($hTreeView , 0xDBDBDB )
$idDiscItem=GUICtrlCreateTreeViewItem("D:",$hTreeView)
_GUICtrlTreeView_SetIcon($hTreeView,$idDiscItem,"shell32.dll",7)
$Exit_Button = GUICtrlCreateButton("Exit", 330, 470, 60, 20)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3, $Exit_Button
Exit
Case Else
If $nMsg <= 0 Then ContinueLoop
$iItem_CtrlID = GUICtrlRead($hTreeView)
$sFullName=StringReplace(_GUICtrlTreeView_GetTree($hTreeView, $iItem_CtrlID) ,'|','\')
UpDateTV($hTreeView,$iItem_CtrlID)
If StringInStr ( FileGetAttrib ($sFullName ) , "D") Then ContinueLoop
ShellExecute($sFullName)
EndSwitch
WEnd
Func UpDateTV($hTV,$idItem)
If _GUICtrlTreeView_GetChildren($hTV,$idItem) =False Then
$aFolderList=_FileListToArray( $sFullName,'*',2)
For $i =1 To UBound($aFolderList)-1
$hChild=GUICtrlCreateTreeViewItem ( $aFolderList[$i], $idItem )
_GUICtrlTreeView_SetIcon($hTV,$hChild,"shell32.dll",3)
Next
$aFileList=_FileListToArray( $sFullName,'*',1)
For $i =1 To UBound($aFileList)-1
$hChild=GUICtrlCreateTreeViewItem ( $aFileList[$i], $idItem )
_GUICtrlTreeView_SetIcon($hTV,$hChild,"shell32.dll",0)
Next
_GUICtrlTreeView_Expand($hTV, $idItem)
EndIf
EndFunc
©gregaz
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC