Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Pavluha

Старожил


Сообщения: 165
Благодарности: 7

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include <GuiTreeView.au3>
AutoItSetOption("MustDeclareVars", 1)

Global $hMainWnd, $hTreeView,$hTreeViewComp[256][2],$i,$j

$hMainWnd = GUICreate("Локальная сеть",500,300)
$hTreeView = GUICtrlCreateTreeView(10,10,480,280)
$i = 3 ;кол-во хандлов до функции
GUISetState ()

_Start()
_GUICtrlTreeView_Expand ($hTreeView)
While 1
    Switch GUIGetMsg($hMainWnd)
        Case 0
            ContinueLoop
        Case -3
            ExitLoop
        Case GUICtrlRead($hTreeView)
            If MsgBox(4,'Вопрос:','Вы действительно хотите скачать файл D:\pic.png с компьютера ' & $hTreeViewComp[GuiCtrlRead($hTreeView)][1])=6 Then
                FileCopy($hTreeViewComp[GuiCtrlRead($hTreeView)][1] & "\d\pic.png",@ScriptDir & '\pic.png')
            EndIf
    EndSwitch
WEnd

Func _Start ()
Local $oShell = ObjCreate("Shell.Application")
Local $oFolder_Network
Local $oFolder_EntireNetwork

Local $objFolder_MSNetwork

Local $oFolder_Domain
Local $oFolder_MachineName

Local $oFolderItem
Local $oFolderItem_Domain
Local $oFolderItem_MachineName

; Получение папки "Сетевое окружение"
$oFolder_Network       = $oShell.NameSpace("::{208D2C60-3AEA-1069-A2D7-08002B30309D}")
; Получение папки "Вся сеть"
$oFolder_EntireNetwork = $oFolder_Network.Items().Item("EntireNetwork").GetFolder

; Получение папки "Microsoft Windows Network"
For $oFolderItem In $oFolder_EntireNetwork.Items()
    If $oFolderItem.Name = "Microsoft Windows Network" Then
        $objFolder_MSNetwork = $oFolderItem.GetFolder

        If IsObj($objFolder_MSNetwork) Then
            ; Перебор доменов и рабочих групп
            For $oFolderItem_Domain In $objFolder_MSNetwork.Items()
                If $oFolderItem_Domain.IsFolder Then
                    $i+=1
                    $j=$i
                    $hTreeViewComp[$i][0] = GUICtrlCreateTreeViewItem($oFolderItem_Domain.Path & " [" & $oFolderItem_Domain.Name & "]",$hTreeView)
                    $hTreeViewComp[$i][1] = $oFolderItem_Domain.Path

                    $oFolder_Domain = $oFolderItem_Domain.GetFolder

                    If IsObj($oFolder_Domain) Then
                        ; Перебор компьютеров
                        For $oFolderItem_MachineName In $oFolder_Domain.Items()
                            $i+=1
                            $hTreeViewComp[$i][0] = GUICtrlCreateTreeViewItem($oFolderItem_MachineName.Path & " [" & $oFolderItem_MachineName.Name & "]",$hTreeViewComp[$j][0])
                            $hTreeViewComp[$i][1] = $oFolderItem_MachineName.Path
                        Next
                    Else
                        ConsoleWriteError(@TAB & "Can't connect to [" & $oFolderItem_Domain.Name & "]" & @CRLF)
                    EndIf
                EndIf
            Next
        Else
            ConsoleWriteError(@TAB & "Can't find [Microsoft Windows Network]" & @CRLF)
        EndIf

        ExitLoop
    EndIf
Next

EndFunc
Сам начал тему, сам и закончил) Основу взял отсюда: http://forum.oszone.net/post-1509068-9.html

Последний раз редактировалось Pavluha, 30-01-2013 в 11:55. Причина: доделал код, разукрасил и дал ссылку


Отправлено: 11:06, 30-01-2013 | #2