Русское сообщество AutoIt

  • Май 22, 2012, 13:14:25 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

На форуме было сделано несколько небольших изменений...

1) Расширено поле поиска, теперь можно выбрать, искать в текущей теме, текущем разделе, по всему форуму, или с помощью Google.

2) Новым участникам форума (до 20-ти сообщении) над формой создания новой темы отображается информационный блок с некоторыми правилами и рекомендациями по созданию новой темы.

17.07.2010

Реклама

Автор Тема: IncludesHelper - менеджер включаемых файлов для SciTE  (Прочитано 2547 раз - 1 votes) 

0 Пользователей и 2 Гостей смотрят эту тему.

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Я тоже, постоянно пользуюсь обфускатором (код из поста CreatoR), если в коде используются несколько функций, скажем из UDF WinAPIEx - без обфускатора, при компиляции, в скрипт попадет весь файл WinAPIEx.au3, плюс файлы APIConstants.au3 и WinAPI.au3 (в сумме больше 1,5 Мб).
 А эту утилиту начал делать, после того, как несколько раз после Organize Includes пришлось искать недостающие константы для скрипта, например:

Код: AutoIt [Выделить]
;Только при установленной библиотеке "WinAPIEx"

$var = BitOR($PROCESS_VM_OPERATION, $PROCESS_VM_READ)

;Результат  Includes Helper  :#Include <ProcessConstants.au3>
;Результат  Organize Includes:#Include <APIConstants.au3> - хотя в APIConstants.au3 эти константы закомментированы
 




  Записан

madmasles [?]

  • Локальный модератор
  • *
  • *****
  • Репутация: 1426
  • Online Online
  • Пол: Мужской
  • Сообщений: 3819
  • Версия AutoIt: 3.3.6.1 - 3.3.9.4
    • Награды
Не совсем по теме, но после использования
Код: AutoIt [Выделить]
Обфускатор мне выдал в консоль
Цитата
-### StripOnly Error: Found DllCallbackRegister() statement using unsolvable Func, which will/could lead to removal of Funcs that are used by the Call() statement.
>### current Func: _Timer_SetTimer
C:\Program Files\AutoIt3\include\Timers.au3(275,1) Warning for line:$hCallBack = DllCallbackRegister($sTimerFunc, "none", "hwnd;int;uint_ptr;dword")

-#############################################################################################
-#### Obfuscator Found   1 Error(s)!!!!    This means your script could have problems running properly.  ####
-#############################################################################################
- Iteration 1 Strip Functions result: Output  9917 lines and stripped 15393 lines
- Iteration 2 Strip Variables result: Output  5768 lines and stripped 4096 lines
- Iteration 3 Strip Variables result: Output  5694 lines and stripped 74 lines
- Iteration 4 Strip Variables result: Output  5693 lines and stripped 1 lines
+> Source    64379 lines 3203176 Characters.
+> Stripped  19564 Func/Var lines and  38965 comment lines, Total 2982652 Characters.
+> Saved     90% lines 93% Characters.
И, соответственно, нерабочий скомпилированный вариант.

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Для обфускатора есть команды:
Код: AutoIt [Выделить]
#Obfuscator_Ignore_Funcs= MyFync_1, MyFync_2
#Obfuscator_Ignore_Variables= $var_1, $var_2
 

можно указать, какие функции и переменные не удалять из скрипта




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1403
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5068
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
asdf8  [?]
Цитата
А эту утилиту начал делать, после того, как несколько раз после Organize Includes пришлось искать недостающие константы для скрипта
Ну так это делает #AutoIt3Wrapper_Add_Constants, правда добавляет сразу весь файл с нужной константой. Но как писалось выше, обфускатор это исправляет на стадий компилляций. Поэтому если честно не вижу особого смысла в данной утилите, хотя конечно могу ошибаться.




  Записан
Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.



«Не оказываю техподдержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

AZJIO [?]

madmasles
Последний варинат который мне понравился
Код: AutoIt [Выделить]
#AutoIt3Wrapper_Run_Obfuscator=y
#Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
#AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"
Его отличие тем, что он даёт рандомные короткие имена переменных и  функций, а это тоже делает скрипт компактным. И строка на удаление временного обфуцированного файла.

asdf8
Organize Includes не проверяет вложенные Include в Include, а вообще утилита с полезными регулярками. Я её не мог запустить потому что не знал что она требует в обязательном порядке SciTE, поэтому сделал свой вариант, независимый от SciTE.

CreatoR
Цитата
Поэтому если честно не вижу особого смысла в данной утилите, хотя конечно могу ошибаться.
Лично я не всегда компилирую файлы,  и тестирую до компиляции и старые скрипты обычно не содержат нужных Include, поэтому тестить их нескомпилированными проблематично.




  Записан
Вытащи сначала бревно из своего глаза, тогда поймёшь как вытащить сучёк из глаза брата своего.

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Цитата
если честно не вижу особого смысла в данной утилите, хотя конечно могу ошибаться.

CreatoR, но кроме констант есть еще функции и глобальные переменные, и кроме папки "Include" необходимые для работы скрипта "запчасти" могут находиться в папке скрипта (а в общем случае - где угодно).
И, если, в этой утилите нет особого смысла - тогда в Organize Includes смысла еще меньше.

Цитата
поэтому сделал свой вариант, независимый от SciTE

AZJIO,  под npp, действительно легко переделать, они же на одном движке с SciTE.

Еще хотелось бы прояснить, то, что Includes Helper указывает минимально необходимый набор include, означает только, что код будет выглядеть более аккуратно. При компиляции, если не пользоваться обфускатором с соответствующими опциями, в выходной файл будут добавлены целиком все указанные в скрипте include и, рекурсивно, все include, указанные в тех include.




  Записан

AZJIO [?]

asdf8
Цитата
Еще хотелось бы прояснить, то, что Includes Helper указывает минимально необходимый набор include, означает только, что код будет выглядеть более аккуратно. При компиляции, если не пользоваться обфускатором с соответствующими опциями, в выходной файл будут добавлены целиком все указанные в скрипте include и, рекурсивно, все include, указанные в тех include.
Да, я эту фичу "минимальный набор" в своём варианте добавил.
А вообще в UDF первой строкой идёт #include-once, так что два раза один и тот же UDF по любому не добавится.

Цитата
под npp, действительно легко переделать, они же на одном движке с SciTE.
Я вообще то не нашёл способ передачи команд npp, как это делает SciTE, а то бы ещё одну утилитку хотел сделать аналог "SciTE Hopper". Искал в инете способы создания плагов, но пока полезного не нашёл.




  Записан

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Цитата
А вообще в UDF первой строкой идёт #include-once

не всегда, бывают очень "своеобразные" UDF.

Цитата
Я вообще то не нашёл способ передачи команд npp, как это делает SciTE, а то бы ещё одну утилитку хотел сделать аналог "SciTE Hopper". Искал в инете способы создания плагов, но пока полезного не нашёл.

Мне npp тоже больше нравится, и перешел бы на него, если б он сохранял фолдинг для файлов при открытии.
Когда-то делал UDF, для работы с npp, посмотри - может найдешь что-то нужное.


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться




  Записан

AZJIO [?]

asdf8
Цитата
если б он сохранял фолдинг
я законченные функции просто перекладываю во временный скрипт-UDF, который режит рядом, чтоб функции не моячили в коде, а при окончании проекта вставляю в общий скрипт. Но сделав JumpToString для Notepad++, аналог "SciTE Hopper",  не вижу теперь смысла в этих операциях, да и вообще UDF юзать стало одно удовольствие. Спасибо за nppUDF.au3.




  Записан

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Обновил версию.
Список изменений в первом посте.




  Записан

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
AZJIO  [?]
Цитата
Может в IncludesHelper необходимо добавить строку
#include<SendMessage.au3>
А зачем?




  Записан

CreatoR [?]

  • Администратор
  • *
  • *****
  • Репутация: 1403
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 5068
  • Версия AutoIt: 3.2.8.1+
  • AutoIt is simple, subtle, elegant
    • WWW
    • Награды
asdf8  [?]
Цитата
А зачем?
В 3.3.6.1 она нужна для _SendMessage.

В 3.3.8.0+ SendMessage.au3 включена в WinAPI.au3, которая включена в Security.au3, которая в данном скрипте включена в Memory.au3 (из MemoryDll.au3) :wacko: .

В 3.3.6.1 в Security.au3 нет #include "WinAPI.au3".




  Записан

asdf8 [?]

  • Продвинутый
  • ***

  • Автор темы
  • Репутация: 70
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Спасибо, понял.
Давно не пользовался  3.3.6.1
Поправлю.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
TOSHIFEX - Откат скрытых файлов и папок / системных файлов / расширении файлов
Примеры и рабочие проекты
CreatoR 7 2428 Последний ответ Апрель 16, 2011, 00:12:31
от CreatoR
[Сеть, интернет] Менеджер закачек + многопоточность + докачка.
AutoIt для новичков
HukpoFuJl 21 2944 Последний ответ Август 03, 2011, 23:57:52
от ohos
ToDoIt - Менеджер задач
Примеры и рабочие проекты
CreatoR 31 4941 Последний ответ Август 24, 2011, 09:34:07
от Driver
Трафик менеджер
Стол заказов
avrill 6 1012 Последний ответ Сентябрь 14, 2010, 13:32:44
от Kaster
Scite и директива Region
AutoIt для новичков
ildary 6 1341 Последний ответ Октябрь 18, 2010, 09:27:41
от Belfigor
SISCABMAN - Менеджер аббревиатур для SciTE
Инструменты и помощь по AutoIt
CreatoR 22 2641 Последний ответ Апрель 12, 2011, 13:38:11
от CreatoR
Lua скрипты для SciTE
Общение
Vlasssov 2 995 Последний ответ Июнь 22, 2011, 13:10:25
от Vlasssov
Пинг менеджер
AutoIt для новичков
cobra2029 4 389 Последний ответ Октябрь 05, 2011, 15:27:15
от cobra2029
WPMANAGER: менеджер обоев рабочего стола
Полезняшки
snoitaleR 0 1480 Последний ответ Октябрь 07, 2011, 21:55:38
от snoitaleR
SciTE UDF - Библиотека управления SciTE редактором
UDF - Пользовательские функции
CreatoR 8 597 Последний ответ Февраль 15, 2012, 03:32:34
от CreatoR


Реклама

* Последние сообщения на форуме
post Re: Смена IP адресса
[AutoIt для новичков] Zaramot Сегодня в 13:04:33
post Re: Авторизация в одноклассниках
[Автоматизация IE и Web-интерфейса] Александр Сегодня в 12:59:21
post Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] madmasles Сегодня в 12:23:31
post [Мышь, клавиатура] Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] Nurgazy Сегодня в 12:09:36
post Re: Объясните плз, как работать с массивами ArrayAdd и прочее...
[AutoIt для новичков] madmasles Сегодня в 12:08:03
post Объясните плз, как работать с массивами ArrayAdd и прочее...
[AutoIt для новичков] webmonster Сегодня в 12:03:38
post Re: Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] ---Zak--- Сегодня в 11:39:56
post Как заменить метку времени файла на севере
[Автоматизация IE и Web-интерфейса] eropov Сегодня в 11:26:37
post Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] madmasles Сегодня в 11:13:16
post [Мышь, клавиатура] Re: Выполнение скрипта при нажатии средней кнопки мыши
[AutoIt для новичков] Nurgazy Сегодня в 10:56:29

* Пользователи онлайн
  • Dot Гостей: 135
  • Dot Скрыт: 2
  • Dot Пользователей: 30
  • Dot Пользователи Online: