//기본 클라이언트의 실행 파일 주소를 알수 있다.

QSettings settings("HKEY_CLASSES_ROOT\\mailto\\shell\\open\\command",QSettings::NativeFormat);
QString value = settings.value(".").toString();

//실제 가져와 보면 이런 값들이 있다.

"C:\PROGRA~1\MICROS~1\Office15\OUTLOOK.EXE" -c IPM.Note /mailto "%1"


이걸 직접 쓰는데는 문제가 있어서 난 이렇게 했다.


QProcess process;

        QString program;//

value.replace("\"",""); //레지스트리 값의 따옴표 제거

value.replace("\\","\\\\"); //경로 구분자 변경

value.replace("/mailto",""); //제거

        value.replace("%1","");//제거
        value.replace("-c","");//제거
        value.replace("IPM.Note","");//제거

        program = value;

QStringList attach = QStringList()<<"/c" << "ipm.note"<<"/a" << "C:/valid.png";//이미 레지스트리에 있는 값 중에 내가 원하는 인자를 string list로 추가함

        process.start(program,attach);

process.waitForFinished();//해당 코드는 OS 환경에 따라서 필요 없기도 하지만 난 무조건 추가한다.



by 무위자연 2015. 5. 7. 16:50