Что нового

В каких случаях лучше использовать UDF (#Include)

vovsla

Осваивающий
Сообщения
546
Репутация
26
я может чё не понимаю, но о каком огороде идёт речь? когда я использую #Include <process.au3>, образно говоря я просто добавляю в свой скрипт код файла process.au3, всё равно что я бы скопировал из файла process.au3 функцию
Func _RunDOS($sCommand)
Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
Return SetError(@error, @extended, $nResult)
EndFunc ;==>_RunDOS

естественно в мой скрипт вставляется не только эта функция, а всё содержимое файла, но как это влияет на его работу?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Vovsla
ну дык вставляй, в чем проблема? :smile:
только что это даст? лучше скрипт начнет запускаться? :rofl:
и еще, обрамляй код тэгами ;)
 
Автор
V

vovsla

Осваивающий
Сообщения
546
Репутация
26
я просто хочу понять, в чём причина неохотного включения дополнительных библиотек? просто хочу разобраться чисто для себя, может там что-то начинает работать через опу, а я и знать не буду...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Автор
V

vovsla

Осваивающий
Сообщения
546
Репутация
26
ответ 16 - А зачем, тут же ещё нужно подключать библиотеку... тем более встроенными средствами надёжнее.

ответ 18 - это можно заменить одной строкой и без привлечения дополнительной либы

ответ 21 - чтобы не городить огород
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Vovsla сказал(а):
в чём причина неохотного включения дополнительных библиотек
ну я за себя уже сказал :smile: не хочу городить огород. лично я использую дополнительные либы если только без них никак, либо польза от их использования превосходит убыток от времени потраченную на реализацию аналогичной своей конструкции.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Ничего плохого в #Include <...> нет. Просто зачем использовать дополнительные средства, когда можно обойтись AutoIt функциями. Родные функций как правило работают быстрее и надежнее (зависит от того, кто писал) пользовательских. Другое дело, если в AutoIt нет необходимой функции. Тогда подключаем соответствующую библиотеку и радуемся жизни. Например, получить размеры окна с названием "AutoIt" можно так:

Код:
#Include <WinAPI.au3>

$hWnd = _WinAPI_FindWindow('CabinetWClass', 'AutoIt')
$tRect = _WinAPI_GetWindowRect($hWnd)
$Width = DllStructGetData($tRect, 3) - DllStructGetData($tRect, 1)
$Height = DllStructGetData($tRect, 4) - DllStructGetData($tRect, 2)


Но зачем, когда для этого есть специальная функция:

Код:
$Pos = WinGetPos('[TITLE:AutoIt;CLASS:CabinetWClass]')
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Yashied сказал(а):
Но зачем, когда для этого есть специальная функция:
особенно неуместно, как мне кажется использование
Код:
_RunDos()

когда скрипты AutoIt можно запускать не только в cmd - окне, а просто указав имя файла интерпретатору. ;D
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Согласен, но иногда (когда нужно "по быстрому") я использую ShellExecute() - родную функцию.

:smile:
 
Верх