
21.03.2021, 16:45
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от waffelo
Пишу инжектор, столкнулся с проблемой
getprocid:
Код:
DWORD
GetProcId
(
const
char
*
procName
)
{
DWORD procId
=
0
;
HANDLE hSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPPROCESS
,
0
)
;
if
(
hSnap
!=
INVALID_HANDLE_VALUE
)
{
PROCESSENTRY32 procEntry
;
procEntry
.
dwSize
=
sizeof
(
procEntry
)
;
if
(
Process32First
(
hSnap
,
&
procEntry
)
)
{
do
{
if
(
!
_stricmp
(
procEntry
.
szExeFile
,
procName
)
)
{
procId
=
procEntry
.
th32ProcessID
;
break
;
}
}
while
(
Process32Next
(
hSnap
,
&
procEntry
)
)
;
}
}
CloseHandle
(
hSnap
)
;
return
procId
;
}
Я понимаю, что char нужно изменять параметр procname, и передавать его wcscmp(), но после того как я делаю появляется другая ошибка
C++:
Код:
DWORD
GetProcId
(
std
::
wstring_view procName
)
{
DWORD procId
=
0
;
HANDLE hSnap
=
CreateToolhelp32Snapshot
(
TH32CS_SNAPPROCESS
,
0
)
;
if
(
hSnap
!=
INVALID_HANDLE_VALUE
)
{
PROCESSENTRY32 procEntry
;
procEntry
.
dwSize
=
sizeof
(
procEntry
)
;
if
(
Process32First
(
hSnap
,
&
procEntry
)
)
{
do
{
if
(
procEntry
.
szExeFile
==
procName
)
{
procId
=
procEntry
.
th32ProcessID
;
break
;
}
}
while
(
Process32Next
(
hSnap
,
&
procEntry
)
)
;
}
}
CloseHandle
(
hSnap
)
;
return
procId
;
}
|
|
|