开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2247|回复: 4
收起左侧

[已解决] 精易火山模块 进程_取用户名 问题反馈

 关闭 [复制链接]
结帖率:69% (11/16)
发表于 2024-3-20 16:04:55 | 显示全部楼层 |阅读模式   广东省东莞市
10精币
使用这个命令的时候报错如下:




错误: 使用所指定的本地编译器编译当前程序失败
<D:\win_android_chs_free\plugins\vprj_win\classlib\user\火山精易模块\JyModule_Process.v>, 899: 错误:
    error C2065: “pfnNtQuerySystemInformation”: 未声明的标识符
    error C2065: “pfnWinStationGetProcessSid”: 未声明的标识符
<D:\win_android_chs_free\plugins\vprj_win\classlib\user\火山精易模块\JyModule_Process.v>, 902: 错误: error C3861: “pfnNtQuerySystemInformation”: 找不到标识符
<D:\win_android_chs_free\plugins\vprj_win\classlib\user\火山精易模块\JyModule_Process.v>, 907: 错误: error C3861: “pfnNtQuerySystemInformation”: 找不到标识符
<D:\win_android_chs_free\plugins\vprj_win\classlib\user\火山精易模块\JyModule_Process.v>, 921: 错误: error C3861: “pfnWinStationGetProcessSid”: 找不到标识符
<D:\win_android_chs_free\plugins\vprj_win\classlib\user\火山精易模块\JyModule_Process.v>, 923: 错误:
    error C3861: “pfnWinStationGetProcessSid”: 找不到标识符
    vpkg_进程类_.cpp

最佳答案

查看完整内容

那你直接删掉模块里的 进程_取用户名 复制我给你的 火山精易模块奇葩BUG太多 这个我修复了好了 顺便同时支持了32/64 方法 进程_取用户名 参数 进程ID { 变量 szName @ typedef enum _SYSTEM_INFORMATION_CLASS @ { @ SystemBasicInformation = 0, @ SystemPerformanceInformation = 2, @ SystemTimeOfDayInformation = 3, @ SystemProcessInformation = 5, @ Syst ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 资源分享区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换终身vip用户组哦。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (11/11)

签到天数: 17 天

发表于 2024-3-20 16:04:56 | 显示全部楼层   浙江省嘉兴市
小奶龙鸭 发表于 2024-3-20 16:41
有五行错误,这个是只有四行吗  实在新手不太懂  哭死

那你直接删掉模块里的 进程_取用户名  复制我给你的 火山精易模块奇葩BUG太多 这个我修复了好了 顺便同时支持了32/64



<火山程序 类型 = "通常" 版本 = 1 />

方法 进程_取用户名 <公开 静态 类型 = 文本型 注释 = "获取指定进程的用户名" @禁止流程检查 = 真 "//@视窗.需求目标平台" = @"32位平台">
参数 进程ID <类型 = 整数>
{
    变量 szName <类型 = 文本型>
    @ typedef enum _SYSTEM_INFORMATION_CLASS
    @ {
    @     SystemBasicInformation = 0,
    @     SystemPerformanceInformation = 2,
    @     SystemTimeOfDayInformation = 3,
    @     SystemProcessInformation = 5,
    @     SystemProcessorPerformanceInformation = 8,
    @     SystemInterruptInformation = 23,
    @     SystemExceptionInformation = 33,
    @     SystemRegistryQuotaInformation = 37,
    @     SystemLookasideInformation = 45,
    @     SystemCodeIntegrityInformation = 103,
    @     SystemPolicyInformation = 134,
    @ } SYSTEM_INFORMATION_CLASS;

    @ typedef struct _UNICODE_STRING
    @ {
    @     USHORT Length;
    @     USHORT MaximumLength;
    @     PWSTR   Buffer;
    @ } UNICODE_STRING, * PUNICODE_STRING;

    @ typedef struct _SYSTEM_PROCESS_INFORMATION
    @ {
    @     ULONG NextEntryOffset;
    @     ULONG NumberOfThreads;
    @     LARGE_INTEGER     qSpareLi1;
    @     LARGE_INTEGER     qSpareLi2;
    @     LARGE_INTEGER     qSpareLi3;
    @     LARGE_INTEGER     qCreateTime;
    @     LARGE_INTEGER     qUserTime;
    @     LARGE_INTEGER     qKernelTime;
    @     UNICODE_STRING     ImageName;
    @     int                 nBasePriority;
    @     HANDLE              dwProcessId;
    @     PVOID              dwInheritedFromUniqueProcessId;
    @     ULONG              dwHandleCount;
    @     ULONG              dwSessionId;
    @     PVOID              dwSpareUl3;
    @     SIZE_T             tPeakVirtualSize;
    @     SIZE_T             tVirtualSize;
    @     ULONG              dwPageFaultCount;
    @     SIZE_T              dwPeakWorkingSetSize;
    @     SIZE_T              dwWorkingSetSize;
    @     PVOID              tQuotaPeakPagedPoolUsage;
    @     SIZE_T             tQuotaPagedPoolUsage;
    @     SIZE_T             tQuotaPeakNonPagedPoolUsage;
    @     SIZE_T             tQuotaNonPagedPoolUsage;
    @     SIZE_T             tPagefileUsage;
    @     SIZE_T             tPeakPagefileUsage;
    @     SIZE_T             tPrivatePageCount;
    @     LARGE_INTEGER     qReadOperationCount;
    @     LARGE_INTEGER     qWriteOperationCount;
    @     LARGE_INTEGER     qOtherOperationCount;
    @     LARGE_INTEGER     qReadTransferCount;
    @     LARGE_INTEGER     qWriteTransferCount;
    @     LARGE_INTEGER     qOtherTransferCount;
    @ } SYSTEM_PROCESS_INFORMATION;

    @ typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
    @ typedef NTSTATUS(WINAPI* NtQuerySystemInformation)(SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength);
    @ typedef BYTE(WINAPI* WinStationGetProcessSid)(HANDLE hServer, DWORD ProcessId, FILETIME ProcessStartTime, PBYTE pProcessUserSid, PDWORD dwSidSize);

    @ HMODULE hModule[2];
    @ hModule[0] = LoadLibraryW(L"ntdll.dll");
    @ hModule[1] = LoadLibraryW(L"winsta.dll");

    @ NtQuerySystemInformation pfnNtQuerySystemInformation;
    @ WinStationGetProcessSid pfnWinStationGetProcessSid;

    @ if (hModule[0])  pfnNtQuerySystemInformation = (NtQuerySystemInformation)GetProcAddress(hModule[0], "NtQuerySystemInformation");
    @ if (hModule[1])  pfnWinStationGetProcessSid = (WinStationGetProcessSid)GetProcAddress(hModule[1], "WinStationGetProcessSid");

    @ if (pfnNtQuerySystemInformation && pfnWinStationGetProcessSid)
    @ {
    @     DWORD dwSize = 0;
    @     pfnNtQuerySystemInformation(SystemProcessInformation, NULL, 0, &dwSize);
    @     NTSTATUS lRetVal;
    @     SYSTEM_PROCESS_INFORMATION* pSystemInformation, * pCurSystemInformation;
    @     pSystemInformation = (SYSTEM_PROCESS_INFORMATION*)malloc(dwSize);
    @     ZeroMemory(pSystemInformation, dwSize);
    @     lRetVal = pfnNtQuerySystemInformation(SystemProcessInformation, pSystemInformation, dwSize, &dwSize);
    @     if (lRetVal == STATUS_WAIT_0)
    @     {
    @         pCurSystemInformation = pSystemInformation;
    @         while (pCurSystemInformation->dwProcessId != (HANDLE)@<进程ID>)
    @         {
    @             if (pCurSystemInformation->NextEntryOffset == 0) break;
    @             pCurSystemInformation = (SYSTEM_PROCESS_INFORMATION*)((BYTE*)pCurSystemInformation + pCurSystemInformation->NextEntryOffset);
    @         }
    @         if (pCurSystemInformation->dwProcessId == (HANDLE)@<进程ID>)
    @         {
    @             FILETIME qCreateTime;
    @             memcpy(&qCreateTime, &pCurSystemInformation->qCreateTime, sizeof(qCreateTime));
    @             DWORD dwSize = 0;
    @             pfnWinStationGetProcessSid(NULL, (DWORD)pCurSystemInformation->dwProcessId, qCreateTime, NULL, &dwSize);
    @             BYTE* pSid = new BYTE[dwSize]();
    @             pfnWinStationGetProcessSid(NULL, (DWORD)pCurSystemInformation->dwProcessId, qCreateTime, pSid, &dwSize);
    @             DWORD dwNameLen = 0, dwDomainLen = 0;
    @             SID_NAME_USE snu;
    @             LookupAccountSidW(NULL, pSid, NULL, &dwNameLen, NULL, &dwDomainLen, &snu);
    @             TCHAR* szName = new TCHAR[dwNameLen](), * szDomain = new TCHAR[dwDomainLen]();
    @             LookupAccountSidW(NULL, pSid, szName, &dwNameLen, szDomain, &dwDomainLen, &snu);
    @             @<szName>.SetValueText(szName);
    @             delete[] szName;
    @             delete[] szDomain;
    @             delete[] pSid;
    @         }
    @     }
    @ free(pSystemInformation);
    @ }
    @ if (hModule[0]) FreeLibrary(hModule[0]);
    @ if (hModule[1]) FreeLibrary(hModule[1]);
    @ return @<szName>.GetText();
}



评分

参与人数 1荣誉 +3 收起 理由
笨潴 + 3 热心帮助他人,荣誉+3,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (11/11)

签到天数: 17 天

发表于 2024-3-20 16:12:29 | 显示全部楼层   浙江省嘉兴市
把这个源码改一下

<火山程序 类型 = "通常" 版本 = 1 />
// @ if (hModule[0]) NtQuerySystemInformation pfnNtQuerySystemInformation = (NtQuerySystemInformation)GetProcAddress(hModule[0], "NtQuerySystemInformation");
// @ if (hModule[1]) WinStationGetProcessSid pfnWinStationGetProcessSid = (WinStationGetProcessSid)GetProcAddress(hModule[1], "WinStationGetProcessSid");

@ NtQuerySystemInformation pfnNtQuerySystemInformation = (NtQuerySystemInformation)GetProcAddress(hModule[0], "NtQuerySystemInformation");
@ WinStationGetProcessSid pfnWinStationGetProcessSid = (WinStationGetProcessSid)GetProcAddress(hModule[1], "WinStationGetProcessSid");
回复

使用道具 举报

结帖率:69% (11/16)
 楼主| 发表于 2024-3-20 16:41:14 | 显示全部楼层   广东省东莞市
qq793359277 发表于 2024-3-20 16:12
把这个源码改一下

有五行错误,这个是只有四行吗  实在新手不太懂  哭死
回复

使用道具 举报

结帖率:69% (11/16)
 楼主| 发表于 2024-3-20 16:50:05 | 显示全部楼层   广东省东莞市
qq793359277 发表于 2024-3-20 16:43
那你直接删掉模块里的 进程_取用户名  复制我给你的 火山精易模块奇葩BUG太多 这个我修复了好了 顺便同时 ...

牛逼大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表