Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Простейшее окно с ограничениями (http://forum.oszone.net/showthread.php?t=170171)

11943499 15-03-2010 00:43 1368771

Простейшее окно с ограничениями
 
Ребята, нужна помощь...
Нужно открыть окно файл-менеджера с нужным диском и чтобы показывалось содержимое только этого диска без возможности переключаться на другие ресурсы но с возможностью запуска прог.
Или же на крайняк использовать функцию (?) windows открытия диска.
"FileOpenDialog" не предлагать ! )

kaster 15-03-2010 00:49 1368779

Код:

FileSelectFolder('Choose folder', 'C:\', 1+2+4, '')

11943499 15-03-2010 01:14 1368797

Это даже для "крайняка" не подходит. Нужен доступ к файлам и их запуску.

kaster 15-03-2010 01:21 1368804

11943499, то бишь написать файл manager? :D
идея конечно заманчивая и интересная. но я на седня пасс. возможно завтра :)

11943499 15-03-2010 01:26 1368808

Наверняка есть готовая функция api или что-то вроде, позволяющее инициировать файловый диалог...

kaster 15-03-2010 01:29 1368811

11943499, ну да. и это FileOpenDialog. но он тебе, как ты говоришь, не подходит

gregaz 15-03-2010 17:07 1369264

Как вам такой простенький вариант :

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 1369518

Цитата:

Цитата gregaz
Как вам такой простенький вариант :
Test GUI :
читать дальше » »

Не понял что за ссылка, кидает в начало моей же ветки... ?

kaster 15-03-2010 23:11 1369522

Цитата:

Цитата 11943499
Не понял что за ссылка, кидает в начало моей же ветки... ? »

у тебя не FireFox с NoScript? если так, просто добавь oszone.net в список доверенных сайтов
а там просто раскрывающийся блок с кодом того, что тебе надо

11943499 16-03-2010 00:09 1369550

Цитата:

Цитата kaster
у тебя не FireFox с NoScript? если так, просто добавь oszone.net в список доверенных сайтов
а там просто раскрывающийся блок с кодом того, что тебе надо »

Если не сложно, просьба передать код любым другим способом.... Ни опера, ни IE не открывают эту ссылку.

kaster 16-03-2010 00:18 1369553

Код:

#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


Время: 16:31.

Время: 16:31.
© OSzone.net 2001-