Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Название статьи на русском языке: "Получение пути к приложению Delphi 2010 через порт"

Delphi , Интернет и Сети , Сокеты

Вопрос пользователя связан с необходимостью получения пути к приложению Delphi 2010, которое использует определенный порт для коммуникации, аналогично тому, как это делает команда netstat -b. Пользователь хочет использовать код на Object Pascal (Delphi) для решения этой задачи, а не команды DOS или объяснений работы netstat.

Подтвержденный ответ

В решении задачи используется функция GetExtendedTcpTable, которая возвращает таблицу с перечнем доступных TCP-соединений. Сначала необходимо просмотреть записи, возвращаемые функцией, и проверить поля dwLocalPort или dwRemotePort в зависимости от того, какой порт необходимо проверить. Затем, используя поле dwOwningPid, можно получить путь к исполняемому файлу приложения, используя функцию GetModuleFileNameEx.

Пример кода, который демонстрирует, как получить список всех TCP-соединений, подобно netstat, и который можно модифицировать под свои нужды:

uses
    PsAPI,
    WinSock,
    Windows,
    SysUtils;

const
    ANY_SIZE = 1;
    iphlpapi = 'iphlpapi.dll';
    TCP_TABLE_OWNER_PID_ALL = 5;
    // ... (перечисление состояний TCP остается без изменений)

type
    // ... (описание типов остается без изменений)

function GetPathPID(PID: DWORD): string;
// ... (реализация функции GetPathPID остается без изменений)

procedure ShowCurrentTCPConnections;
// ... (реализация процедуры ShowCurrentTCPConnections остается без изменений)

var
    libHandle : THandle;
begin
    try
        ReportMemoryLeaksOnShutdown:=DebugHook <> 0;
        libHandle           := LoadLibrary(iphlpapi);
        GetExtendedTcpTable := GetProcAddress(libHandle, 'GetExtendedTcpTable');
        ShowCurrentTCPConnections;
    except
        on E: Exception do
            Writeln(E.ClassName, ': ', E.Message);
    end;
    Readln;
end.

Альтернативный ответ

Также можно использовать IP Helper Component от компании Magenta Systems, который является бесплатным и имеет хорошие примеры использования.

Заключение

Пользователи оставляют положительные отзывы на подтвержденный ответ, отмечая скорость и знания автора. Это подтверждает эффективность предложенного решения.


Используя предоставленный пример кода, можно модифицировать его для получения пути к приложению, использующему определенный порт. Это позволит, например, закрыть приложение, если это будет необходимо, зная его порт и, соответственно, PID.

Создано по материалам из источника по ссылке.

Пользователю нужно получить путь к приложению Delphi 2010, использующему определенный порт для коммуникации, аналогично функции `netstat -b`, с использованием кода на Object Pascal.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Сокеты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 07:39:46/0.0051679611206055/1