sss啥 发表于 2022-6-5 21:58:26

易语言这个API 为何转换会出现参数错误?请大佬

易语言这个API 为何转换会出现参数错误?请大佬

CreateProcessAsUserA (0, road, 命令行, 0, 0, 0, 524288, 0, start, si, pi)

.版本 2
.DLL命令 CreateProcessAsUserA, 逻辑型, "advapi32.dll", "CreateProcessAsUserA"
    .参数 hToken, 整数型, , 0
    .参数 lpApplicationName, 文本型, , 0
    .参数 lpCommandLine, 文本型, , 0
    .参数 lpProcessAttributes, 整数型, , 0
    .参数 lpThreadAttributes, 整数型, , 0
    .参数 bInheritHandles, 整数型, , 0
    .参数 dwCreationFlags, 整数型, , 0
    .参数 lpEnvironment, 整数型, , 0
    .参数 lpCurrentDirectory, 文本型, , 0
    .参数 lpStartupInfo, STARTUPINFOEX, , 0
    .参数 lpProcessInformation, PROCESS_INFORMATION, , 0

在火山中:

无法截图。。论坛出现问题了啊

火山中:CreateProcessAsUser(0, 0, 取字节集指针 (文本到字节集 (命令行)), 0, 0, 假, 524288, 0, 0, si, pi)

其中的524288只有改成0才可以,如果不改,就显示参数错误。
CreateProcessAsUser方法:


Xelloss0618 发表于 2022-6-5 22:57:43

你火山的都没发出来,怎么知道你有没写错呢,易语言转过来,很多类型要改的

shuimiao 发表于 2022-6-6 06:57:26

CreateProcessAsUserW 火山要用w。用A的话,需要文本到多字节(,假),API的文本和字节集在火山要改成变整数,然后用取文本指针,取字节集指针,取变量指针,逐个试,赋值指针给变整数

羡羡 发表于 2022-6-6 08:45:21


第二个参数不能是0

sss啥 发表于 2022-6-6 09:03:04

shuimiao 发表于 2022-6-6 06:57
CreateProcessAsUserW 火山要用w。用A的话,需要文本到多字节(,假),API的文本和字节集在火山要改成变整 ...

火山上传不了截图了 没办法截图火山的,也不能复制火山。但你说的 我都已经用多了 我用的是W 不是A 还有文本和字节集到变整数 这些我都弄了。只出现在其中的524288只有改成0才可以 这个问题上

sss啥 发表于 2022-6-6 09:04:05

羡羡 发表于 2022-6-6 08:45
第二个参数不能是0

那为什么易语言中第二参数可以为0而且在C++中 我测试了第二个参数null也没问题。

Xelloss0618 发表于 2022-6-6 09:56:28

如果你上传不了截图,可以把源码或截图传到网盘,给网盘链接
第二个参数是可以填 NULL 的
那个 524288 是 EXTENDED_STARTUPINFO_PRESENT,作用是把倒数第二参数 lpStartupInfo 的结构体从 STARTUPINFO 改成 STARTUPINFOEX
如果你用 524288 提示参数错误,那可能你给的结构体是 STARTUPINFO
页: [1]
查看完整版本: 易语言这个API 为何转换会出现参数错误?请大佬