Что нового

[Элементы GUI] MsgBox и Label как совместить

DarkCrush

Начинающий
Сообщения
63
Репутация
1
У меня вопрос как сделать так что бы полученый запрос отображался не в отдельном окне а в лейбле?
 

Viktor217

Осваивающий
Сообщения
233
Репутация
31
Какой запрос откуда получаешь, пример приведи чтоле...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,670
Репутация
2,463
Код:
#include <GUIConstantsEx.au3>

$hGUI = GUICreate("Test Script", 300, 200)

GUICtrlCreateLabel("Some data", 20, 40, 60, 20)

GUISetState(@SW_SHOW, $hGUI)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 
Автор
D

DarkCrush

Начинающий
Сообщения
63
Репутация
1
получаю информацию с сервера, но не получается запихать ее в лейбл



#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3>
#include <ButtonConstants.au3>
#include <File.au3>

Opt("TrayMenuMode", 1)

Global $URL,$IP_1,$IP_2,$User,$Auth

Global $Host = 'http://109.234.156.250' ;сервер
Global $GetUserInfo = $Host&'/prison/universal.php?getInfo' ; информация игрока
Global $GetUserInfoRewards =$Host&'/prison/universal.php?getAllBuildingsRewardsInfo' ; информация о прибыли
Global $GetInfoCigaret = $Host&'/prison/universal.php?office' ; информация о Дворе
Global $oHTTP = ObjCreate('WinHttp.WinHttpRequest.5.1') ;создаем запрос


if FileExists(@ScriptDir&'\settings.ini') Then
$User = IniRead(@ScriptDir&'\settings.ini','USER','id','')
$Auth = IniRead(@ScriptDir&'\settings.ini','USER','Auth','')
Else
_SetUserInfo()
$User = IniRead(@ScriptDir&'\settings.ini','USER','id','')
$Auth = IniRead(@ScriptDir&'\settings.ini','USER','Auth','')
EndIf

GUIcreate("BOT", 398, 472, 192, 124)
$info = GUICtrlCreateButton("Информация", 8, 440, 145, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
$output = GUICtrlCreateLabel("Информация о игроке", 8, 8, 380, 273)
$exititem = GUICtrlCreateButton("Выход", 240, 440, 137, 25, $WS_GROUP)
TraySetState()
TraySetToolTip("BOT")
While 1
$msg = GUIGetMsg();
Select
Case $msg = 0
ContinueLoop
Case $msg = $info
GUISetState($info,4)
GUISetState(2)
_GetUserInfo()
TraySetState()
Case $msg = $exititem
_Exit()
EndSelect
WEnd


Func _GetUserInfo()
Local $Response,$Response2
Local $PostData = 'user='&$User&'&sig=2580efe69fd4066d670a3b4f5d3b8f14&key='&$Auth&'&method=getInfo' ; запрос на данные пользователя
$oHTTP.Open('POST', $GetUserInfo)
$oHTTP.setTimeouts(5000, 5000, 10000, 10000)
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
Execute('$oHTTP.Send($PostData)')
If (@error) Or ($oHTTP.Status <> 200) Then
Return
Else
$oHTTP.WaitForResponse
$Response = $oHTTP.ResponseText
If Not $Response Then Return
EndIf
$PostData2 = 'user='&$User&'&sig=9657510905665054df4c085a1b359445&key='&$Auth&'&method=getAllBuildingsRewardsInfo' ; запрос на проходную
$oHTTP.Open('POST', $GetUserInfoRewards)
$oHTTP.setTimeouts(5000, 5000, 10000, 10000)
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oHTTP.Send($PostData2)
$oHTTP.WaitForResponse
$Response2 = $oHTTP.ResponseText

$PostData3 = 'user='&$User&'&sig=f86236c0b49d7ed28dd0d5d0efc915a1&key='&$Auth&'&method=office' ; запрос информации о сигаретах
$oHTTP.Open('POST', $GetInfoCigaret)
$oHTTP.setTimeouts(5000, 5000, 10000, 10000)
$oHTTP.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
$oHTTP.Send($PostData3)
$oHTTP.WaitForResponse
$Response3 = $oHTTP.ResponseText

MsgBox(0,'Информация', ' Авторитет: '&StringRegExpReplace($Response, '(?s).*?<rating>(\d+)</rating>?.*', '\1')& _
' Энергия: '&StringRegExpReplace($Response, '(?s).*?<energy>(\d+)</energy>?.*', '\1') & _
' Сигарет: '&StringRegExpReplace($Response, '(?s).*?<money>(\d+)</money>?.*', '\1') & _
' Рубли: '&StringRegExpReplace($Response, '(?s).*?<diamond>(\d+)</diamond>?.*', '\1')&@CRLF&@CRLF& _
'Общая прибыль:' &@CRLF& _
'Авторитет +'&StringRegExpReplace($Response2, '(?s).*?<rating>(\d+)</rating>?.*', '\1')& _
' Уважение +'&StringRegExpReplace($Response2, '(?s).*?<love>(\d+)</love>?.*', '\1') & _
' Сигарет +'&StringRegExpReplace($Response2, '(?s).*?<money>(\d+)</money>?.*', '\1') &@CRLF&@CRLF& _
'Сигареты во дворе:' &@CRLF& _
(StringRegExpReplace($Response3, '(?s).*?<ideascount>(\d+)</ideascount>?.*', '\1')*5)&' Сигарет (сбор за один раз 5 сигарет)')

;Return $sMessage
EndFunc




; Установки о пользователе
Func _SetUserInfo()
Local $Form1,$Label1,$Label2,$Input1,$Input2,$Button1,$Button2
$Form1 = GUICreate("Настройки Братка", 358, 127, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$DS_MODALFRAME), BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE))
$Label1 = GUICtrlCreateLabel("ID:", 15, 25, 25, 17)
$Input1 = GUICtrlCreateInput("Введите ваш ID", 56, 25, 289, 21)
$Label2 = GUICtrlCreateLabel("Auth Key:", 15, 60, 25, 17)
$Input2 = GUICtrlCreateInput("Введите ваш Auth Key", 56, 60, 289, 21)
$Button1 = GUICtrlCreateButton("Сохранить", 265, 95, 75, 25)
$Button2 = GUICtrlCreateButton("Очистить", 185, 95, 75, 25)
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIDelete($Form1)
ExitLoop
Case $Button1
$User = IniWrite(@ScriptDir&'\settings.ini','USER','id',GUICtrlRead($Input1))
$Auth = IniWrite(@ScriptDir&'\settings.ini','USER','Auth',GUICtrlRead($Input2))
GUIDelete($Form1)
ExitLoop
Case $Button2
GUICtrlSetData($Input1,'')
GUICtrlSetData($Input2,'')
EndSwitch
WEnd
EndFunc

Func _Exit()
Exit
EndFunc
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Пример:

Код:
Local $Response2 = ' Авторитет: '&StringRegExpReplace($Response, '(?s).*?<rating>(\d+)</rating>?.*', '\1')& _
	'   Энергия: '&StringRegExpReplace($Response, '(?s).*?<energy>(\d+)</energy>?.*', '\1') & _
	'   Сигарет: '&StringRegExpReplace($Response, '(?s).*?<money>(\d+)</money>?.*', '\1') & _
	'   Рубли: '&StringRegExpReplace($Response, '(?s).*?<diamond>(\d+)</diamond>?.*', '\1')&@CRLF&@CRLF& _
	'Общая прибыль:' &@CRLF& _
	'Авторитет +'&StringRegExpReplace($Response2, '(?s).*?<rating>(\d+)</rating>?.*', '\1')& _
	'   Уважение +'&StringRegExpReplace($Response2, '(?s).*?<love>(\d+)</love>?.*', '\1') & _
	'   Сигарет +'&StringRegExpReplace($Response2, '(?s).*?<money>(\d+)</money>?.*', '\1') &@CRLF&@CRLF& _
	'Сигареты во дворе:' &@CRLF& _
	(StringRegExpReplace($Response3, '(?s).*?<ideascount>(\d+)</ideascount>?.*', '\1')*5)&' Сигарет (сбор за один раз 5 сигарет)'

	GUICtrlSetData($output, $Response2)



Вставить после MsgBox с инфо.
Функция вставки данных в Label: GUICtrlSetData
Вставляемый код необходимо оформлять в тег Autoit - 3я справа кнопочка в нижнем ряду, черненькая.
 
Автор
D

DarkCrush

Начинающий
Сообщения
63
Репутация
1
Теперь он вместо +0 пишет просто + :smile:
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Я ни чего не правил, а показал пример, как вставить полученные данные в label.
Ошбки не исправлял, как было - так и есть.

Вопрос был про втсавку в Label.
Проблема с Regexp - это уже другая тема.

Домашнее задание: Перепроверить парсинг HTML ))
 
Автор
D

DarkCrush

Начинающий
Сообщения
63
Репутация
1
Еще вопрос как сделать строку прогресса на запрос? :smile:
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Одна тема - один вопрос.
 

Guezt

Продвинутый
Сообщения
335
Репутация
81
DarkCrush сказал(а):
Теперь он вместо +0 пишет просто + :smile:

Потому, что скорее всего просто не пришел ответ с сервера, я когда этот пример показывал для CreatiK не учел этот момент ;)
 
Автор
D

DarkCrush

Начинающий
Сообщения
63
Репутация
1
я не знал с чего начать и это единственные исходы которые я перелопатил как мог) а ответ с сервера получается только вот циферки нет))
 
Верх