JHB의 프로그래밍 삽질기

인스톨러 제작, INF의 SourceDisksFiles, TaskScheduler 본문

PROGRAMMING/Etc

인스톨러 제작, INF의 SourceDisksFiles, TaskScheduler

roter 2010.04.23 16:49


1. cat파일을 추가하여 인스톨러 제작하기..

애초 DTS_U, DTS_PS2, DTS_MOU 로 이루어져있는 우리의 드라이버가
드라이버 설치만으로 작동할 것이라고 생각한게 큰 오산이었다..
당연히 새 하드웨어 추가를 통해 아무리 inf를 넣어봤자 돌아갈리가 없었다.
'마우스 서비스'를 실행해서 터치 드라이버 부분의 USB와 에뮬레이션 해줘야 했으니까..
마우스 서비스는 DTS_MOU.sys에서 담당했으며 이 부분은 어플리케이션에서 레지스트리 등록을 통해서 따로 구현해 줘야 하는 부분이었다. 그러니 아무리 인스톨 쉴드 위자드로 파일을 옮겨봤자 제대로 될리가 없지..
기존 인스톨러에 있는 레지스트리 부분이 너무 많아서 기존 인스톨 소스에 서명된 cat파일을 추가하는 것으로 마무리 지었다.


2. INF의 [SourceDisksFiles]

INF의 [SourceDisksFiles]에는 꼴랑 DTS_U.sys = 1 이렇게 하나 들어있는데 동근이 형이 만든 소스를 보면
[SourceDisksFiles]
IGTdrv.sys  = 12, System32\Drivers
이렇게 돼있을 때도 있다.
12는 System32 폴더를 가리킨다고 한다.(System32\Drivers였던가? 뭐 여튼.. 나중에 다시 알아봐야지)
1일때는 inf와 sys파일이 같은 폴더에 있음을 의미한다.


3. TaskScheduler(스펠링이 이게 맞나)에 등록하기

비스타의 UAC는 상당히 까다로워서 건드리기 만만치 않다.
당연한 얘기지만 Digitouch 프로그램은 Start Up에 등록할 수가 없다. 망할 Windows Defender가 막아버린다.
Authenticode 담당자에게 우리 프로그램은 디지털 서명했는데도 차단당한다 라고 메일을 보냈지만 답이 오질 않았다.
내 생각에 디지털 서명 문제는 아닌거 같고..
여튼 해결법을 생각하다가 작업 스케쥴러에 Log On시 Highest권한으로 프로그램을 실행하도록 설정해 줬더니 아무 문제 없이 윈도우 시작시에 프로그램이 실행 된다.
이제 이걸 코딩해 줘야 되는데 문제는 자사의 인스톨러가 VS6.0으로 만들어져있다는것 -_-
비스타의 작업 스케쥴러를 다룰려면 VS2005 이상 버전의 SDK가 필요할 것 같은 느낌인데 그렇다면 모듈로 만들어서 삽입하면 되지 않냐! 라고 하자니 또 권한 문제가 맘에 걸린다 =_=
아아아아아아아아아아아아 우선은 어떻게든 만들어봐야겠다. 아 그리고 VS2005에서 VS2010으로 갈아 탔는데 sdk가 있을려나.. 이제 찾아봐야지 ...

라고 생각하고 조금 찾아보니 xml로 간단하게 실행하는게 나왔다...... 뻘짓했네..


4. XP는 Verisign으로 Driver Code Signing이 되지 않는다.

뭐 이건 MS기술 문서에도 나와있지만 그래도 한번 해봤다.
sys에 서명하건 cat파일에 서명하건 XP에서는 verisign으로 서명한 건 통하지 않더라. 뭐 결국 필요한건 WHQL..
아 참고로 비스타도 WHQL받은게 아닌 Verisign으로 디지털 서명 한 경우 다이얼로그 박스가 뜨긴 뜬다. 하지만 '신뢰할 수 없는 게시자'가 아니고 'Publisher'가 온전하게 표시된다는 점..
저작자 표시 비영리 변경 금지
신고
0 Comments
댓글쓰기 폼