본문 바로가기

Dev::DotNet

(54)
Assembly 의 Version 을 날짜로 바꾸기 AssemblyInfo.cs 의 [assembly: AssemblyVersion("1.0.0.0")] 을 [assembly: AssemblyVersion("1.0.*")] 로 변경하면 "1.0.4598.17304" 형식으로 자동으로 버전이 증가하게 되고 System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() 를 통해서 버전값을 가져올 수 있다. Version 값의 증가는 대충봐도 중간 4자리 ( 4598 ) 은 하루에 하나씩 증가하고 마지막 5자리 ( 17304 ) 는 하루를 기준으로 증가하게 된다. 시간에 따라서 증가는 값이기 때문에 역으로 시간으로 바꿀는 방법을 생각해보았다. string[] ver = System...
네트워크 폴더 접속 Windows Network folder 를 오픈하는 방법은 그냥 net use 명령어를 배치파일로 떨궈서 실행시켜 오픈하는 방법과 API 를 통해서 오픈하는 방법이 있다. > net use 명령어를 배치파일로 만들어 실행하는 방법 string batPath = System.Environment.CurrentDirectory + @"\NetworkDrive_Connect.bat"; string netStr = @"net use " + NDServerPath + " /User:" + NDUserID + " " + NDPassword; using (FileStream fs = new FileStream(batPath, FileMode.Create)) { System.Text.ASCIIEncoding enco..
실수를 정수로 형변환 할때 지극히 기본적이면서 당연한 이야기지만 내가 예전에 했던 커다란 실수에 대해서 적어볼까 한다. C# 에서는 Convert 라는 각종 기본 자료형의 값을 형변환하는 클래스를 제공하고 있다. Convert 관련 MSDN : http://msdn.microsoft.com/ko-kr/library/dsfy6sz9 또한 예전처럼 b = (int)a 이런 식으로 형변환자를 통해서도 가능하다. 예전에 Zoom Factor 의 변경에 의한 Child 의 Location 과 Size 를 재조정하기 위해 약간의 계산식을 만드는데 ZoomFactor 는 실수(float, double) 였고 Location 과 Size 는 정수(int...) 였다. 아무 생각없이 실수를 정수로 형변환하면서 위의 2가지 방법을 혼용해서 사용하였..
다중 실행 방지를 위한 Mutex 하나의 프로그램이 두개 이상의 프로세스가 실행되지 않게 해야할 때가 있다. 나의 경우에는 여러 프로그램들이 프로그램 A 를 계속 Shell 로 호출하기 때문에 A 가 하나의 프로세스만 실행되어 있고 그 뒤에 실행되는 A의 다른 프로세스 들은 자기가 Shell 로 넘겨받은 파라매터만 처음 실행된 프로세스에게 전달해주고 자신은 죽어버리는 그러한 것이 필요했다. 찾다보니 여러 방법들이 있었는데.... 그 중 다중 프로세스 실행 방지 를 위한 방법중 가장 심플한 방법은 Mutex 를 이용한 방법인 것 같다. bool IsCreateNew; using (System.Threading.Mutex m = new System.Threading.Mutex(true, "ProccessName", out IsCreateNe..
C# 에서 Codejock 의 Ribbon 과 Docking 현재 MDI 의 레이아웃을 구성할 때 Codejock Xtreme SuitePro ActiveX 를 많이 사용하고 있다. VB6 할때 많이 사용해서 인지 손에 익고 이것저것 기능을 맵핑해서 만들어놓은 것이 많다보니까 C# Winform 에서도 사용하고 있다. 닷넷용 서드파티를 사용하는 것이 좋긴하겠지만 바꾸는 것이 쉽지는 않다....ㅡㅡ 어쩌든.... VB에서 어느정도 사용해봐서 C# 에서 할때도 금방 할 수 있을 줄 알았는데... 기본적인 Ribbon 과 Docking 을 구성하는데 많은 시간이 소요되었다. 첫번째는 예시에도 없는 소스 한줄이 있어서 그거 찾는데 많은 시간을 할애하였고... 두번째는 아무리 이렇게 저렇게 해봐도 Ribbon 과 Docking 이 제자리에 그려지지가 않았다 Ribbon 위..
Unhandled Exception 에 대한 처리 Exception 처리를 하지 않은 부분에서 예외가 발생하여 프로그램이 죽어버리는 경우가 종종 발생한다. 최대한 예외처리를 해서 그런일이 발생하지 않게 하는 것이 가장 좋은 방법이지만... 사람인지라.... 그래서 찾아보니 Unhandled Exception 을 잡아낼 수 있는 방법을 닷넷에서 제공하고 있었다. Winform / WPF 는 좀 다르긴 하지만 처음에 Application 을 통해서 시작하는데. Winform 은 아래의 event delegate 를 사용하여 가능하며 System.Windows.Forms.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadExceptio..