Форум программистов, компьютерный форум, киберфорум
The trick
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Прочитать параметры запуска чужого процесса

Запись от The trick размещена 09.01.2014 в 00:47
Показов 2639 Комментарии 0
Метки vb

2й123
Цитата Сообщение от The trick Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Option Explicit
Private Type PROCESS_BASIC_INFORMATION
    ExitStatus As Long
    PebBaseAddress As Long
    AffinityMask As Long
    BasePriority As Long
    UniqueProcessId As Long
    InheritedFromUniqueProcessId As Long
End Type
Private Type UNICODE_STRING
    Length As Integer
    MaxLength As Integer
    lpBuffer As Long
End Type
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function NtQueryInformationProcess Lib "ntdll" (ByVal ProcessHandle As Long, ByVal InformationClass As Long, ByRef ProcessInformation As Any, ByVal ProcessInformationLength As Long, ByRef ReturnLength As Any) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
 
 
Private Const PROCESS_QUERY_INFORMATION As Long = &H400&
Private Const PROCESS_VM_READ As Long = &H10&
 
Private Sub Form_Load()
    MsgBox GetCommandLineFromPID(2956)
End Sub
Private Function GetCommandLineFromPID(PID As Long) As String
    Dim hProcess As Long
    Dim pbi As PROCESS_BASIC_INFORMATION
    Dim lpPP As Long                ' Óêàçàòåëü íà ïàðàìåòðû ïðîöåññà
    Dim cmd As UNICODE_STRING       ' Ñòðóêòóðà äëÿ õðàíåíèÿ þíèêîäíîé ñòðîêè
 
    ' Ïîëó÷àåì õåíäë
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, False, PID)
    If hProcess Then
        ' Ïîëó÷àåì óêàçàòåëü íà PEB
        If NtQueryInformationProcess(hProcess, 0, pbi, Len(pbi), ByVal 0) Then Exit Function
        ' Ïîëó÷àåì óêàçàòåëü íà ïàðàìåòðû ïðîöåññà
        If ReadProcessMemory(hProcess, ByVal pbi.PebBaseAddress + &H10, lpPP, 4, 0) = 0 Then Exit Function
        ' Ïîëó÷àåì ñòðóêòóðó UNICODE_STRING ñîäåðæàùóþ êîììàíäíóþ ñòðîêó
        If ReadProcessMemory(hProcess, ByVal lpPP + &H40, cmd, Len(cmd), 0) = 0 Then Exit Function
        ' ×èòàåì ñòðîêó
        GetCommandLineFromPID = Space(cmd.Length \ 2) ' Âûäåëÿåì áóôåð äîñòàòî÷íîé äëèíû
        If ReadProcessMemory(hProcess, ByVal cmd.lpBuffer, ByVal StrPtr(GetCommandLineFromPID), cmd.Length, 0) = 0 Then Exit Function
        CloseHandle hProcess
    End If
End Function
Метки vb
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru