Что нового

Функция WinExist возвращает не то значение

lexaSF

Новичок
Сообщения
182
Репутация
3
Помогите, функуия FileExist посылает 1, хотя окна нет!!!
Код:
#include <GUIConstants.au3>
#Include <GuiComboBox.au3>
#Include <GuiListBox.au3>
#Include <File.au3>
#Include <Array.au3>
$mac = 0
Opt('GUICloseOnESC',0)
$Dir = @ScriptDir & '\Setting.ini'
$FileList=_FileListToArray(@ScriptDir & '\settings')
$read = IniReadSectionNames($Dir)
TraySetIcon(@ScriptDir & '\Icon.ico')
$Form1_1_1 = GUICreate("Avtobot v 1.24 B (SID)", 376, 322, 370, 266)
GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")
GUISetBkColor(0xB9D1EA)
$Label1 = GUICtrlCreateLabel("SID:", 16, 128, 35, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input1 = GUICtrlCreateInput("", 16, 56, 169, 21)
$Label2 = GUICtrlCreateLabel("Name:", 16, 32, 50, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input2 = GUICtrlCreateInput("", 16, 152, 169, 21)
$Label3 = GUICtrlCreateLabel("ID:", 16, 80, 23, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input3 = GUICtrlCreateInput("", 16, 104, 169, 21)
$Label4 = GUICtrlCreateLabel("Server:", 16, 176, 56, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input4 = GUICtrlCreateInput("", 16, 200, 169, 21)
$Button1 = GUICtrlCreateButton("Save", 16, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button2 = GUICtrlCreateButton("Delete", 208, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$List1 = GUICtrlCreateList("", 208, 160, 153, 110)
GUICtrlSetData(-1, "")
$Button3 = GUICtrlCreateButton("Clear", 112, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button4 = GUICtrlCreateButton("Edit", 289, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label5 = GUICtrlCreateLabel("  Load Settings", 224, 104, 122, 26)
GUICtrlSetFont(-1, 12, 800, 0, "Minion")
$Combo1 = GUICtrlCreateCombo("None", 208, 128, 153, 25)
If IsArray($FileList) = 1 Then
For $K=1 To $FileList[0]
	_GUICtrlComboBox_AddString($Combo1,$FileList[$k])
Next
EndIf
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Combo2 = GUICtrlCreateCombo("None", 16, 248, 169, 25)
GUICtrlSetData(-1, "1-1|1-2|1-3|1-4|1-5|1-6|1-7|1-8|2-1|2-2|2-3|2-4|2-5|2-6|2-7|2-8|3-1|3-2|3-3|3-4|3-5|3-6|3-7|3-8|4-1|4-2|4-3|4-5")
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Label6 = GUICtrlCreateLabel("Account", 72, 10, 66, 21)
GUICtrlSetFont(-1, 12, 800, 0, "Minion")
$Label7 = GUICtrlCreateLabel("Map:", 16, 224, 36, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label8 = GUICtrlCreateLabel("Bot Version:", 208, 32, 80, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Combo3 = GUICtrlCreateCombo("Enter SID", 208, 56, 153, 25)
GUICtrlSetData(-1, "Enter Login")
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
GUISetState(@SW_SHOW)
If $read <> 1 Then
For $i = 1 To $read[0]
	_GUICtrlListBox_AddString($List1, $read[$i])
Next
EndIf


While 1
	If WinExists('Avtobot v 1.24 B (Login)','Starting .bat') = 0 Then 
		$LoginWin = 0
		MsgBox(0,'',$LoginWin)
	Else
		$LoginWin = 1
		MsgBox(0,'',$LoginWin) ; Всегда 1, хотя окна нет!!!
	EndIf
	If WinExists('Avtobot v 1.24 B (SID)','') = 0 Then 
		$SidWin = 0
	Else
		$SidWin = 1
	EndIf
		;~~~~~~~~~SID WINDOW~~~~~~~~~
	If ControlGetText('Avtobot v 1.24 B','',$Combo3) = 'Enter SID' Then
		If $SidWin = 0 Then
			If $LoginWin = 1 Then
			GUIDelete()
			EndIf
			$Form1_1_1 = GUICreate("Avtobot v 1.24 B (SID)", 376, 322, 370, 266)
GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")
GUISetBkColor(0xB9D1EA)
$Label1 = GUICtrlCreateLabel("SID:", 16, 128, 35, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input1 = GUICtrlCreateInput("", 16, 56, 169, 21)
$Label2 = GUICtrlCreateLabel("Name:", 16, 32, 50, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input2 = GUICtrlCreateInput("", 16, 152, 169, 21)
$Label3 = GUICtrlCreateLabel("ID:", 16, 80, 23, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input3 = GUICtrlCreateInput("", 16, 104, 169, 21)
$Label4 = GUICtrlCreateLabel("Server:", 16, 176, 56, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input4 = GUICtrlCreateInput("", 16, 200, 169, 21)
$Button1 = GUICtrlCreateButton("Save", 16, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button2 = GUICtrlCreateButton("Delete", 208, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$List1 = GUICtrlCreateList("", 208, 160, 153, 110)
GUICtrlSetData(-1, "")
$Button3 = GUICtrlCreateButton("Clear", 112, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button4 = GUICtrlCreateButton("Edit", 289, 288, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label5 = GUICtrlCreateLabel("  Load Settings", 224, 104, 122, 26)
GUICtrlSetFont(-1, 12, 800, 0, "Minion")
$Combo1 = GUICtrlCreateCombo("None", 208, 128, 153, 25)
If IsArray($FileList) = 1 Then
For $K=1 To $FileList[0]
	_GUICtrlComboBox_AddString($Combo1,$FileList[$k])
Next
EndIf
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Combo2 = GUICtrlCreateCombo("None", 16, 248, 169, 25)
GUICtrlSetData(-1, "1-1|1-2|1-3|1-4|1-5|1-6|1-7|1-8|2-1|2-2|2-3|2-4|2-5|2-6|2-7|2-8|3-1|3-2|3-3|3-4|3-5|3-6|3-7|3-8|4-1|4-2|4-3|4-5")
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Label6 = GUICtrlCreateLabel("Account", 72, 10, 66, 21)
GUICtrlSetFont(-1, 12, 800, 0, "Minion")
$Label7 = GUICtrlCreateLabel("Map:", 16, 224, 36, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label8 = GUICtrlCreateLabel("Bot Version:", 208, 32, 80, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Combo3 = GUICtrlCreateCombo("Enter SID", 208, 56, 153, 25)
GUICtrlSetData(-1, "Enter Login")
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
GUISetState(@SW_SHOW)
If $read <> 1 Then
For $i = 1 To $read[0]
	_GUICtrlListBox_AddString($List1, $read[$i])
Next
EndIf
EndIf

	$name = GUICtrlRead($Input1)
	$read = IniReadSectionNames($Dir)
	_GUICtrlComboBox_LimitText($Combo1,0)
	_GUICtrlComboBox_LimitText($Combo2,0)
$sid = GUICtrlRead($Input2)
$id = GUICtrlRead($Input3)
$serv = GUICtrlRead($Input4)
$map = GUICtrlRead($Combo2)
$lang = GUICtrlRead($Combo3)
$Setting = ControlGetText('Avtobot','','[CLASS:Edit; INSTANCE:5]')
$Findname = _GUICtrlListBox_FindString($List1,$name)
$FindTextname = _GUICtrlListBox_GetText($List1,$Findname)
	$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
		$CtrlRead = GUICtrlRead($Input1)
		$CtrlReadId = GUICtrlRead($Input3)
		$CtrlReadSid = GUICtrlRead($Input2)
		$CtrlReadServ = GUICtrlRead($Input4)
		$StringLen = StringLen($CtrlReadId)
		$seaTxt = ControlGetText("Avtobot", "Account", '[CLASS:Edit; INSTANCE:6]')
		$seaTxtset = ControlGetText ("Avtobot", "Account", '[CLASS:Edit; INSTANCE:5]') 
		If $CtrlRead = '' Then
				MsgBox(0,'ERROR','Error!' & @LF & 'Enter an account name!' & $CtrlRead)
				$err = 1
			Else
				$err = 0
			EndIf
				If StringIsDigit($CtrlReadId) = 1 And StringLen($CtrlReadId) = 8 Then
						$ide = 0
					Else
						MsgBox(0,'ERROR!','Error!' & @LF & 'Enter an correct ID!')
						$ide = 1
					EndIf
					If StringIsAlNum($CtrlReadSid) = 1 And StringLen($CtrlReadSid) = 32 Then
						$side = 0
					Else
						MsgBox(0,'ERROR!','Error!' & @LF & 'Enter correct SID!')
						$side = 1
					EndIf
					If StringLen($CtrlReadServ) = 0 Or StringLen($CtrlReadServ) > 5  Then
						MsgBox(0,'ERROR!','Error!' & @LF & 'Enter correct Server!')
						$serve = 1
					Else
						$serve = 0
					EndIf
					If $seaTxt = 'None' Then
						MsgBox(0,'ERROR!','Error!' & @LF & 'Enter an correct Map!')
						$mape = 1
					Else
						$mape = 0
					EndIf
					If $err = 0 And $ide = 0 And $side = 0 And $mape = 0 And $serve = 0 Then
						IniWrite( $Dir,$name, "ID",$id)
						IniWrite( $Dir,$name, "SID",$sid)
						IniWrite( $Dir,$name, "SERVER",$servv)
						IniWrite( $Dir,$name, "MAP",_GUICtrlComboBox_GetCurSel($Combo2))
						IniWrite( $Dir,$name,'SETTING',$Setting)
						If $lang = 'UDOBot v 4.0.1 (Rus)' Then
						IniWrite( $Dir,$name,'LANG','RUS')
					Else
						IniWrite( $Dir,$name,'LANG','ENG')
					EndIf
					EndIf
			If $name = $FindTextname And $err = 0 And $ide = 0 And $side = 0 And $mape = 0 And $serve = 0 And $read <> 1 Then
				For $ed=1 To $read[0]
						$regedit = StringRegExp($read[$ed],$name,0)
						If $regedit = 1 Then $edit = 1
					Next
					If $edit = 1 Then
				MsgBox(0,'OK!','Account Edit!')
			EndIf
			If $Findname = -1 And $err = 0 And $ide = 0 And $side = 0 And $mape = 0 And $serve = 0 And $read <> 1 Then
					For $r=1 To $read[0]
						$regsave = StringRegExp( $read[$r],$name,0)
					Next
					If $regsave = 0 Then
					MsgBox(0,'OK!','Account Save!')
				EndIf
			EndIf
		EndIf
		If $read = 1 And $err = 0 And $ide = 0 And $side = 0 And $mape = 0 And $serve = 0 Then MsgBox(0,'OK!','Account Save!')
			 If $read <> 1 Then
For $i=1 To $read[0]
    $FindStr = _GUICtrlListBox_FindString($List1,$read[$i])
    $FindText = _GUICtrlListBox_GetText($List1,$FindStr) 
	$Findname = _GUICtrlListBox_FindString($List1,$name)
	$FindTextname = _GUICtrlListBox_GetText($List1,$Findname)
	$regeditlist = StringRegExp($FindText,$name,0)
	$searchname = StringRegExp($FindTextname,$name,0)
    If $regeditlist = 0 And $searchname = 0 And $err = 0 And $ide = 0 And $side = 0 And $mape = 0 And $serve = 0 Then
_GUICtrlListBox_AddString($List1, $name)
EndIf
Next
EndIf
If $read = 1 And $err = 0 And $ide = 0 And $side = 0 And $mape = 0 And $serve = 0 Then
	_GUICtrlListBox_AddString($List1, $name)
	EndIf
			Case $Button2
			$Marker = _GUICtrlListBox_GetAnchorIndex($List1)
			$StrText = _GUICtrlListBox_GetText($List1,$Marker)
			If $Marker <> -1 Then
			_GUICtrlListBox_DeleteString($List1, $Marker)
			IniDelete($Dir,$StrText)
		Else
			MsgBox(0,'ERROR!','Error!' & @LF & 'The account for removal isn"t chosen!')
		EndIf
	Case $Button3
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:1]','')
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:3]','')
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:2]','')
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:4]','')
			_GUICtrlComboBox_SetCurSel($Combo2,'0')
            _GUICtrlComboBox_SetCurSel($Combo1,'0')
		Case $Button4
			$Nameindex = _GUICtrlListBox_GetAnchorIndex($List1)
			$NameIni = _GUICtrlListBox_GetText($List1, $Nameindex)
			If $Nameindex <> -1 Then
			$IniSid = IniRead($Dir,$NameIni,'SID','')
			$IniId = IniRead($Dir,$NameIni,'ID','')
			$IniServer = IniRead($Dir,$NameIni,'SERVER','')
			$IniMap = IniRead($Dir,$NameIni,'MAP','')
			$IniSetting = IniRead($Dir,$NameIni,'SETTING','')
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:1]',$NameIni)
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:3]',$IniId)
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:2]',$IniSid)
			ControlSetText('Avtobot','','[CLASS:Edit; INSTANCE:4]',$IniServer)
			$Indx = _GUICtrlComboBox_FindString($Combo1,$IniSetting)
			_GUICtrlComboBox_SetCurSel($Combo2,$IniMap)
            _GUICtrlComboBox_SetCurSel($Combo1,$Indx)
		Else
			MsgBox(0,'ERROR!','The account for removal isn"t chosen!')
		EndIf	
	EndSwitch
	$edit = 0
	;~~~~~~~~~Login WINDOW~~~~~~~
ElseIf ControlGetText('Avtobot v 1.24 B','',$Combo3) = 'Enter Login' Then
		If $LoginWin = 0 Then
			If $SidWin = 1 Then
			GUIDelete()
			EndIf
	$Form1_1_1 = GUICreate("Avtobot v 1.24 B (Login)", 353, 264, 351, 273)
GUISetIcon("C:\Users\Lexa\Desktop\heroic_autobots.ico")
GUISetBkColor(0xB9D1EA)
$Input1 = GUICtrlCreateInput("", 16, 64, 153, 21)
$Label2 = GUICtrlCreateLabel("Name:", 16, 40, 50, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label4 = GUICtrlCreateLabel("Server:", 16, 160, 56, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input4 = GUICtrlCreateInput("", 16, 192, 153, 21)
$Button1 = GUICtrlCreateButton("Save", 16, 224, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button2 = GUICtrlCreateButton("Delete", 184, 224, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Listlog1 = GUICtrlCreateList("", 184, 128, 153, 84)
GUICtrlSetData(-1, "")
$Button3 = GUICtrlCreateButton("Clear", 96, 224, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Button4 = GUICtrlCreateButton("Edit", 265, 224, 73, 25)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Label8 = GUICtrlCreateLabel("Start type:", 184, 40, 65, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Combo3 = GUICtrlCreateCombo("Enter Login", 184, 64, 153, 25)
GUICtrlSetData(-1, "Enter SID")
GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
$Label1 = GUICtrlCreateLabel("Password:", 16, 96, 64, 24)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
$Input2 = GUICtrlCreateInput("", 16, 128, 153, 21)
$Label3 = GUICtrlCreateLabel("Edit .bat", 56, 8, 80, 28)
GUICtrlSetFont(-1, 14, 800, 0, "Franklin Gothic Medium")
$Label5 = GUICtrlCreateLabel("Starting .bat", 208, 8, 117, 28)
GUICtrlSetFont(-1, 14, 800, 0, "Franklin Gothic Medium")
$Label6 = GUICtrlCreateLabel("Started accoutns:", 184, 96, 107, 22)
GUICtrlSetFont(-1, 10, 800, 0, "Palatino Linotype")
GUISetState(@SW_SHOW)
EndIf
$nMsg = GUIGetMsg()
		Switch $nMsg
		Case $GUI_EVENT_CLOSE
		Exit
			Case $Button1
		If StringLen(GUICtrlRead($Input4)) > 5 Then
			MsgBox(0,'ERROR!','Error!'&@LF&'Enter correct Server!')
		Else
			IniWrite()
		EndIf
	EndSwitch
	EndIf
WEnd

Помогите, что делать! 30 мин назад работало!а сейчас уже нет(
 

Viktor217

Осваивающий
Сообщения
233
Репутация
31
Re: Функция FileExist возвращает не то значение

Лично я у тебя тут встретил только
Код:
WinExists

Попробуй исправить 67 строчку:
Код:
If WinExists('Avtobot v 1.24 B (Login)','Starting .bat') = 0 Then

На:
Код:
If WinExists('Avtobot v 1.24 B (Login)','') = 0 Then


Может поможет(=
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Re: Функция FileExist возвращает не то значение

Я вообще не понимаю свой комп :-\ пробовал так, не работало, добавил с текстом, заработало, потом перестало снова.У меня комп - псих :D


Добавлено:
Сообщение автоматически объединено:

Все.Снова перестало работать, сделаю любые изменения - и все.0


Добавлено:
Сообщение автоматически объединено:

Что за тупость вообще?! парадокс какой то
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Re: Функция FileExist возвращает не то значение

Некоторым процессам нужно время, для того чтобы что-то выполнилось. Вам просто нужно проверять бота на готовность, и только потом производить свои действия.
К примеру, если в заголовке окна бота динамически меняется текст, то нужно проверить сначала на наличие того текста, который вам нужен.
Avtobot v 1.24 B (Login)
Avtobot v 1.24 B (SID)
Avtobot v 1.24 B
Иначе нужно воспользоваться:
Код:
Opt('WinTitleMatchMode', 2)
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Re: Функция FileExist возвращает не то значение

Спасибо, помогло, а я совсем и забыл про Opt


Добавлено:
Сообщение автоматически объединено:

да ппц, тока что 1 раз работало, изменил кое что, которое вообще не косается - все.смнова покахывает что есть такое окно
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,669
Репутация
2,463
lexaSF
Это последняя тема в названий которой утверждается, что встроенная функция возвращает “не то” значение, или не работает. Ты не можешь каждую тему называть одинакого, указывая лишь на функцию которая якобы не работает.
 
Автор
L

lexaSF

Новичок
Сообщения
182
Репутация
3
Изменил название окошек.Тперь заработало.Че такое :shok:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Нужно так:

Код:
Opt('WinTitleMatchMode', 3)
 
Верх