На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> ShellLink сердствами АПИ , можноли обойтись без ShlObj, ComObj, ActiveX ???
    Привет всем, еслим б кто подсказал можноли и если да - то как работать с LNK-файлами не используя модули перечисленные в сабже (т.е. Get/SetPath, Get/SetArguments и т.п.) - вот собсно и весь вопрос...
      Да, разбираемся с форматом lnk и сами делаем его парсинг, вытаскивая нужные параметры. Дам всё хранится прямо, без шифровки...
        да, без шифровки оно-то видно, но эти ЛНК-файлы очень похожи на типизированные, как бы теперь узнать рекорд который туда пишется...
        ну ладно - буду пробовать...
          Методом научного тыка... Посмотрел, посчитал, попробовал...
            тыкать - это понятно, а эти мелкософтовцы (эт ж они изобрели ярлыки или все же спи передрали как обычно) зажали описание формата :angry:
              Формат закрытый, есть API которые дают полный контроль над LNK, а ежели хотите сами всё, то уже и разбираться прийдётся самим.
                На C'ях чё-то подобное видел здесь: http://mail.gnu.org/archive/html/dotgnu-pn...2/msg00015.html
                А в архиве в аттаче на иностранном языке(EN) :) есть также описание и ещё один вариант реализации на Си. Всё до безобразия просто, чтобы подогнать на Дельфи.
                Прикреплённый файлПрикреплённый файлlnk_c.zip (4.01 Кбайт, скачиваний: 159)
                  2startinger - спасиба - тока шото трудновато разбираться - в приложеном файле все как-то "может так а может и не так" - а по ссылке вообще минимум объяснений...
                  ну ладно и на этом спасибо - попробую разгрести это ... как-нибудь ...
                    Посидел немного на выходных.

                    В Windows есть механизм, позволяющий создавать ссылки на достаточном
                    низком уровне - Shell Links (IShellLink, IPersistFile).
                    К сожалению написать работоспособный пример, на основе приведенного
                    в Windows SDK, не получилось :(

                    Чтобы Использовать это в Delphi вроде достаточно подключить
                    ExpandedWrap disabled
                       
                      uses  
                        ShlObj,
                        ActiveX;


                    По самому формату файлов (только для win - exe-.lnk, смотрел в Win98)
                    Фаил содержит следующую информацию
                    1. указатель на приложение
                    2. указатель на рабочую папку
                    3. указатель с какого файла брать иконку и ее номер
                    4. Как отображать окно при старте приложения
                    5. Сочетание горячих клавиш для быстрого запуска

                    //Далее идут номера в файле при просмотре в hex-режиме, начиная с 1-го.

                    3. значение 21-го поля определяет метод, откуда будет
                    браться иконка и использование приложением ключей (то есть, напр.
                    D:\Temp\a.exe \s - f).
                    Возможные значения:
                    1B - линк создан командой "Создать ярлык"
                    13 - иконка из самого приложения
                    33 - иконка родная, в пути к приложению
                    53 - чужая иконка
                    73 - чужая иконка и есть ключи.

                    4. Отображение окна - 61-е поле
                    Возможные значения:
                    01 - обычно
                    03 - свернуто в значок
                    07 - во весь экран

                    5. Горячие клавиши - 65 и 66: 65-е - это соответствующий Virtual Key Code
                    клавиши (см. SDK). 66-е - дополнительная клавиша.
                    Возможные значения:
                    00 - доп. клавиши нет
                    02 - ALT, 04 - Ctrl
                    06 - Alt+Ctrl
                    и др.

                    Также перед каждой строковой информацией (пути, ключи) за одно поле имеется
                    длина строки в 16-ричной системе счисления, то есть
                    ABC -> link-hex: 03 00 [ABC in hex]

                    P.S.
                    Забил смотреть дальше из-за того, что не факт, что ссылки в WinNT имеют тотже
                    формат, и потому как имеются совершенно непонятные последовательности , которые
                    для ссылок, имеющих одно функциональное значение, различны :(
                    В инете нашел только две ссылки, которые уже были приведены.
                      Цитата
                      Zoobastik, 9.03.04, 02:41
                      В Windows есть механизм, позволяющий создавать ссылки на достаточном
                      низком уровне - Shell Links (IShellLink, IPersistFile).


                      Вроде автор как раз и хочет избежать вызов этих интерфейсов...
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0913 ]   [ 16 queries used ]   [ Generated: 2.05.24, 20:41 GMT ]