- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前将应用程序转换为使用 CreateProcessW()
而不是 Runtime.exec()
,因为我需要它提供的信息。但是,对 CreateProcessW() 的任何调用都会失败,并显示错误代码 5(访问被拒绝)。我一直无法找出为什么会发生这种情况,因为 Runtime.exec() 在相同情况下运行良好。
我的错误可能出现在以下代码片段之一、方法调用和 jna 接口(interface)中。
public ProcessInfo createProcess(String dir, String name){
ProcessInfo pi = new ProcessInfo();
StartupInfo start = new StartupInfo();
mem.CreateProcessW(new WString(name),
null,
null,
null,
false,
0,
null,
new WString(dir),
start.getPointer(),
pi.getPointer());
return pi;
}
我对CreateProcessW的定义
boolean CreateProcessW(WString apname,
char[] comline,
Pointer p,
Pointer p2,
boolean inheritHandles,
int createFlags,
String environment,
WString directory,
Pointer startinf,
Pointer processInfo);
其他信息:
使用的示例参数:
还使用不同的路径进行了测试,因此不是空格问题
谢谢
更新:
事实证明,错误是由我检查工作目录和exe路径后调用代码切换引起的。由于导致访问被拒绝,我实际上认为它至少找到了 exe。我将添加一个 IllegalArgumentException 来解决这个问题。
由于我在 exe 相对于工作目录的情况下遇到了额外的错误,因此我将接受该答案。感谢大家的帮助。
最佳答案
CreateProcessW 的第一个参数必须是完整路径或相对于当前目录的路径。它不能是相对于工作目录参数的路径,这似乎是您期望它执行的操作。
尝试传递 C:\Programme\Movie Maker\moviemk.exe
作为名称参数
关于java - CreateProcessW 失败 (ACCESS_DENIED),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829031/
VS10、MBCS、Unicode 预处理器定义。浏览了 Google 博士的案例手册后,最好的帮助是 here ,但它并没有完全解决这个特定的问题。考虑这段代码,其中 thisexePath 是可执
#include #include #pragma warning(disable : 4996) int main(int argc, wchar_t** argv) { DWORD b
我找不到确切的答案,所以我决定问一下。 我一直在阅读“Windows 内部调试”,在示例中它告诉我在 上设置断点kernel32!CreateProcessW . 但在此之前它使用 .symfix d
我目前将应用程序转换为使用 CreateProcessW() 而不是 Runtime.exec(),因为我需要它提供的信息。但是,对 CreateProcessW() 的任何调用都会失败,并显示错误代
我想在 C 程序中执行 TEST.exe。当我使用 system( "TEST.exe output-file" ); 我能得到我所期望的。 但是当我使用以下代码时 CreateProcessW()
如何在Linux中使用“CreatePipe”和“CreateProcessW”功能,当我在Linux中编译C++代码时,出现一些错误,如下所示:在此范围内未声明“CreatePipe”。未在此范围内
我正在尝试弄清楚如何从我用 CreateProcessW 创建的进程。我看了文档,用谷歌搜索并搜索了这个列表,但我没有找到好的建议/样本然而 :) 这是我到目前为止的想法(它在 Windows 上运行
我有一个简单的代码,它使用 system() 通过变量 %APPDATA% 将文件下载到 AppData,我想使用 CreateProcessW 而不是系统,但出于某种原因,当我在 CreatProc
运行以下代码后,一切都按照我的意愿进行,除了文件夹显示:test2﷽﷽ꮫꮫꮫꮫﻮﻮﻮ 这是怎么回事? std::string arrString[3] = {" /C mkdi
CreateProcessW failed 193 Unhandled exception: ProcessException: %1 is not a valid Win32 application
我需要创建一个进程,并获得它的句柄和ID。。以下是我的代码:。它在输出窗口中输出“无法创建进程”。我在Process Explorer中看不到进程,PI的所有值仍然为0。。它还给我一条消息:在PEX.
我试图让 CreateProcess 或 CreateProcessW 执行名称 \foo.exe. arg_string 包含 "\foo.exe"foo si 设置如下: memset(&si,0
这就是我正在做的,而且我不断得到这个: 我试过: 在 GitHub 上检查我的 ssh key ,生成新的 从 https://git-scm.com/download/win 卸载和安装 Git 从
本质上,我想创建一个新进程并从父进程为其定义环境。我想使用 CreateProcessW并将(修改后的)UNICODE 环境传递到 lpEnvironment,但我不确定与 ANSII 环境 bloc
我知道 startup_info 是指向 STARTUPINFO 结构的指针 我有一个函数,我通过引用将 startup_info 传递给它。所以我们可以说我正在通过引用传递一个指针 void cp(
即使我设置了 flutter C:\flutter\bin 的路径,我在运行时也遇到了错误 flutter doctor command CreateProcessW 失败 5 哎呀; Flutter
我运行以下 C 代码来创建一个进程。 exe文件位于C:\Program Files\Exes\Start\process1.exe CreateProcessW(NULL, (char*) exeP
我正在尝试对 AWS 托管实例执行 SSH 和 SCP。我机器的公钥存储在该托管实例中。不需要 .pem 文件。我正在使用以下命令。 scp -r username@instance-id:/
所以我关注了 tutorial连接到我的远程服务器上运行的 jupyter 笔记本,以便我可以在本地 Windows 机器上访问它。 这些是我遵循的步骤。 在我的远程服务器上: jupyter not
我是一名优秀的程序员,十分优秀!