즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

분류 전체보기 271

[2021.04] C#에서 WIN32 API를 이용한 객체로 폼 이동방법

제목 만들기 참 까다롭고 설명하기 난해할 것 같은데, 예를 들어 설명해보겠습니다. 폼의 Borderstyle을 None으로 해서 툴박스나 X박스 없이 이미지를 백그라운드로 입혀서 이쁘게 만들려고 하면, 어? 툴박스가 사라져서 폼을 이동할 수 있는 방법이 사라집니다. 이런 어플리케이션 보면 거의 움직이는 것을 본적이 없는 것 같네요. 그런데 난 움직이게 하고 싶다. 하면 이 글을 잘 찾아오신 겁니다. 단, 윈도우32 API를 이용할 것이기 때문에 윈도우에서만 됩니다. 아래 예제는 폼 자체에 이벤트를 후킹할 것이기 때문에 폼의 영역 아무곳을 클릭해서 잡아 끌면 폼 자체가 이동됩니다. 옛날 윈도우 개발하시던 분들 SendMessage, ReleaseCapture 많이 보셨을 겁니다. 이것을 이용합니다. con..

개발/C# 2021.04.06

[2021.04] C#에서 이중 인증 중 OTP 활용 방법

개발환경: VisualStudio 2017, Devexpress 20.x 왜이리 한글 문서들로 정리된 문서가 없는지 또 작성해본다. 보통 이중인증 보다는 투-팩터 인증이라는 단어를 많이 사용한다. (나만 그런가?) 요즘 사이버 보안이 잘 뚫리다 보니 아이디/패스워드 로그인 체계에 덧 붙여서 이중 또는 다중 인증을 사용토록 하는게 요즘 인/허가 가이드의 보안 방침이다. 이중 인증의 방식은 공인인증, 사설인증, 생체인증, 간편인증, ... 진짜 많다. 그 중 본문에서는 시간정보와 비밀키를 이용한 OTP를 다뤄볼까 한다. OTP를 계산하는 방식은 동일하기 때문에 어떤 OTP앱을 사용해도 동일하게 인증 체크가 가능하다. 개념만 알면 엄청 단순해서 글 작성이 안된 것일까? 아니면 많이 사용하지 않아서일까? 참고U..

개발/C# 2021.04.06

[2021.03] VB 6.0 이중 실행 방지 구문

안녕하세요. 오늘은 거의 제가 사용하지 않지만 10년 넘게 개발했었던 VB 6.0 팁 코드를 적어볼까 합니다. 서버 프로그램 개발 시 사용자나 스케줄러에 의해서 이중 실행될 경우에 대한 문제가 있을텐데요. 이를 프로그램 진입 점에 이중실행 여부를 체크하여 종료시키는 중요한 코드입니다. 자체적으로 이중 실행 구문을 체크하는 코드는 다음과 같습니다. If App.PrevInstance = True Then Exit Sub end if 그러나 윈도우 하나의 세션에서만 감지할 뿐 다른 세션에서 실행 시 감지를 못하는 단점이 있습니다. 보통 원격데스크탑으로 접속하면 세션이 추가로 생성되서 열리는데 여기서 실행이 되지 않았다고 판단하고 사용자가 실수로 실행을 할 수 있다는 여지가 생깁니다. 저도 이런 실수를 무지 ..

[2021.03] C#에서 Unix Time을 구해보자.

보통 로그에 시간정보가 누적해서 들어가기 때문에 Date타입이나 String타입으로 설정하는 것보다는 UnixTime을 이용해 숫자값으로 저장하는 것이 훨씬 적게 데이터를 쌓을 수 있다. UnixTime은 ISO8601 표준에 의거해 1970년 01월 01일 09시 00분 00초를 기점으로 초 단위로 카운트 된다. 이 글을 작성하는 시간으로 Unix Time을 구하면 다음과 같다. # date -d '2021-03-26 15:29:00' '+%s.%N' | cut -b1-10 1616740140 이 정보를 이용해 C#으로 작성해보자. public static DateTime IntToDateTime(int intDate) { return new DateTime(1970, 1, 1, 9, 0, 0).Add..

개발/C# 2021.03.26

[2021.03] C# 프로그램을 관리자 권한으로 실행하기

출처: www.enjoydev.net/xe/en_devboard/26728 엔조이데브: 팁&트릭 - 관리자 권한으로 실행하기 다음 함수 추가 public static bool IsAdministrator() { WindowsIdentity identity = WindowsIdentity.GetCurrent(); if (null != identity) { WindowsPrincipal principal = new WindowsPrincipal(identity); return principal.IsInRole... www.enjoydev.net 다음 함수는 프로그램이 관리자 권한으로 실행했는지에 대한 여부를 알 수 있게 하는 함수이다. Static 함수로 추가하거나 클래스에 다음 함수를 추가한다. 아래 코드..

개발/C# 2021.03.26