MAC c++ 控制交互式命令行工具

MAC c++ control interactive Command Line Tools

本文关键字:命令行 工具 交互式 控制 c++ MAC      更新时间:2023-10-16

我想从我的 c++ 代码中控制解压缩命令。我的问题是,如果我要解压缩的ZIP文件是密码加密的,解压缩工具会要求输入密码。

所以我需要从我的 c++ 代码中给它密码并按回车键,但我希望我的代码自动执行此操作。

所以这就是我到目前为止得到的,但是当我运行它时,首先将执行 system() 命令,然后程序继续,但是当解压缩要求它时,它不会将密码写入终端:(

#include <iostream>
#include </System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Headers/CGEvent.h>
#include <Carbon/Carbon.h>
int main (int argc, const char * argv[])
{
    using namespace std;
    system("clear");
    //----------------------------------------------
    {
        system("unzip /Users/das_virus/Desktop/NeuerOrdner2/M1/Auswahl.zip"),
        cout << "a";
        /*CGEventRef event1, event2, event3, event4;
        event1 = CGEventCreateKeyboardEvent (NULL,(CGKeyCode)0,true);
        event2 = CGEventCreateKeyboardEvent (NULL,(CGKeyCode)0,false);
        event3 = CGEventCreateKeyboardEvent (NULL,(CGKeyCode)36,true);
        event4 = CGEventCreateKeyboardEvent (NULL,(CGKeyCode)36,false);
        ProcessSerialNumber psn;
        GetFrontProcess(&psn);
        CGEventPostToPSN(&psn,event1);
        CGEventPostToPSN(&psn,event2);
        CGEventPostToPSN(&psn,event3);
        CGEventPostToPSN(&psn,event4);*/
    }
    return 0;
}

我希望有人能给我一个答案:)

使用 -P password 命令行开关将密码作为参数传递。