Что нового

Получить с окна «Save» Имя и Формат файла для сверки

StarEdik

Новичок
Сообщения
365
Репутация
4
Версия AutoIt: 3.3.6.1

Описание:
Добрый день и всем привет. В стороннем программе из контекстного меню вызывается окно «Save».
По умолчании Имя файла- Pozitions1.txt, а формат(маска) - Текстовые документы.txt.
Прошу помощи в написании следующего.Надо получить с окна «Save» значения нижеследующих элементов .На всякий случай нужно проверит всех.

1) Имя Файла '[CLASS:Edit; INSTANCE:1]' ; Handle - 0x008E09F4
2) Имя Файла '[CLASS:ComboBox; INSTANCE:2]' ; Handle - 0x00EC09F0
3) Имя Файла '[CLASS:ComboBoxEx32; INSTANCE:1]' ; Handle - 0x00540A10
4) Формат файла '[CLASS:ComboBox; INSTANCE:3]' ; Handle - 0x01250A02

и сверить.
Если есть совпадение отменить сохранение. Заранее благодарен.

Примечания:
Handle Диалогового Окна при каждом вызове меняется
Код:
Dim $sTitle = '[CLASS:#32770]'        
Dim $sText  = 'Save'

$sFname='Pozitions1.txt'
$sFmask='Текстовые документы.txt'
HotKeySet('+{ESC}', '_Exit')

While 1
     If WinExists($sTitle, $sText) And  WinActive($sTitle, $sText) Then

        If ;

		 send('{esc}')
         ConsoleWrite($sComboBoxEx32 & @CRLF & $sComboBox2 & @CRLF & $sComboBox2 & @CRLF & $sEdit1 )
        EndIf
  EndIf
WEnd

Func _Exit()
     Exit
EndFunc
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуй так:
Код:
Dim $sTitle = '[CLASS:#32770]'        
Dim $sText  = 'Save'

$sFname='Pozitions1.txt'
$sFmask='Текстовые документы.txt'
HotKeySet('+{ESC}', '_Exit')

While 1
    If WinExists($sTitle, $sText) And  WinActive($sTitle, $sText) Then

		;Считываем текст клнтролов
		$GetFileName1 = ControlGetText($sTitle, $sText, '[CLASS:Edit; INSTANCE:1]')
		$GetFileName2 = ControlGetText($sTitle, $sText, '[CLASS:ComboBox; INSTANCE:2]')
		$GetFileName3 = ControlGetText($sTitle, $sText, '[CLASS:ComboBoxEx32; INSTANCE:1]')
		
		$GetFileMask = ControlGetText($sTitle, $sText, '[CLASS:ComboBox; INSTANCE:3]')

        If $GetFileName1 = $sFname Or $GetFileName2 = $sFname Or $GetFileName3 = $sFname Then ;Если файлы совпадают, то...
			If $GetFileMask = $sFmask Then ;Если маска совпадают, то...
				send('{esc}')
				ConsoleWrite($sComboBoxEx32 & @CRLF & $sComboBox2 & @CRLF & $sComboBox2 & @CRLF & $sEdit1 )
			EndIf
        EndIf
	EndIf
WEnd

Func _Exit()
    Exit
EndFunc
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
Zaramot
Спасибо тебе. Открыл из меню File -> Save , Save As из контекста Save.Думается что скрипт окна не определяет или …и скрипт не действует.
Написал так .
Код:
If WinExists('Save') And  WinActive('Save') Then

        send('{esc}')
		
 EndIf

Так получается. Но он в таком случае все Save окна опознает и закрывает….
 
Верх