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

时间:2012-10-08 20:01:51

标签: c++ macos command-line interactive

我想从我的c ++代码中控制unzip命令。我的问题是,如果我要解压缩的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;
}

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

1 个答案:

答案 0 :(得分:0)

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