PDA

Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.


Страниц : 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

Senka11
29-01-2008, 16:56
#include <GUIConstants.au3>

GUICreate("Computer ID system created by Senka!", 320, 200)
GUICtrlCreateLabel("Input Computer ID", 10, 10)
$okbutton = GUICtrlCreateButton("Ready", 110, 120, 60)
$nEdit = GUICtrlCreateInput ("inventory no.", -1,3,175,20)
$aEdit = GUICtrlCreateInput ("Everest no.", -1,30,175,20)
GUISetState ()

While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
exit

Case $msg = $okbutton
MsgBox(0, "11", "You pressed OK!")
filewrite(FileOpen("Data.txt",1),"Data from $nEdit: " & $nEdit &@CRLF& "Data from $aEdit: "& $NEdit & @CRLF)

EndSelect
WEnd

работает но не так как нужно!

filewrite(FileOpen("Data.txt",1),"Data from $nEdit: " & $nEdit &@CRLF& "Data from $aEdit: "& $NEdit & @CRLF)
записывает в файл:

Data from $nEdit: 6

что бы я не вводил в
$nEdit = GUICtrlCreateInput ("inventory no.", -1,3,175,20)
подскажите че исправить!!!!

HORRIBLE
29-01-2008, 17:19
Creat0R,
ага, спасибо за FileClose(Handle)- эту команду воткнул в код и все получил ответ на свой вопрос который ты не понял)

Creat0R
29-01-2008, 17:23
Senka11,
Во-первых код заключать нужно в тег (#)... или использовать утилиту для раскраски (http://creator-lab.ucoz.ru/load/4-1-0-18) ;)

подскажите че исправить!

[code]#include <GUIConstants.au3>

GUICreate("Computer ID system created by Senka!", 320, 200)

GUICtrlCreateLabel("Input Computer ID", 10, 10)

$OK_Button = GUICtrlCreateButton("Ready", 110, 120, 60)

$nEdit = GUICtrlCreateInput("inventory no.", -1, 3, 175, 20)
$aEdit = GUICtrlCreateInput("Everest no.", -1, 30, 175, 20)

GUISetState()

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
Exit
Case $OK_Button
MsgBox(0, "11", "You pressed OK!")

Local $sDataFrom_nEdit = GUICtrlRead($nEdit)
Local $sDataFrom_aEdit = GUICtrlRead($aEdit)

Local $hOpenFile = FileOpen("Data.txt", 1)

FileWriteLine($hOpenFile, _
"Data from $nEdit: " & $sDataFrom_nEdit & @CRLF & _
"Data from $aEdit: "& $sDataFrom_aEdit)

FileClose($hOpenFile)
EndSwitch
WEnd

HORRIBLE
29-01-2008, 17:42
Creat0R, а почему в моем примере для Senka11, ересть какая то записывалась в файл,несмотря на то, что ты в водишь в поля ?

#include <GUIConstants.au3>

GUICreate("Computer ID system created by Senka!", 320, 200)
GUICtrlCreateLabel("Input Computer ID", 10, 10)
$okbutton = GUICtrlCreateButton("Ready", 110, 120, 60)
$nEdit = GUICtrlCreateInput ("inventory no.", -1,3,175,20)
$aEdit = GUICtrlCreateInput ("Everest no.", -1,30,175,20)
GUISetState ()

While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
exit

Case $msg = $okbutton
MsgBox(0, "11", "You pressed OK!")
filewrite(FileOpen("Data.txt",1),"Data from $nEdit: " & $nEdit &@CRLF& "Data from $aEdit: "& $NEdit & @CRLF)
FileClose("Data.txt")

EndSelect
WEnd

Senka11
29-01-2008, 18:09
я вот переделал и упростил свою задачу!!!!!!
$nEdit = InputBox("Input inventory ID", "Input inventory ID", "", "", -1,3,175,20)
$aEdit = InputBox("Input Everest ID", "Input Everest ID", "", "", -1,30,175,20)
FileWrite(FileOpen("Data.txt",1),"inventory ID:" &$nEdit&@CRLF& "Everest ID:"& $NEdit & @CRLF)

работает все супер !!!!
теперь вопрос в след. я хочу создать меседж бокс который выводил бы на екран IP тачки !!!!!!!!
и дописывал его вместе с мак адресом в txt файлик!!!!!!Help если ктото знает!!!!!!!!


P.S
Огромное спасибо CREATOR-e за неоценимую помощь!!!!!!!!!!

Creat0R
30-01-2008, 02:44
HORRIBLE, почему в моем примере для Senka11, ересть какая то записывалась в файл,несмотря на то, что ты в водишь в поля ?
Записываются идентификаторы контролов, чтобы получить данные введённые в эти элементы, нужно использовать GUICtrlRead() ;) (см. мой пример выше).

Senka11, создать меседж бокс который выводил бы на екран IP тачки
Для этого есть макрос @IPAddress2.

Огромное спасибо CREATOR-e за неоценимую помощь!
Для этого есть ссылочка внизу у каждого сообщения - http://forum.oszone.net/images/smilies/up.gif Полезное сообщение ;)

Maza Faka
30-01-2008, 08:06
Senka11
Мдааа...ты хоть сам понял, что написал?
Функция InputBox() не является создаваемым элементом пользовательского GUI, это встроенное стандартное окно диалога. Пример создания пользовательского GUI:
#include <GUIConstants.au3>

GUICreate("Computer ID system created by Senka!", 260, 160)

GUICtrlCreateLabel("Input Computer ID", 15, 30, 90, 15)
GUICtrlCreateLabel("Input Everest ID", 160, 30, 90, 15)

$nEdit = GUICtrlCreateInput("", 10, 50, 100, 17)
$aEdit = GUICtrlCreateInput("", 150, 50, 100, 17)

$OK_Button = GUICtrlCreateButton("Ready", 10, 130, 60, 20)
GUICtrlSetCursor(-1, 0)
$Close_Button = GUICtrlCreateButton("Close", 190, 130, 60, 20)
GUICtrlSetCursor(-1, 0)

GUISetState()

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Close_Button
Exit
Case $OK_Button
$sDataFrom_nEdit = GUICtrlRead($nEdit)
$sDataFrom_aEdit = GUICtrlRead($aEdit)

If $sDataFrom_nEdit = '' Or $sDataFrom_aEdit = '' Then
MsgBox(16, "Error", "Please fill in the forms")
ContinueCase
EndIf

$DataFile = FileOpen(@ScriptDir & "\Data.txt", 1)
FileWriteLine($DataFile, _
"Data from $nEdit: " & $sDataFrom_nEdit & @CRLF & _
"Data from $aEdit: "& $sDataFrom_aEdit)
FileClose($DataFile)
EndSwitch
WEnd

я хочу создать меседж бокс который выводил бы на екран IP тачки!
и дописывал его вместе с мак адресом в txt файлик!
Какой тачки? Локальной или удалённой? Для получения IP-адреса используй макро @IPAddress1 или @IPAddress2, а ещё лучше брать его из реестра. Для получения MAC-адреса используй утилиту getmac.exe есть по умолчанию в WindowsXP, для справки вбей в консоль getmac /?.

HORRIBLE
30-01-2008, 11:52
Creat0R, мда, тупим по маленьку (это я про себя) , спасибо.

А вот у меня вопрос, интернет страничка игрушки, на ней 2 поля ввода и кнопочка, AutoIt Window Info не показывает ни координат, ни id этих полей, а как можно к чему нить привязаться, чтобы вводить в поле информацию и кнопку жать ?? Конечно, самое простое это tab понажимать, а еще как нить можно?
Когда ввели данные, нажимаем кнопку войти, вошли, другой вопрос, слева наверху есть картинка персонажа, над картинкой его ХП, как в автоите сказать ждать пока не наберется определенное кол-во ХП ждать ?? опять таки привязаться не к чему.

amel27
30-01-2008, 11:59
Для получения IP-адреса используй макро @IPAddress1 или @IPAddress2, а ещё лучше брать его из реестра. Для получения MAC-адреса используй утилиту getmac.exe »ИМХО лучше без вызова внешних прог - через WMI:#include <array.au3>

$a = _NetAdapterGetProp()
_ArrayDisplay($a)

Func _NetAdapterGetProp($sHostName = "localhost")
Local $objItem, $objWMIService = ObjGet( "winmgmts:\\"& $sHostName &"\root\CIMV2")
Local $sQuery = 'SELECT Index, Caption, MACAddress, IPAddress FROM Win32_NetworkAdapterConfiguration Where IPEnabled = True'
Local $colItems = $objWMIService.ExecQuery($sQuery, "WQL", 0x30)
If IsObj($colItems) Then
Local $aRes[1][3], $i=0
For $colItem In $colItems
ReDim $aRes[$i+1][3]
$aRes[$i][0] = $colItem.Caption
$aRes[$i][1] = $colItem.IPAddress(0)
$aRes[$i][2] = $colItem.MACAddress
$i+=1
Next
Return $aRes
EndIf
Return SetError(1)
EndFunc ;==> _NetAdapterGetProp

Maza Faka
30-01-2008, 12:13
amel27
Привет! Ты как всегда на высоте! Отличный пример! :up:

amel27
30-01-2008, 12:34
Привет! Ты как всегда на высоте! Отличный пример! »
Спасибо, всем привет!.. вот, решил восстановить подписку на топик после его разделения... ;)

Кстати, полный список поддерживаемых параметров и методов объекта "Win32_NetworkAdapterConfiguration"
описан по адресу: http://msdn2.microsoft.com/en-us/library/aa394217.aspx

Angelus
31-01-2008, 11:38
а в скрипте случайно функции шифрования нет???

Maza Faka
31-01-2008, 11:48
Angelus
Смотри в справке _StringEncrypt(), если я правильно тебя понял.

Angelus
31-01-2008, 12:46
Да правильно понял, сенкс...а то я смотрел не нашол....

thief_89
01-02-2008, 10:32
добрый день
делаю скрипт для архивации данных, вроде всё работает архивирует и теперь хочу добавить строку прогресса, но как её релализовать не знаю. может есть у кого пример строки прогресса скинте код и я на его основе зделаю свой.
спасибо

Maza Faka
01-02-2008, 11:14
thief_89
скинте код
Лови! :)
#include <GuiConstants.au3>

$Gui = GuiCreate("Simulation Progress Demo", 350, 120)

$ProgressLabel = GUICtrlCreateLabel("Status: Press the button! ", 20, 30, 330)
$Progress = GUICtrlCreateProgress(20, 50, 300, 20)

$StartButton = GUICtrlCreateButton("Start Simulation Progress", (350/2)-(140/2), 80, 140)

GUISetState()

While 1
$Msg = GUIGetMsg()
Switch $Msg
Case -3
Exit
Case $StartButton
GUICtrlSetData($ProgressLabel, "Status: Please wait...")

Dim $FilesArr[1000]
For $i = 1 To UBound($FilesArr)-1
$FilesArr[$i] = _GetRandomName(6) & ".test"
Next

Local $FilesCount = UBound($FilesArr)-1
Local $CurrentFName, $ProgressSet = 0

GUICtrlSetData($ProgressLabel, "Status: 0% Done...")
GUICtrlSetData($StartButton, "Abort Simulation Progress")

For $i = 1 To $FilesCount
Sleep(40)
$CurrentFName = $FilesArr[$i]
$ProgressSet = Round(100 / ($FilesCount / $i))
GUICtrlSetData($ProgressLabel, "Status: " & $ProgressSet & "% Done, [" & $CurrentFName & "]")
GUICtrlSetData($Progress, $ProgressSet)
If GUIGetMsg() = $StartButton Then ExitLoop
Next

GUICtrlSetData($Progress, 0)
GUICtrlSetData($ProgressLabel, "Status: Finish!")
GUICtrlSetData($StartButton, "Start Simulation Progress")
EndSwitch
WEnd

Func _GetRandomName($Lenght=3)
Local $RetName = ''
For $i = 1 To $Lenght
$RetName &= Chr(Random(97, 122, 1))
Next
Return $RetName
EndFunc

NikLok
01-02-2008, 14:31
Вот тут кто макрос для оперы недавно кидал, так может он могет наваять такой, который сможет отмечать в скролируемом списке задаваемые форумы на torrents.ru? А то ихние админы ну никак не могут встроить таку фичу!!!

Creat0R
01-02-2008, 14:52
thief_89,
может есть у кого пример строки прогресса скинте код и я на его основе зделаю свой.
Переделать будет непросто, ведь статус прогресса считывать с внешнего приложения нужно? что используется для архивирования?

NikLok,
Вот тут кто макрос для оперы недавно кидал
Вроде я, но это не макрос, а библиотека. (http://creator-lab.ucoz.ru/load/3-1-0-36)

наваять такой, который сможет отмечать в скролируемом списке задаваемые форумы на torrents.ru?
А подробнее можно?

NikLok
01-02-2008, 18:43
Creat0R, На сайте torrents.ru есть в разделе торенты прокручиваемы список форумов среди которых происходит поиск торентов - вернее их анонсов. Если выбрать не все а только интересующие, то список сильно от мусора очищается. Беда в том что одно неловкое движение и выдиление снимается и на тебя опять сваливается куча всякого Г-на. Если захочется порнухи я уж специяльно за ней зайду, а так каждый раз об это глаза ломаются! Вот и мечтается нажать кнопку и выделятся те которые, ну допустим записаны в файл, а еще лучше кнопкой фиксировать выбранные на машину и выбирать по другой кнопке из фиксированных. Список прокручиваемый по вертикали. Вот ссылка Torrent forum selector (http://torrents.ru/forum/tracker.php?search_id=FY2NLi8orzbh&start=300)
К сожалению нуна регистрироваться, но треккер стоящий.

Senka11
01-02-2008, 18:52
MsgBox(0, "IP-Adress", @IPAddress1)
MsgBox(0, "Computer-name", @ComputerName)
$nEdit = InputBox("Input inventory ID", "Input inventory ID", "", "", -1,3,175,20)
$aEdit = InputBox("Input Everest ID", "Input Everest ID", "", "", -1,30,175,20)
FileWriteLine(FileOpen("\\192.168.0.254\public\senka1985\ipconfig.txt",1),"" &$nEdit& " "& $aEdit &" "&@IPAddress1 )

а как теперь добавить чтоб и мак дописывал ся!!!!!!!!!!??)))))))




© OSzone.net 2001-2012