易语言NTAPI进程操纵的代码

本程序实现的功能:

  • 打开进程_强力
  • 进程暂停
  • 取api函数地址
  • 进程结束
  • 进程结束_强力
  • 进程_NT内存清零
  • 进程_取自进程ID
  • 进程_提高权限
  • Kill_Process命令

DLL命令表

.版本 2
.DLL命令 打开进程_, 整数型, "kernel32.dll", "OpenProcess", 公开, 将句柄返回给过程对象
  .参数 进程对象, 整数型, , dwDesiredAccess
  .参数 继承句柄, 整数型, , bInheritHandle
  .参数 进程标识符, 整数型, , dwProcessId
.DLL命令 ZwOpenProcess, 整数型, "ntdll.dll", "ZwOpenProcess", 公开
  .参数 hProcess, 整数型, 传址
  .参数 DesiredAccess, 整数型
  .参数 ObjectAttributes, OBJECT_ATTRIBUTES
  .参数 ClientId, CLIENT_ID
.DLL命令 ZwQuerySystemInformation, 整数型, "ntdll.dll", "ZwQuerySystemInformation"
  .参数 SystemInformationClass, 整数型, , 未知类型:SYSTEM_INFORMATION_CLASS。
  .参数 SystemInformation, 字节集, , any
  .参数 SystemInformationLength, 整数型
  .参数 ReturnLength, 整数型, 传址
.DLL命令 取指针_字节集, 整数型, , "lstrcpyn", 公开, 常规API
  .参数 欲取其指针, 字节集, 传址
  .参数 欲取其指针, 字节集, 传址
  .参数 保留, 整数型, , 0
.DLL命令 RtlMoveMemory3, 整数型, , "RtlMoveMemory", 公开, 常规API,从地址读一个整数
  .参数 dest, 整数型, 传址
  .参数 Source, 整数型
  .参数 len, , , 4
.DLL命令 RtlMoveMemory1, 整数型, , "RtlMoveMemory", , 常规API
  .参数 dest, SYSTEM_HANDLE_TABLE_ENTRY_INFO
  .参数 Source, 整数型
  .参数 len
.DLL命令 ZwDuplicateObject, 整数型, "ntdll.dll", , 公开
  .参数 SourceProcessHandle, 整数型
  .参数 SourceHandle, 整数型
  .参数 TargetProcessHandle, 整数型
  .参数 TargetHandle, 整数型, 传址
  .参数 DesiredAccess, 整数型
  .参数 HandleAttributes, 整数型
  .参数 Options, 整数型
.DLL命令 ZwQueryInformationProcess, 整数型, "ntdll.dll", "ZwQueryInformationProcess"
  .参数 SystemInformationClass, 整数型, , 未知类型:SYSTEM_INFORMATION_CLASS。
  .参数 dd, 整数型
  .参数 SystemInformation, PROCESS_BASIC_INFORMATION, , any
  .参数 SystemInformationLength, 整数型
  .参数 ReturnLength, 整数型, 传址
.DLL命令 ZwClose, 整数型, "ntdll.dll", "ZwClose", 公开, 关闭进程句柄
  .参数 handle
.DLL命令 取函数地址_, 整数型, "kernel32", "GetProcAddress", , 返回函数地址
  .参数 模块句柄, 整数型
  .参数 函数名, 文本型
.DLL命令 取模块句柄_, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
  .参数 模块名, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 _动态调用子程序, 整数型, , "CallWindowProcA"
  .参数 动态调用代码, 字节集, , 字节集代码
  .参数 子程序, 整数型, , 子程序指针 到整数(子程序指针)
  .参数 参数, 整数型, 数组, 为整数数组,参数1为成员1…类推;文本型和字节集型(自定义结构)为指针
  .参数 参数数目, 整数型, , 一定要和参数数组相符,不然会出错
  .参数 是否C调用, 逻辑型, , 真为cdecl调用方式,假为stdcall调用方式(即标准WINAPI方式)
.DLL命令 ZwCreateJobObject, 整数型, "ntdll.dll", , 公开
  .参数 JobHandle, 整数型, 传址
  .参数 DesiredAccess, 整数型
  .参数 ObjectAttributes, OBJECT_ATTRIBUTES
.DLL命令 关闭内核对象_, 整数型, "kernel32.dll", "CloseHandle", 公开, $(b)非零表示成功,零表示失败
  .参数 对象句柄, 整数型, , hObject,欲关闭的一个对象的句柄
.DLL命令 TerminateProcess_, 整数型, "kernel32", "TerminateProcess", , 结束一个进程 非零表示成功,零表示失败。会设置GetLastError
  .参数 hProcess, 整数型, , 指定要中断的一个进程的句柄
  .参数 uExitCode, 整数型, , 进程的一个退出代码;
.DLL命令 ZwAssignProcessToJobObject, 整数型, "ntdll.dll", , 公开
  .参数 JobHandle, 整数型
  .参数 ProcessHandle, 整数型
.DLL命令 ZwTerminateJobObject, 整数型, "ntdll.dll", , 公开
  .参数 JobHandle, 整数型
  .参数 ExitStatus, 整数型
.DLL命令 ZwTerminateProcess, 整数型, "ntdll.dll", , 公开
  .参数 ProcessHandle, 整数型
  .参数 ExitStatus, 整数型
.DLL命令 ZwProtectVirtualMemory, 整数型, "NTDLL.DLL", "ZwProtectVirtualMemory"
  .参数 ProcessHandle, 整数型
  .参数 BaseAddress, 整数型
  .参数 RegionSize, 整数型
  .参数 NewProtect, 整数型
  .参数 OldProtect, 整数型
.DLL命令 ZwWriteVirtualMemory, 整数型, "NTDLL.DLL", "ZwWriteVirtualMemory"
  .参数 ProcessHandle, 整数型
  .参数 BaseAddress, 整数型
  .参数 pBuffer, 字节集
  .参数 NumberOfBytesToWrite, 整数型
  .参数 NumberOfBytesWritten, 整数型, 传址
.DLL命令 RtlAdjustPrivilegeA, 整数型, "ntdll.dll", "RtlAdjustPrivilege"
  .参数 Privilege, 整数型
  .参数 Enable, 逻辑型
  .参数 Client, 逻辑型
  .参数 WasEnabled, 整数型, 传址
.DLL命令 API_CreateRemoteThread, 整数型, "kernel32", "CreateRemoteThread", , 在另一进程中建立线索
  .参数 hProcess, 整数型
  .参数 lpThreadAttributes, SECURITY_ATTRIBUTES
  .参数 dwStackSize, 整数型
  .参数 lpStartAddress, 整数型
  .参数 lpParameter, 整数型
  .参数 dwCreationFlags, 整数型
  .参数 lpThreadId, 整数型
.DLL命令 CreateToolhelp32Snapshot, 整数型, "Kernel32.dll", "CreateToolhelp32Snapshot"
  .参数 falg, 整数型
  .参数 id, 整数型
.DLL命令 Thread32First, 整数型, "kernel32", "Thread32First"
  .参数 hSnapshot, 整数型
  .参数 lppe, THREADENTRY32
.DLL命令 OpenThread, 整数型, "kernel32", "OpenThread"
  .参数 h, 整数型
  .参数 a, 逻辑型
  .参数 b, 整数型
.DLL命令 TerminateThread, 整数型, "NTDLL.DLL", "ZwTerminateThread"
  .参数 hThread, 整数型
  .参数 dwExitCode, 整数型
.DLL命令 Thread32Next, 整数型, "kernel32", "Thread32Next"
  .参数 hSnapshot, 整数型
  .参数 lppe, THREADENTRY32
.DLL命令 NtUnmapViewOfSection, 整数型, "ntdll.dll", "NtUnmapViewOfSection"
  .参数 hProcess
  .参数 addr
.DLL命令 LoadLibrary, 整数型, "kernel32", "LoadLibraryA", 公开
  .参数 lpLibFileName, 文本型
.DLL命令 DebugActiveProcess, 逻辑型, "kernel32", "DebugActiveProcess"
  .参数 dwProcessId, 整数型

自定义数据类型表

.版本 2
.数据类型 CLIENT_ID, 公开, CLIENT_ID结构包含进程和线程的标识符。
  .成员 UniqueProcess, 整数型, , , 进程标识符
  .成员 UniqueThread, 整数型, , , 线程标识符
.数据类型 OBJECT_ATTRIBUTES, 公开, OBJECT_ATTRIBUTES结构指定属性,可以应用于对象或对象处理的例程创建对象和/或返回对象的处理。
  .成员 Length, 整数型
  .成员 RootDirectory, 整数型
  .成员 ObjectName, 整数型
  .成员 Attributes, 整数型
  .成员 SecurityDescriptor, 整数型
  .成员 SecurityQualityOfService, 整数型
.数据类型 SECURITY_ATTRIBUTES, , 安全性结构;
  .成员 nLength, 整数型
  .成员 lpSecurityDescriptor, 整数型
  .成员 bInheritHandle, 整数型
.数据类型 PROCESS_BASIC_INFORMATION, 公开
  .成员 ExitStatus, 整数型
  .成员 PebBaseAddress, 整数型
  .成员 AffinityMask, 整数型
  .成员 BasePriority, 整数型
  .成员 UniqueProcessId, 整数型
  .成员 InheritedFromUniqueProcessId, 整数型
.数据类型 MEMORY_BASIC_INFORMATION, 公开
  .成员 BaseAddress, 整数型
  .成员 AllocationBase, 整数型
  .成员 AllocattionProtect, 整数型
  .成员 RegionSize, 整数型
  .成员 State, 整数型
  .成员 Protect, 整数型
  .成员 Type, 整数型
.数据类型 SYSTEM_HANDLE_TABLE_ENTRY_INFO, 公开
  .成员 UniqueProcessId, 短整数型
  .成员 CreatorBackTraceIndex, 短整数型
  .成员 ObjectTypeIndex, 字节型
  .成员 HandleAttributes, 字节型
  .成员 HandleValue, 短整数型
  .成员 pObject, 整数型
  .成员 GrantedAccess, 整数型
.数据类型 THREADENTRY32
  .成员 dwsize, 整数型
  .成员 cntusage, 整数型
  .成员 th32threadID, 整数型
  .成员 th32OwnerProcessID, 整数型
  .成员 tpBasePri, 整数型
  .成员 tpDeltaPri, 整数型
  .成员 dwFlags, 整数型

常量数据表

.版本 2
.常量 PROCESS_ALL_ACCESS, "2035711", 公开
.常量 STATUS_INFO_LENGTH_MISMATCH, "-1073741820", 公开
.常量 STATUS_SUCCESS, "0", 公开
.常量 PROCESS_QUERY_INFORMATION, "1024", 公开
.常量 STATUS_INVALID_PARAMETER, "-1073741811", 公开
.常量 OBJ_INHERIT, "2", 公开
.常量 DUPLICATE_CLOSE_SOURCE, "1", 公开
.常量 DUPLICATE_SAME_ACCESS, "2", 公开
.常量 DUPLICATE_SAME_ATTRIBUTES, "4", 公开
.常量 OB_TYPE_PROCESS, "5", 公开
.常量 ZwGetCurrentProcess, "-1", 公开
.常量 PROCESS_DUP_HANDLE, "64", 公开
.常量 PAGE_EXECUTE_READWRITE, "64"
.常量 JOB_OBJECT_ALL_ACCESS, "2031647", 公开

NTAPI进程操纵代码

.版本 2
.程序集 主程序集
.子程序 _启动子程序, 整数型
进程_提高权限 ()
信息框 (进程暂停 (3796, 假), 0, , )
返回 (0)
.子程序 打开进程_强力, 整数型, 公开, 主要为NATIVE API
.参数 dwDesiredAccess, 整数型
.参数 bInhert, 逻辑型
.参数 ProcessId, 整数型
.局部变量 st, 整数型
.局部变量 cid, CLIENT_ID, , , CLIENT_ID结构包含进程和线程的标识符。
.局部变量 oa, OBJECT_ATTRIBUTES
.局部变量 NumOfHandle, 整数型
.局部变量 pbi, PROCESS_BASIC_INFORMATION
.局部变量 i, 整数型
.局部变量 hProcessToDup, 整数型
.局部变量 hProcessCur, 整数型
.局部变量 hProcessToRet, 整数型
.局部变量 h_info, SYSTEM_HANDLE_TABLE_ENTRY_INFO
.局部变量 retlen, 整数型
.局部变量 a, 字节集
.局部变量 b, 整数型
.局部变量 c, 字节集
.局部变量 ret, 整数型
.如果真 (ProcessId = 0)
  返回 (0)
.如果真结束
oa.Length = 24
.如果真 (bInhert)
  oa.Attributes = 位或 (oa.Attributes, #OBJ_INHERIT)
.如果真结束
cid.UniqueProcess = ProcessId + 1
st = ZwOpenProcess (hProcessToRet, dwDesiredAccess, oa, cid)
.如果真 (st ≥ 0)
  ret = hProcessToRet
  返回 (ret)
.如果真结束
retlen = 1
.循环判断首 ()
  a = 取空白字节集 (retlen)
  ret = ZwQuerySystemInformation (16, a, retlen, 0)
  .如果 (ret = #STATUS_INFO_LENGTH_MISMATCH)
    retlen = retlen × 2
    a = 取空白字节集 (retlen)
  .否则
    跳出循环 ()
  .如果结束
.循环判断尾 (ret = #STATUS_INFO_LENGTH_MISMATCH)
b = 取指针_字节集 (a, a, 0)
RtlMoveMemory3 (NumOfHandle, b, 4)
b = b + 4
.计次循环首 (NumOfHandle, i)
  RtlMoveMemory1 (h_info, b, 16)
  .如果真 (h_info.ObjectTypeIndex = #OB_TYPE_PROCESS)
    cid.UniqueProcess = h_info.UniqueProcessId
    st = ZwOpenProcess (hProcessToDup, #PROCESS_DUP_HANDLE, oa, cid)
    .如果真 (st ≥ 0)
      st = ZwDuplicateObject (hProcessToDup, h_info.HandleValue, #ZwGetCurrentProcess, hProcessCur, #PROCESS_ALL_ACCESS, 0, #DUPLICATE_SAME_ATTRIBUTES)
      .如果真 (st ≥ 0)
        st = ZwQueryInformationProcess (hProcessCur, 0, pbi, 24, 0)
        .如果真 (st ≥ 0)
          .如果真 (pbi.UniqueProcessId = ProcessId)
            st = ZwDuplicateObject (hProcessToDup, h_info.HandleValue, #ZwGetCurrentProcess, hProcessToRet, dwDesiredAccess, #OBJ_INHERIT, #DUPLICATE_SAME_ATTRIBUTES)
            .如果真 (st ≥ 0)
              ret = hProcessToRet
            .如果真结束
          .如果真结束
        .如果真结束
      .如果真结束
      st = ZwClose (hProcessCur)
    .如果真结束
    st = ZwClose (hProcessToDup)
  .如果真结束
  b = b + 16
.计次循环尾 ()
返回 (ret)
.子程序 进程暂停, 逻辑型, 公开, 进程暂停(成功返回真,失败假)
.参数 PID, 整数型
.参数 状态, 逻辑型, 可空
.局部变量 进程句柄, 整数型
.局部变量 a, 整数型
进程句柄 = 打开进程_ (2035711, 0, PID)
.如果真 (进程句柄 = 0)
  进程句柄 = 打开进程_强力 (2035711, 假, PID)
.如果真结束
.如果真 (进程句柄 = 0)
  返回 (假)
.如果真结束
.如果 (状态)
  a = API_ZwSuspendProcess (进程句柄)
.否则
  a = API_ZwResumeProcess (进程句柄)
.如果结束
关闭内核对象_ (进程句柄)
返回 (a = 0)
.子程序 API_ZwSuspendProcess, 整数型, , NTDLL.DLL,API_ZwSuspendProcess
.参数 进程句柄, 整数型
.局部变量 地址, 整数型
.局部变量 参数, 整数型, , "1"
地址 = 取api函数地址 (“NTDLL.DLL”, “ZwSuspendProcess”) ' 取出NTDLL中函数ZwSuspendProcess的地址
参数 [1] = 进程句柄 ' ZwSuspendProcess的参数,ZwSuspendProcess是系统自带的挂起进程命令,动态调用防止钩子
返回 (_动态调用子程序 (#动态调用代码, 地址, 参数, 1, 假)) ' 动态调用
.子程序 取api函数地址, 整数型, 公开
.参数 dll文件名, 文本型
.参数 dll命令名, 文本型
返回 (取函数地址_ (取模块句柄_ (dll文件名), dll命令名))
.子程序 API_ZwResumeProcess, 整数型, , NTDLL.DLL,API_ZwResumeProcess
.参数 进程句柄, 整数型
.局部变量 地址, 整数型
.局部变量 参数, 整数型, , "1"
地址 = 取api函数地址 (“NTDLL.DLL”, “ZwResumeProcess”) ' 取出NTDLL中函数ZwResumeProcess的地址
参数 [1] = 进程句柄 ' ZwResumeProcess的参数,ZwResumeProcess是系统自带的恢复进程命令,动态调用防止钩子
返回 (_动态调用子程序 (#动态调用代码, 地址, 参数, 1, 假)) ' 动态调用
.子程序 进程结束, 逻辑型, 公开, 终止一个进程(成功返回真,失败返回假)
.参数 进程ID, 整数型, , 欲结束的进程ID
.局部变量 进程句柄, 整数型
.局部变量 a, 整数型
进程句柄 = 打开进程_ (进程ID)
a = TerminateProcess_ (进程句柄, 0)
关闭内核对象_ (进程句柄)
返回 (a > 0)
.子程序 进程结束_强力, 逻辑型, 公开, 主要为NATIVE API
.参数 hProcess, 整数型
.参数 ExitStatus, 整数型, , 0
.局部变量 st, 整数型
.局部变量 hJob, 整数型
.局部变量 oa, OBJECT_ATTRIBUTES
.局部变量 ret, 逻辑型
ret = 假
oa.Length = 24
st = ZwCreateJobObject (hJob, #JOB_OBJECT_ALL_ACCESS, oa)
.如果真 (st ≥ 0)
  st = ZwAssignProcessToJobObject (hJob, hProcess)
  .如果真 (st ≥ 0)
    st = ZwTerminateJobObject (hJob, ExitStatus)
    .如果真 (st ≥ 0)
      ret = 真
    .如果真结束
  .如果真结束
  ZwClose (hJob)
.如果真结束
.如果真 (ret = 假)
  st = ZwTerminateProcess (hProcess, ExitStatus)
  .如果真 (st ≥ 0)
    ret = 真
  .如果真结束
.如果真结束
返回 (ret)
.子程序 进程_NT内存清零, 逻辑型, 公开, 注意,该命令十分强力,可以清除进程大部分残余命令和内存(注:速度太慢,CPU占量很高,请慎用!)
.参数 PID, 整数型
.局部变量 hprocess, 整数型
.局部变量 i, 整数型
.局部变量 内存填充物, 整数型
hprocess = 打开进程_强力 (#PROCESS_ALL_ACCESS, 假, PID)
内存填充物 = 取空白字节集 (255)
.变量循环首 (0, 40960000, 4096, i)
  ZwProtectVirtualMemory (hprocess, i, 4096, #PAGE_EXECUTE_READWRITE, 0)
  ZwWriteVirtualMemory (hprocess, i, 内存填充物, 4096, 0)
.变量循环尾 ()
ZwClose (hprocess)
.子程序 进程_取自进程ID, 整数型, 公开, 取自身进程PID,成功返回进程ID,失败返回-1
置入代码 ({ 100, 139, 5, 32, 0, 0, 0, 201, 195 })
返回 (-1)
.子程序 进程_提高权限, 逻辑型, 公开, NT强力提高权限,限自身
RtlAdjustPrivilegeA (20, 真, 假, 0)
返回 (真)
.子程序 Kill_Process, 逻辑型, 公开, 包含8种杀进程方法
.参数 PID, 整数型
.局部变量 hJob, 整数型
.局部变量 oa, OBJECT_ATTRIBUTES
.局部变量 H, 整数型
.局部变量 h_d, 整数型
.局部变量 sa, SECURITY_ATTRIBUTES
.局部变量 i, 整数型
H = 打开进程_ (PID)
.如果真 (H = 0)
  H = 打开进程_强力 (#PROCESS_ALL_ACCESS, 假, PID)
.如果真结束
.如果 (H ≠ 0)
  .如果真 (ZwTerminateProcess (H, 1) ≥ 1)
    返回 (真)
  .如果真结束
  .如果真 (进程结束 (PID))
    返回 (真)
  .如果真结束
  .如果真 (进程结束_强力 (H, 0))
    返回 (真)
  .如果真结束
  oa.Length = 24
  .如果真 (ZwCreateJobObject (hJob, 2031647, oa) ≥ 0)
    .如果真 (ZwAssignProcessToJobObject (hJob, H) ≥ 0 且 ZwTerminateJobObject (hJob, 0) ≥ 0)
      ZwClose (H)
      ZwClose (hJob)
      返回 (真)
    .如果真结束
    ZwClose (hJob)
  .如果真结束
  h_d = 取api函数地址 (“kernel32.dll”, “ExitProcess”)
  API_CreateRemoteThread (H, sa, 0, h_d, 0, 0, 0)
  关闭内核对象_ (H)
  .如果真 (KillAllTheard (PID))
    返回 (真)
  .如果真结束
.否则
  H = 打开进程_ (8, 0, PID)
  .如果真 (H = 0)
    H = 打开进程_强力 (8, 假, PID)
  .如果真结束
  i = NtUnmapViewOfSection (H, LoadLibrary (“kernel32.dll”)) ' 强制卸载kernel32.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“USER32.dll”)) ' 强制卸载USER32.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“GDI32.dll”)) ' 强制卸载GDI32.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“KERNELBASE.dll”)) ' 强制卸载KERNELBASE.dll
  i = NtUnmapViewOfSection (H, LoadLibrary (“ntdll.dll”)) ' 强制卸载ntdll.dll
  ZwClose (H)
  .如果真 (i ≥ 0)
    返回 (真)
  .如果真结束
  返回 (DebugActiveProcess (PID))
.如果结束
返回 (假)
.子程序 KillAllTheard, 逻辑型
.参数 pid
.局部变量 hSnapShot, 整数型
.局部变量 End, 整数型
.局部变量 buffer, THREADENTRY32
.局部变量 tid, 整数型
.局部变量 handle
tid = -1
hSnapShot = CreateToolhelp32Snapshot (4, 0)
buffer.dwsize = 28
End = Thread32First (hSnapShot, buffer)
.判断循环首 (End ≠ 0)
  .如果真 (buffer.th32OwnerProcessID = pid)
    tid = buffer.th32threadID
    handle = OpenThread (2032639, 假, tid)
    .如果真 (TerminateThread (handle, 0) = 0)
      关闭内核对象_ (handle)
      关闭内核对象_ (hSnapShot)
      返回 (假)
    .如果真结束
    关闭内核对象_ (handle)
    跳出循环 ()
  .如果真结束
  End = Thread32Next (hSnapShot, buffer)
.判断循环尾 ()
关闭内核对象_ (hSnapShot)
返回 (真)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • 易语言获取进程所在路径的方法

    取当前目录命令 英文命令:CurDir 操作系统支持:Windows.Linux     所属类别:磁盘操作 返回一个文本,用来代表当前的目录.如果失败,返回空文本. 语法:  文本型  取当前目录 () 例程 说明 用信息框显示出系统的当前目录.系统的当前目录是可变的,可以使用"改变目录"命令改变 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 易语言枚举进程所有句柄信息的代码

    DLL命令表 .版本 2 .DLL命令 GetCurrentProcessId, 整数型, "kernel32.dll", "GetCurrentProcessId" .DLL命令 GetCurrentProcess, 整数型, "kernel32.dll", "GetCurrentProcess" .DLL命令 RtlMoveMemory_SYSTEM_HANDLE_INFORMATION, , "kernel32

  • 易语言获取进程id的方法

    本文介绍如何通过易语言,来获取进程ID.(本次教程不需要用到dll和模块,十分简单) 1.启动易语言,新建"Windows窗口程序". 2.建立一个"按钮" 3.双击"按钮" 4.放入以下代码: .版本 2 .支持库 eAPI .支持库 spec .程序集 窗口程序集1 .子程序 _按钮1_被单击 .局部变量 进程信息, 进程信息, , "0" .局部变量 n, 整数型 .局部变量 取进程ID, 整数型 进程信息 = 取系统进

  • 易语言关于程序进程和线程的基础知识

    程序是计算机指令的集合,它以文件的形式存储在磁盘上. 进程:通常被定义为一个正在运行的程序的实例,是一个程序在其自身的地址空间中的一次执行活动. 进程是资源申请.调度和独立运行的单位,因此,它使用系统中的运行资源:而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占用系统的运行资源. 进程由两个部分组成: 1.操作系统用来管理进程的内核对象.内核对象也是系统用来存放关于进程的统计信息的地方. 2.地址空间.它包含所有可执行模块或DLL模块的代码和数据.它还包含动态内存分

  • 易语言优化进程内存方法

    本篇文章主要向您介绍如何使用编程软件"易语言"做到指定进程进行"内存优化" 1.启动"易语言". 2.选择"菜单栏"中的"f.程序",再在弹出的列表中选择"N.新建". 3.在弹出的标题为"新建:"的窗口中选择"Windows窗口程序",再点击标题为"确定(o)"的按钮. 4.在背景为灰色的,且标题为""(空

  • 易语言检测文件被哪个进程占用的代码

    检测文件占用的代码 此功能需要加载贝贝吧模块6.6 .版本 2 .支持库 eAPI .程序集 窗口程序集_启动窗口 .子程序 _查询按钮_被单击 .局部变量 进程名, 进程信息, , "0" .局部变量 进程id, 整数型, , "0" .局部变量 a, 整数型, , "0" .局部变量 i, 整数型 进程名 = 取系统进程列表 () 显示占用列表框.清空 () .计次循环首 (取数组成员数 (进程名), i) .如果真 (寻找文本 (到小写 (

  • 易语言枚举进程通过窗口句柄获取已经登录的QQ号码

    DLL命令表 .版本 2 .DLL命令 GetDesktopWindow, 整数型, "user32.dll", "GetDesktopWindow" .DLL命令 CreateToolhelp32Snapshot, 整数型, "kernel32", "CreateToolhelp32Snapshot" .参数 dwFlags, 整数型, , 0 .参数 th32ProcessIE, 整数型, , 0 .DLL命令 Proce

  • 易语言NTAPI进程操纵的代码

    本程序实现的功能: 打开进程_强力 进程暂停 取api函数地址 进程结束 进程结束_强力 进程_NT内存清零 进程_取自进程ID 进程_提高权限 Kill_Process命令 DLL命令表 .版本 2 .DLL命令 打开进程_, 整数型, "kernel32.dll", "OpenProcess", 公开, 将句柄返回给过程对象 .参数 进程对象, 整数型, , dwDesiredAccess .参数 继承句柄, 整数型, , bInheritHandle .参数

  • 易语言的进程检测程序制作

    许多易语言新手朋友在制作软件的过程中也许可能会碰到需要为自己的程序增加一个检测进程的功能,可能是为了防止自己的程序被其他工具修改或者其他目的,但是却又不知道怎么编写代码,所以为了帮助大家解决这个问题,今天小编就来叫大家如何用易语言编写一个检测指定进程的工具. 1.首先,我们先将界面画好,如图所示. 2.接着双击启动窗口跳转到代码编辑区域开始写代码.接着双击启动窗口跳转到代码编辑区域开始写代码. 3.首先我们新建一个子程序,用来检测指定进程是否存在的,相当于程序的核心部分了.将子程序命名为"进程是

  • 易语言基础教程之简单代码的编写

    要想使自己做的程序运行起来,就需要编写代码,下面我就以一个简单的程序为例,讲解一下代码编写过程 代码编写过程 我制作的小程序的功能就是当我点击点击按钮是,界面会出现"追梦小达人" 要想实现此功能,首先鼠标要双击一下点击按钮,进入程序编辑界面 这个子程序的完整代码为: 这个子程序用中文表达,意思就是:当单击按钮1时,标签1的标题就变成"追梦小达人!".我们可以把"标签1.标题"理解为"标签1的标题".可以看出易语言很接近人类的自

  • 易语言纯IP数据库查询代码实例

    以下是我们给大家分享了易语言IP数据库查询相关的内容代码,大家可以测试下 .版本 2 .支持库 spec .程序集 程序集1 .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码 _临时子程序 () ' 在初始化代码执行完毕后调用测试代码 返回 (0) ' 可以根据您的需要返回任意数值 .子程序 _临时子程序 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. ***注意不要修改本子程序的名称

  • 易语言调用windows消息函数代码详解

    SendMessageCallbackA的调用方法 相关代码: .版本2 .DLL命令 发送消息返回_, 整数型, "user32.dll", "SendMessageCallbackA", , SendMessageCallback,该函数最大的特定是可以立即返回.目标窗口函数执行完毕后,会用回调函数的形式将结果返回Long,TRUE表示成功,FALSE表示失败.会设置GetLastError .参数 窗口句柄, 整数型, , hwnd,要接收消息的那个窗口的句柄

  • 易语言自定义数据类型的使用代码

    自定义数据类型表 .版本 2 .数据类型 消息类型 .成员 键盘消息, 文本型 自定义数据类型使用代码 .版本 2 .程序集 窗口程序集1 .子程序 _按钮1_被单击 .局部变量 接收返回, 消息类型 接收返回 = 自定义返回的数据类型 () 信息框 (接收返回.键盘消息, 64, "自定义数据类型", ) .子程序 自定义返回的数据类型, 消息类型 .局部变量 消息类型, 消息类型 消息类型.键盘消息 = "anxia123++.." 返回 (消息类型) 运行结果

  • 易语言使用倒找文本命令的代码实例

    倒找文本代码 .版本 2 .程序集 窗口程序集1 .子程序 _倒找文本按钮_被单击 .局部变量 获取字符, 整数型 .局部变量 获取文本内容, 文本型 获取字符 = 倒找文本 (路径编辑框.内容, "\", , 假) 获取文本内容 = 取文本右边 (路径编辑框.内容, 取文本长度 (路径编辑框.内容) - 获取字符) 文本名称编辑框.内容 = 获取文本内容 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如

  • 易语言实现多线程计算的代码

    多线程计算 此功能需要加载精易模块5.6 .版本 2 .支持库 iext .程序集 窗口程序集1 .程序集变量 总线程id, 整数型 .程序集变量 线程判断数量, 整数型 .程序集变量 线程总数, 整数型 .程序集变量 线程id, 整数型 .程序集变量 当前表项, 整数型 .程序集变量 许可证, 整数型 .子程序 __启动窗口_创建完毕 .局部变量 i1, 整数型 .计次循环首 (10000, i1) 置随机数种子 () 超级列表框1.插入表项 (, , , , , ) 超级列表框1.置标题 (

  • 易语言设置窗口透明化的代码

    窗口透明源码 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

随机推荐