2012의 게시물 표시

Avalondock SizeChanged event handle

DockableContent의 SizeChanged Event에 핸들러를 붙여보면 동작하지 않는다. 결국 아발론닥 소스를 수정할 수 밖에 없었다. dockmanger의 크기와 dockablecontent의 영역의 위치와 크기를 알기 위해서는 소스의 prviate 부분을 public 으로 바꾸던지 readonly 속성을 추가해줘야한다.

C# log4net 이 안될때

C# WPF로 데스크탑 어프리케이션을 개발중이다. log4net을 사용해 로깅을하는데, 배포된 PC에서 로그가 남지를 않는다. 퍼미션등 여러 경우가 있겠지만 log4net.xml 이 출력 디렉토리로 복사가 안되어있었다. "출력디렉토리로 항상 복사"를 선택해도 "내용"이아니라 "리소스" 로 선택이 되어있으면 출력 디렉토리로 복사가 일어나질않는다.

암호공모전 1번문제

이미지
풀이 ( 통계학적 ) 1. 사전파일을 받는다 .(spell-check 용 , 소스포지에서 받았음 ) 2. 암호문의 3 자리 글자 중 제일 많이 나오는 단어와 2 번째 많이 나오는 단어를 찾는다 . 3. 제일많이 나오는 단어는 the , 두 번째는 and 로 가정하고 , 제일 많은 글자 (e) 가 the 와 매치되는지 확인하여 the 가 가장많이 나오는 단어라고 강하게 추측 .( 여기서는 the:dkb, and:sna) 4. 단어중 변환되고 남은부분이 가장 적은 단어부터 사전에서 정규식을 이용해 찾는다 .(Rtate 가있어 “^.tate$” 로 찾아 R 은 S 로 추측가능 ) 5. 4 번의 방법을 반복해 사전파일을 정규식으로 검색해 나머지 단어들을 찾아가면서 암호문을 치환한다 .

slow Richtextbox

http://www.abhisheksur.com/2011/03/deal-with-cpu-usage-in-wpf-applications.html http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/2f86fea5-8db1-4d48-bc60-7507a5e20331 http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c0aa9e05-0d06-418d-a2dd-b01bd35f7a19    

AvalonEdit Window XP에서 IME 활성화 문제

SharpDevelop에 4.3 포함된 AvalonEdit 는 Unicode를 지원한다. ImeSupport.cs 에서 윈도우 메시지를 처리해주는데 2수준으로 동작한다. http://msdn.microsoft.com/ko-kr/library/0x02zb6d(v=vs.90).aspx http://deguls.tistory.com/entry/IMM%EA%B3%BC-IME 그런데, 아무리해도 처음 포커스를 받을때 한글이 되질 않는다. msdn forum에 질문 해도 답이없었다. 일주일 동안 힘들었다. http://social.msdn.microsoft.com/Forums/ko-KR/visualcsharpko/thread/c2d2e467-9237-495d-91e0-6efedb8467cf

Windows XP 에서 한/영 전환이 안될때

Window XP와 IME 사이 버그이다.  아래 명령 후 실행해보면 잘될것이다.  regsvr32 /u msimtf.dll regsvr32 /u msctf.dll 다시 등록해줄수도 있으니, 걱정말고 해보시길.

AvalonEdit IME

Windows XP에서 AvalonEdit에서 IME가 3수준으로 보이도록 삽질중이다. 아직 테스트 중이라, 설명은 생략. 이정도면은 Windows7 보다 낳은 수준이라 생각된다. Win7에선 2수준으로 동작하기 때문에 입력하는 글자의 크기와 폰트를 다시 정해주어야 하는데, 같은크기와 같은 폰트로 나오기때문이다. 단점은 2수준의 IME가 windows xp에서 엉뚱한곳에 나타나는데, 같이 나타난다. 메시지를 처리했다고 알려주면 될듯한다. 더 급한게 있기때문에 패스... /*  * SharpDevelop으로 작성되었습니다.  * 사용자: MYHOME  * 날짜: 2012-05-30  * 시간: 오전 1:18  *   * 이 템플리트를 변경하려면 [도구->옵션->코드 작성->표준 헤더 편집]을 이용하십시오.  */ using  System; using  System.Collections.Generic; using  System.Text; using  System.Windows; using  System.Windows.Controls; using  System.Windows.Data; using  System.Windows.Documents; using  System.Windows.Input; using  System.Windows.Media; using  System.ComponentModel; using  System.Runtime.InteropServices; using  System.Windows.Interop; using  System.Threading; using  ICSharpCode.AvalonEdit; using  ICSharpCode.AvalonEdit.Editing; using  System.Diagnostics; using  System.Globalization; namespace  MyAvalonEditTest { ///   <summary> ///  Interaction 

국민은행 피싱 사이트

이미지
아침에 자고 있는데 문자가 왔다. 국민은행 번호였는데 내용은 " !kb긴급통지!국민은행 고객님 정보유출로 보안승급후 이용해 주세요www.kudscnkb.com " 뭐.. 냄새가 너무많이 나서 그냥 더 자고, 일어나서 어떤 모양인지 궁금해서 접속해보았다.  처음접속화면이다. 그럴싸하다. 다른 메뉴 눌려보면 전부 "보안 승급후 이용해주세요" 이다. 뭐 해본김에 한번 어떤지 다 입력해보았다. 물론 이름도 주민번호도 내맘대로 그냥 넣은것이다.  역시 소문대로 보안카드 번호를 물어온다. 막 아무거나 입력하는것도 힘들더라. 괞히 시작했어.. 마지막엔 피식 웃을을 밖에 없었다. 배전이 뭔가해서 네이버 사전도 찾아봤다. ㅎㅎ 국어사전 1-5 / 24건 10만 유의어가 있는,  네이버  국어사전 배전   4  [倍前]  [배ː전] [명사] 이전의 갑절.  배전   5  [配電]  [배ː전] [명사] <전기> 발전소에서 보내온 전력을 수용자에게 분배하거나 공급하는 일.  배전   1 [명사] [북한어] ‘ 뱃전 (배의 양쪽 가장자리 부분) ’의 북한어.  배전   2  [拜甎]  [배ː전] [명사] 종묘나 문묘, 사당 따위의 절하는 단(壇)에 깔아 놓은 벽돌.  배전   3  [背轉] [명사] [북한어] 1. 등지고 돎. 2. 배반하여 변절함.  설마 5번째 뜻은 아니겠지 ㅋ 아침이라 심심해서 nmap 으로 스캐닝도 한번해보고, 어떻게 신고하나 검색해보니 118 번 전화하거나 kisa 트윗하면 된다고 해서 잘안쓰는 트윗도 하였다. 트윗은  @kisa118  ( http://twitter.com/kisa118 )

AvalonEdit 에서 x,y,length의 단어 highlight

먼저  DocumentColorizingTransformer 를 상속받아 클래스를 하나 만든다. 해당 클래스의 인스턴스는 하나만 만들어 사용해야 함으로 싱글톤이나 static 참조변수로 하나 잡아준다. 그리고, 아래와 비슷한 클래스도 하나 만든다. public   class   Description     {          public   int  col {  set ;  get ; }          public   int  line {  set ;  get ; }          public   int  length {  set ;  get ; }     } ColorizeLine 메소드를 아래와 비슷하게 override한다. protected   override   void  ColorizeLine(ICSharpCode.AvalonEdit.Document. DocumentLine  line)         {              if  (desiredList ==  null )  return ;                               foreach  ( Description  d  in  desiredList)             {                  if  (line.LineNumber == d.line)                 {                     ChangeLinePart(line.Offset + d.col, line.Offset+d.col + d.length, ApplyChanges);                 }             }         } 그리고, highlight 부분을 udpate 해줄려면   private   void  Button_Click( object  sender,  RoutedEventArgs  e)         {              int  x =  int .Parse(txt1.Text);   

DependencyProperty 가 Binding이 안되는 경우

xmal에서 DataTemplate 을 이용해 template을 정의할때 CheckBox등 element를 binding을 해보면 안된다. 그냥해도 안되고 DependencyProperty 에 등록해줘도 안된다. 그런데, Command 같은것들은 된다. 

RibbonControlLibrary 초기화(?) 속도 문제

http://social.msdn.microsoft.com/Forums/ko-KR/visualcsharpko/thread/27948d4a-1c12-4646-bd13-6246e4f26ed5 MSDN 포럼에 질문을 올렸는데 아무런 닶이없다. 결국 .Net Framework 4.0 Client Profile 로 환경을 다시 맞추어 게시하여 구동속도가 느린 pc에서 테스트 해보았다. 결과는 다 빨라졌다. 결국, 리본 초기화시 느려지는 문제는 원인도 모르고 넘어가야할것 같다. SQLite가 런타임 혼합한다고 불평해서 구글링해서 app.config 에 supportedRuntime 에 에트리뷰트를 하나 추가해주었다. 나머지 모듈과 unity container 가 잘 동작하는지 테스트하고 AvalonDock 2.0 베타 버전까지 테스트 해봐야겠다. * AvalonDock 은 prism 사용시 레이아웃을 저장하면 region 이 사라진다. 내공이 딸려서 수정은 못하고 AvalonDock 2.0부터는 prism을 지원한다고 하니 테스트 해봐야겠다. ============================================================= 추가로 테스트한 결과 리본컨트럴을 어셈블리 서명을 확인하는것 같다. 처음엔 리본컨트럴이란 생각을 못해서 서명확인을 하지않도록하는건 무시했었다. fx3.5에서 app.config 에 서명확인을 하지 않도록하면 빠르게 실행된다. 하지만, 네트워크 설정값에 뭔가 timeout같은 값이 있기때문에 특정pc에서 느려지는것 같다.

WPF RichTextBox 의 기본 단축키 해제

RichTextBox의 Ctrl + I 같은 기본 단축키는 그냥 덮어씌우니 동작이 안되었다. 구글신에게 도움을 요청해서 겨우 찾았다. 아래 코드로 해제시킨후 쓰고자하는 command를 바인딩 한다. =========================아래 ============================== KeyBinding  keyBinding =  new   KeyBinding ( ApplicationCommands .NotACommand,  Key .L,                                                           ModifierKeys .Control);             richTextBoxMain.InputBindings.Add(keyBinding);             keyBinding =  new   KeyBinding ( ApplicationCommands .NotACommand,  Key .I,                                                           ModifierKeys .Control);             richTextBoxMain.InputBindings.Add(keyBinding);              ICommand  MyCmd =  new   MyCmd ();             keyBinding =  new   KeyBinding (MyCmd                          ,  Key .I,  ModifierKeys .Control             );             richTextBoxMain.InputBindings.Add(keyBinding); ================================= MyCmd는 적당히 ICommand 상속받아 사용하면 된다.

C# 에서 process invoke(fork)

c#에서 다른 프로세서를 호출하고 리턴값을 받기위한 소스이다. ==일단 c++===================================== #include   "stdafx.h" #include <iostream> int  _tmain( int  argc, _TCHAR* argv[]) { return  -12; } ===================================== == c#에서는 ================================= using  System; using  System.Diagnostics; using  System.Runtime.InteropServices; namespace  ConsoleCreateProcess {      public   struct   PROCESS_INFORMATION     {          public   IntPtr  hProcess;          public   IntPtr  hThread;          public   uint  dwProcessId;          public   uint  dwThreadId;     }      public   struct   STARTUPINFO     {          public   uint  cb;          public   string  lpReserved;          public   string  lpDesktop;          public   string  lpTitle;          public   uint  dwX;          public   uint  dwY;          public   uint  dwXSize;          public   uint  dwYSize;          public   uint  dwXCountChars;          public   uint  dwYCountChars;