반응형

작년 말(?), 회사다닐 때 일입니다.

'포스트잇' 같은 메모 프로그램을 써볼까 싶어서~ 회사 PC 에 'N'모 라는 프로그램을 설치했습니다.

잠깐 써보니 인터페이스도 조금 불편하고, 이것저것 마음에 들지 않아서 바로~ 제거를 했죠;;

물론~ 프로그램 설치할 때 제공된 해당 프로그램의 '언인스톨러' 를 실행시켰습니다~

그리곤 기분 전환겸 재부팅을 했는데 =_=;; PC 상태가 약~~간 이상하더군요;;;

백신 / 방화벽이 시작되지도 않고, 트레이에 아이콘들도 안보이고~~

일시적인 현상이려나 싶어서~ 다시 재부팅... 그래도 그 이상한 상태 그대로더군요.

'시작프로그램' 쪽이 조금 이상해진건가 싶어서 아래의 키들을 살펴봤습니다.

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

살펴보던 순간 등에서 식은땀이 흐르던 기억은 아직도 생생하네요..;;;

분명히 있어야 할.. "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 키가 없었습니다.

"Run" 키에 이상한 값이 있는지 없는지 판단할 수는 있어도, 기록된 값들을 외우진 못했는데.. 한방 먹었죠;;;

급한대로 백신 / 방화벽, 디스플레이 드라이버는 새로 설치하고, OS 차원에서 등록된 키는...

옆에 분 PC 의 레지스트리 참고해서 복사하고... 한 30분 가량~ 삽질을 했었네용..;;;


=_=;; 어제... 집에 있는 개인 PC 에서 안쓰는 프로그램들 정리하던 중에 이 사건이 또 터졌습니다...;;

참 난감하더군요... 참고할 다른 PC 도 없고, 프로그램 삭제 후 다시 설치하는 건 시스템이 지저분해지고;;;

결국 포맷을 하게 만들더군요...=_=;;
( 참고로 어제는 'M' 모사의 'C~~~S~~' 라는 컨텐츠 보호 프로그램 때문이었습니다. )

생각난 김에~~ 문제의 '언인스톨러' 코드를 봤습니다...

< 그림. 01> 언인스톨러의 레지스트리 제거 코드


간단하게 코멘트를 달아보면..

RegDeleteKeyA() 는 인자로 ESI, EBX 값을 사용하는데... 이 값들은 각각 아래와 같습니다.

ESI = 0x9B89C0 : "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
EBX = HKEY_LOCAL_MACHINE


RegDeleteKeyA(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run");


"Run"
키 자체를 날려버리는군요... ( 원래는 키안의 값을 찾아서 그 값만 지워야되는데 말이죠...;;; )


이게, 설치파일 패키지를 묶을 때, 삭제부분 설정을 잘못해서 이런건지,

설치 프로그램에서 제공되는 언인스톨러 자체에 버그가 있던건지는 모르겠습니다만...

당해보면 심히 난감합니다... =_=;;;

... 뭔가 작업을 할 때는, " 테스트를 확실하게 해야겠구나~!! " 하고 느끼게해준 사건이었습니다..ㅋ

제가 만들고 뿌리는 프로그램에서 요런 문제가 발생하면 안되니깐요...



반응형
AND

반응형

이거 또, 정말 오랜만에 글을 하나 올려봅니다. ㅋ

한동인 미투데이에 빠져들면서~ 블로그를 좀 등한시 했는데, 요즘 미투데이가 시들시들해지면서~

다시 블로그로~~ ^^;;;; 아.하.하.하..;;


요즘 개인적으로 툴을 하나 만들어볼까~~~!? 하고 작업을 시작했습니다.

텍스트(?)를 화면에 뿌려주는 게 필요해서 뭘로 할까~ 고민하다가 RichEdit 컨트롤 로 정했습니다.
( 텍스트에 따라 글자 색깔도 조금 바꿔주는 등의 처리가 필요할 듯 싶어서...^^;;;; )

본격적으로 작업을 시작하기도 전에~ 테스트 단계에서 무진장(?) 애를 먹었습니다.

간단하게 RichEdit 컨트롤을 테스트하기 위해 약간의 입력을 했는데, 아래의 결과가 나오더군요;;;


< 그림. 01 > RichEdit 컨트롤 테스트


폰트를 '돋움체 - 크기 : 11' 로 맞춰두고 입력을 했는데~ 이 모양입니다;;;
( '돋움체' 는 고정폭으로 한글 1자와 숫자, 영어 2자의 폭이 일치해야하거든요... =_=;;; )

숫자와 한글은 입력이 잘된다 싶었는데, 이 놈의 영어 입력에서~ 살짝 태클이 들어오더군요;;;

보시는 것처럼 영어 입력시 폰트가 달라집니다. 이후에 입력되는 숫자들도 영향을 받구요...

이.것.때문에 한참 삽질을 했습니다...ㅠ.ㅠ...

검색으로 RichEdit 컨트롤에 관련된 내용을 뒤지다가 엄~~~~청 뒷북으로 알게된 사실....;;;

RichEdit 2.0 부터는 사용자가 입력하는 언어를 바꾸면 자동으로 글꼴을 바꿔주는 옵션이 있다. ( IMF_AUTOFONT )

이런게 있더군요... 하아 =3=3=3
( RichEdit 1.0 이후로는 쓴 적이 없다보니 이런 일이... oTL;;;; )

이 옵션은 IDE 폼 디자이너의 컨트롤 속성 창으로는 변경이 불가능하며~

SendMessage() 를 이용해야 합니다.


[ Visual C++ 에서의 코드 ]

CRichEditCtrl m_ctrlRichEdit;

...

m_ctrlRichEdit.SendMessage(EM_SETLANGOPTIONS, 0,
            (LPARAM)(m_ctrlRichEdit.SendMessage(EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT));


[ C++ Builder 에서의 코드 ]

TRichEdit *RichEdit1;

...

::SendMessage(RichEdit1->Handle, EM_SETLANGOPTIONS, 0,
      (LPARAM)(::SendMessage(RichEdit1->Handle, EM_GETLANGOPTIONS, 0, 0) & ~IMF_AUTOFONT));


RichEdit 2.0 나온지도 한참 됐는데... 이제서야 알게됐다는게 심히 부끄럽네요.. *^_^*;;;

슬~~ 슬~~ 저는 또 작업 진행하러 갑니다~~ : )


반응형
AND

반응형

2010년 새해부터 백수모드 돌입했습니다~ : )

3년이 조금 넘는 기간동안 꽤나 지쳤나봅니다...

한~두달간은 푹 쉬면서... 재충전을 할 계획입니다.

못 만나던 친구들도 만나보고... 여행도 조금 다녀보고...^^


이놈의 방전상태를 극복하고 나면~ 다시 뭔가 새로운걸 시작해봐야죠..^^

제 블로그에 들러주시는 모든 분들~~ ^^

새해 복 왕~~~~~~창 받으시구요... 올 한해 원하는 일 다 잘되시길 바랍니다~!!

2010년, 화이팅~!!!!!
반응형
AND