Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Как в .BAT-файле записать текстовую строку в файл без символов переноса строки

05.11.2018 | Категория: Software | Автор: ManHunter
При всей своей кажущейся простоте, пакетные файлы обладают очень мощным функционалом. Вплоть до того, что на .BAT-файлах можно писать полиморфные вирусы. Но, как и в любой околокомпьютерной сфере, тут не обошлось без своих заморочек. Одна из них заключается в том, что при перенаправлении вывода в файл командой echo в созданный файл принудительно добавляется перенос строки. Вроде бы так и надо, но если вам надо сформировать какую-нибудь команду или непрерывную строку для дальнейшего использования, то было бы неплохо сделать так, чтобы символ переноса строки не добавлялся. Сделать это можно, используя другую команду:

<nul set /p tmpstr=текст>file.txt
В такой реализации в перенаправляемый файл будет записана текстовая строка без лишних символов переноса строки. При этом формируемую строку в любой момент можно дополнять командой типа:

<nul set /p tmpstr=другой_текст>>file.txt
В этом случае перенос строки также не добавляется. Когда необходимый паттерн будет сформирован, но при этом надо перейти к новой строчке, вывод текущей строки в файл можно завершить уже известной вам командой echo.

Просмотров: 997 | Комментариев: 3

Получение данных из консольного окна другого приложения

02.11.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter
Мы уже умеем перехватывать ввод и вывод консольных приложений, но этот способ работает только для тех процессов, которые мы сами запустили. Но иногда надо получать информацию из консольных приложений, которые уже были запущены в системе или могут быть запущены в дальнейшем, но не нами. А еще бывают консольные приложения, вывод которых невозможно перенаправить и, соответственно, невозможно получить описанным ранее способом. Для них также придется использовать способ из этой статьи.

Для начала как всегда несколько структур, которые изначально не описаны в FASM. Они нам понадобятся для работы с консольным окном:
  1. struct  COORD
  2.         X dw ?
  3.         Y dw ?
  4. ends
  5.  
  6. struct  SMALL_RECT
  7.         Left   dw ?
  8.         Top    dw ?
  9.         Right  dw ?
  10.         Bottom dw ?
  11. ends
  12.  
  13. struct CONSOLE_SCREEN_BUFFER_INFO
  14.         dwSize              COORD
  15.         dwCursorPosition    COORD
  16.         wAttributes         dw ?
  17.         srWindow            SMALL_RECT
  18.         dwMaximumWindowSize COORD
  19. ends
Теперь немного теории. Любое приложение, даже GUI, может создать собственную консоль или приаттачиться к уже существующей. Для аттача достаточно знать только идентификатор консольного процесса. После этого получаем стандартный хэндл вывода, используемый в этой консоли, параметры консольного окна (количество строк и столбцов), а потом единственной функцией ReadConsoleOutputCharacter забираем из консольного окна все содержимое.

Читать статью целиком »
Просмотров: 529 | Комментариев: 0

Убираем контекстное меню "Закрепить на панели задач" для отдельных приложений

15.10.2018 | Категория: Software | Автор: ManHunter

Убираем контекстное меню "Закрепить на панели задач" для отдельных приложений

Очередная хитрость по настройке Windows. На этот раз для отдельных приложений мы будем убирать из контекстного меню пункты "Закрепить на панели задач" и "Закрепить в меню Пуск". Пожалуй, это тот редкий случай, когда я не смогу с ходу ответить на вопрос зачем это нужно. Будем считать, что просто еще одно полезное знание о системе.

Читать статью целиком »
Просмотров: 966 | Комментариев: 3

Как получить реальную версию Windows из режима совместимости

25.09.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как получить реальную версию Windows из режима совместимости

Одной из основных политик компании Microsoft является поддержка обратной совместимости программ, то есть программы для Windows, написанные даже очень давно, теоретически должны работать на современных системах. Один из механизмов обеспечения такой работоспособности - запуск программ в режиме совместимости. Достаточно в свойствах исполняемого файла указать, какую версию Windows надо использовать, и система при запуске программы будет эмулировать для нее окружение именно этой версии. Если при этом из программы попытаться получить версию Windows при помощи функции GetVersion, GetVersionEx или даже RtlGetVersion, то результат вернет версию эмулируемой ОС. А можно ли как-то определить, что программа запущена в режиме совместимости и получить реальную версию Windows, на которой она работает? Можно!

Читать статью целиком »
Просмотров: 1361 | Комментариев: 11

Как открыть файлы XLSX и DOCX в Office XP

22.09.2018 | Категория: Software | Автор: ManHunter

Как открыть файлы XLSX и DOCX в Office XP

Вы можете сколько угодно называть меня ретроградом и консерватором, но некоторые дизайнерские решения, ставшие стандартом современных интерфейсов, я категорически не приемлю. Одно из таких решений - это так называемый "ленточный" интерфейс панели инструментов. Особенно он меня напрягает в офисных приложениях. Я бы с удовольствием продолжал пользоваться любимым Office XP, но он не поддерживает формат документов Office 2007, а именно XLSX и DOCX. Из-за этого приходилось пользоваться новыми версиями Microsoft Office, что причиняло мне душевную боль и вызывало кровотечение из глаз, или тормозным OpenOffice, который даже на мощных машинах запускается так, словно грузится с кассетного магнитофона. К моей безмерной радости, решение проблемы нашлось.

Читать статью целиком »
Просмотров: 3614 | Комментариев: 21

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2019
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.12 сек. / MySQL: 3 (0.0439 сек.) / Память: 5 Mb
Наверх