易语言 关闭 processexplorer
时间: 2023-12-28 16:02:17 浏览: 34
要关闭易语言中的processexplorer,可以通过编写以下代码实现:
```yilu
// 获取系统当前管
han1 = Call("kernel32.dll", "OpenProcess", 1, 0, GetCurrentProcessId())
// 获取进程全路径名
Call("kernel32.dll", "GetModuleFileNameA", 0, han2, 260)
// 删除进程
Call("kernel32.dll", "TerminateProcess", han1, 0)
```
在这段代码中,我们首先通过调用kernel32.dll中的OpenProcess函数获取当前进程的句柄,然后再通过GetModuleFileNameA函数获取到当前进程的全路径名。最后,调用TerminateProcess函数删除该进程。
以上就是用易语言关闭processexplorer的方法,通过编写以上代码并运行即可关闭该进程。
相关问题
易语言hideprocess源码
易语言是一种编程语言,它的hideprocess函数是用来隐藏进程的。下面是hideprocess函数的源码示例:
```
#include <Windows.h>
void HideProcess()
{
// 获取当前进程句柄
HANDLE hProcess = GetCurrentProcess();
// 获取进程信息
PROCESS_BASIC_INFORMATION pbi;
NtQueryInformationProcess(hProcess, ProcessBasicInformation, &pbi, sizeof(PROCESS_BASIC_INFORMATION), NULL);
// 获取PEB地址
PPEB pPeb = pbi.PebBaseAddress;
// 获取PEB中的ProcessParameters地址
PRTL_USER_PROCESS_PARAMETERS pProcessParams = pPeb->ProcessParameters;
// 将CommandLine信息指向一个空字符串
pProcessParams->CommandLine.Length = 0;
pProcessParams->CommandLine.MaximumLength = 0;
pProcessParams->CommandLine.Buffer = L"";
// 将ImagePathName信息指向一个空字符串
pProcessParams->ImagePathName.Length = 0;
pProcessParams->ImagePathName.MaximumLength = 0;
pProcessParams->ImagePathName.Buffer = L"";
// 将DllPath信息指向一个空字符串
pProcessParams->DllPath.Length = 0;
pProcessParams->DllPath.MaximumLength = 0;
pProcessParams->DllPath.Buffer = L"";
// 将WindowName信息指向一个空字符串
pProcessParams->WindowName.Length = 0;
pProcessParams->WindowName.MaximumLength = 0;
pProcessParams->WindowName.Buffer = L"";
}
```
以上是hideprocess函数的源码,它实现了隐藏进程的功能。hideprocess通过获取当前进程句柄,然后获取进程的PEB信息,进而获取到ProcessParameters的地址。接着将ProcessParameters中的CommandLine、ImagePathName、DllPath、WindowName等信息都指向一个空字符串,隐藏了进程的相关信息,从而达到隐藏进程的效果。
以上就是hideprocess函数的源码和简要解释,希望对你有所帮助。
易语言数据类型PROCESSENTRY32
PROCESSENTRY32是一个易语言中的数据类型,用于描述进程的信息。它包含了进程的各种属性,如进程ID、父进程ID、线程计数、进程全名等。下面是PROCESSENTRY32的结构和各个字段的含义:
1. dwSize:结构的大小,以字节为单位。
2. cntUsage:此进程的引用计数。
3. th32ProcessID:进程ID。
4. th32DefaultHeapID:进程默认堆ID。
5. th32ModuleID:进程模块ID。
6. cntThreads:此进程开启的线程计数。
7. th32ParentProcessID:父进程ID。
8. pcPriClassBase:线程优先权。
9. dwFlags:保留字段。
10. szExeFile:进程全名,以字节为单位。
使用PROCESSENTRY32结构可以获取进程的各种信息,比如进程ID、进程全名等。可以通过调用CreateToolhelp32Snapshot函数创建一个进程快照,然后使用process32First和Process32Next函数遍历进程快照,获取每个进程的信息。
下面是一个示例代码,演示如何使用PROCESSENTRY32结构获取进程的信息:
```easylanguage
// 导入API函数
import("kernel32.dll", "CreateToolhelp32Snapshot", "Process32First", "Process32Next", "CloseHandle")
// 定义PROCESSENTRY32结构
struct PROCESSENTRY32
{
dwSize: int; // 结构大小
cntUsage: int; // 此进程的引用计数
th32ProcessID: int; // 进程ID
th32DefaultHeapID: int; // 进程默认堆ID
th32ModuleID: int; // 进程模块ID
cntThreads: int; // 此进程开启的线程计数
th32ParentProcessID: int; // 父进程ID
pcPriClassBase: int; // 线程优先权
dwFlags: int; // 保留
szExeFile: byte[256]; // 进程全名
}
// 创建进程快照
snapshot := CreateToolhelp32Snapshot(0x00000002, 0)
// 初始化PROCESSENTRY32结构
entry := PROCESSENTRY32{dwSize: sizeof(PROCESSENTRY32)}
// 获取第一个进程的信息
Process32First(snapshot, &entry)
// 遍历进程快照,输出每个进程的信息
while Process32Next(snapshot, &entry) do
{
// 输出进程ID和进程全名
print("进程ID: ", entry.th32ProcessID)
print("进程全名: ", entry.szExeFile)
}
// 关闭进程快照句柄
CloseHandle(snapshot)
```
这段代码使用了CreateToolhelp32Snapshot函数创建了一个进程快照,然后使用Process32First和Process32Next函数遍历进程快照,获取每个进程的信息,并输出进程ID和进程全名。