등록
sc create [서비스명] binPath = 경로 start= auto

> start는 수동과 자동을 정하는 것이며 기본은 수동이다.

삭제
sc delete [서비스 명]

서비스 실행
sc start [서비스명]

서비스 상태를 보려면

sc query [서비스명]

예외 처리
- 삭제한 다음에 다시 등록할려고 할 때 1072 애러가 뜬다면?
모든 사용자를 로그오프한 다음에 등록하면 된다.


by 무위자연 2016. 7. 11. 16:15


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

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

1. hex 값이 들어 있는 QbyteArray를 String으로 만들 때

QString temp = QString(tarr.toHex());

QString().sprintf 으로 할려니까 노답.


2. hex값 들이 나열된 string을 int로 바꿀 때

qint64 tvalue = temp.toInt(&ok, 16);

3. Windows의 localtime32로 생성한 데이터를 바이너리 데이터로 저장하고 QT에서 읽어올때

1,2번을 거쳐서 만든 값은 sec 값으로서 해당 값에 1000을 곱해준 다음에 밀리세컨드를 시간으로 변경해주는 함수를 사용한다.

QDateTime datatime = QDateTime::fromMSecsSinceEpoch(tvalue * 1000);

4. 10진수 값을 hex string으로 만들때.

QString::number(temp_number[1], 16)

만일 이 값의 "0"으로 자릿수를 맞추면서 hex로 변환한다고 한다면

QString("%1").arg(temp_number[1], 2, 16, QLatin1Char( '0' )).toUpper()


by 무위자연 2015. 3. 3. 15:42
| 1 |