Что нового

[Элементы GUI] Работа с переменными в окне GUI

artpluss

Новичок
Сообщения
21
Репутация
0
Помогите сделать следующее.
Есть такой код

Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>

$iniFile="config1.ini"
$kolonka1=IniRead($iniFile,"kolonki","kolonka1","18"); количество в 1-ой колонке
$kolonka2=IniRead($iniFile,"kolonki","kolonka2","36"); количество во 2-ой колонке

; Создать окно диалога для добавления управляющих элементов ...
$GUI=GUICreate("Программа", 356, 447, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_GROUP, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))

; Создать в окне GUI элемент Label ...
$aVar = IniReadSection($iniFile, "MyComp")
$rYY=5
	For $j = 1 To $kolonka1
		$Label = GUICtrlCreateLabel($aVar[$j][1], 10, $rYY, 95, 17)
		$aVar[$j][0] = GUICtrlCreateButton("open", 135, $rYY, 40, 17)
		$rYY=$rYY+20
	Next

$kolonka1 = $kolonka1 + 1

$rYY=5
	For $j = $kolonka1 To $kolonka2
		$Label = GUICtrlCreateLabel($aVar[$j][1], 196, $rYY, 95, 17)
		$aVar[$j][0] = GUICtrlCreateButton("open", 305, $rYY, 40, 17)
		$rYY=$rYY+20
	Next

$ramka = GUICtrlCreateGroup("", 16, 376, 329, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

$title = "Мой компьютер"
$k=0

Func MyComp()
		ShellExecute("EXPLORER.EXE", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
		WinWaitActive ($title)
EndFunc

While 1
	$msg = GUIGetMsg()
		Select
		Case $msg = -3 Or $msg = -1 Or $msg = $GUI_EVENT_CLOSE
            ExitLoop
		Case $msg = $aVar[1][0]
			Local $sRemoteName = "\\" & $aVar[$j][0] & "\C$"
			MyComp()
			ControlSetText ($title,"","Edit1", $sRemoteName)
			ControlClick ($title, "", "ToolbarWindow321")	
	  EndSelect
WEnd


и есть файл config1.ini

Код:
[kolonki]
  kolonka1=5
  kolonka2=10
[MyComp]
  Comp1=User1
  Comp2=User2
  Comp3=User3
  Comp4=User4
  Comp5=User5
  Comp6=User6
  Comp7=User7
  Comp8=User8
  Comp9=User9
  Comp10=User10

Необходимо чтобы ПОСЛЕ НАЖАТИЯ НА КНОПКУ OPEN НАПРОТИВ ПОЛЬЗОВАТЕЛЯ, ПЕРЕМЕННАЯ $sRemoteName ПРИНИМАЛА ЗНАЧЕНИЕ ТИПА $sRemoteName = "\\" & ИМЯ КОМПЬЮТЕРА СООТВЕТСТВУЮЩЕЕ ПОЛЬЗОВАТЕЛЮ НАПРОТИВ КОТОРОГО БЫЛА НАЖАТА КНОПКА open & "\C$"

Т.е. мне нужно чтобы после нажатия на кнопку open которая находится напротив User1 я попадал на диск С: этой машины в данном случае на диск С: компьютера Comp1
 

XpycT

Скриптер
Сообщения
380
Репутация
132
artpluss
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]

Как вариант можно сделать так
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>

$iniFile="config1.ini"
$kolonka1=IniRead($iniFile,"kolonki","kolonka1","18"); количество в 1-ой колонке
$kolonka2=IniRead($iniFile,"kolonki","kolonka2","36"); количество во 2-ой колонке

; Создать окно диалога для добавления управляющих элементов ...
$GUI=GUICreate("Программа", 356, 447, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_GROUP, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))

; Создать в окне GUI элемент Label ...
$aVar = IniReadSection($iniFile, "MyComp")
$rYY=5
	For $j = 1 To $kolonka1
		$Label = GUICtrlCreateLabel($aVar[$j][1], 10, $rYY, 95, 17)
		$aVar[$j][1] = GUICtrlCreateButton("open", 135, $rYY, 40, 17)
		$rYY=$rYY+20
	Next

$kolonka1 = $kolonka1 + 1

$rYY=5
	For $j = $kolonka1 To $kolonka2
		$Label = GUICtrlCreateLabel($aVar[$j][1], 196, $rYY, 95, 17)
		$aVar[$j][1] = GUICtrlCreateButton("open", 305, $rYY, 40, 17)
		$rYY=$rYY+20
	Next

$ramka = GUICtrlCreateGroup("", 16, 376, 329, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)

$title = "Мой компьютер"
$k=0

Func MyComp()
		ShellExecute("EXPLORER.EXE", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}")
		WinWaitActive ($title)
EndFunc

While 1
	$msg = GUIGetMsg()
		Select
		Case $msg = -3 Or $msg = -1 Or $msg = $GUI_EVENT_CLOSE
            ExitLoop
		Case $msg >= $aVar[1][1] And $msg <= $aVar[$aVar[0][0]][1]
			Dim $j = -1
			For $i = 1 To 5
				If $aVar[$i][1] = $msg Then $j = $i
			Next

			If $j = -1 Then ContinueLoop

			Local $sRemoteName = "\\" & $aVar[$j][0] & "\C$"
			MyComp()
			ControlSetText ($title,"","Edit1", $sRemoteName)
			ControlClick ($title, "", "ToolbarWindow321")
	  EndSelect
WEnd
 
Верх