Development/C# 썸네일형 리스트형 Check Windows User Account Role Introduction Windows용 소프트웨어를 개발하다보면 사용자 로그를 기록하거나, 특별한 권한이 필요한 기능을 수행하려고 할때, 현재 사용자의 권한을 알아야 하는 상황이 있습니다. 이번시간에 소개할 내용은 .Net Framework를 이용해 사용자 권한의 가져오는 방법에 대해 설명합니다. using System.Security.Principal; public static List GetCurrentUserRole() { List Results = new List(); WindowsIdentity WindowsIdentity = WindowsIdentity.GetCurrent(); WindowsPrincipal WindowsPrincipal = new WindowsPrincipal(WindowsI.. 더보기 NotifyCollectionChangedHelper for increasing performance Introduction Application을 개발할때 목록에 항목이 추가되거나, 제거 되었을때와 같은 동적인 변경내용을 수신기에 알리기 위해 일반적으로 목록객체에 INotifyCollectionChanged를 상속받아 구현하거나 INotifyCollectionChanged가 구현된 ObservableCollection등을 사용합니다. 동적인 목록의 변경에 대하여 즉각 반응하기 때문에 매우 유용하게 사용될 수 있지만, 많은 양의 목록이 추가/제거 될경우 매번 목록의 변동이 있을대마다 CollectionChanged이벤트가 발생하기 때문에 퍼포먼스에 크게 영향을 미칠 수 있습니다. 이번시간에는 많은 양의 아이템을 INotifyCollectionChanged가 구현된 목록에 추가/제거할때 Collection.. 더보기 Global Hooking in .NET Introduction 이번 시간에는 전역 후킹(Global Hooking)에 대해서 알아보도록 하겠습니다. C/C++ 에서는 Win32 API를 이용하여 손쉽게 전역 후킹을 할 수 있습니다. 물론 .NET 에서도 Win32 API의 DLL 파일을 Import 하여 후킹이 가능합니다. 하지만 약간의 문제가 있습니다. 지역 후킹이 아닌 전역 후킹에서는 CallBack Procedure 를 DLL 파일로 만들어야 한다는 것이지요. 이런 이유로 .NET 에서는 전역 후킹이 안된다는 이야기가 많이 있습니다. 저 역시 초기에 이런 문제에 부딪혔습니다. Microsoft 에서 전역 후킹에 대해서 찾아보니 심지어 이런 내용이 있었습니다. (http://support.microsoft.com/kb/318804) 물론 .. 더보기 무선인터넷 수신강도 측정 개발을 하다보면, 간혹 무선인터넷의 수신 강도를 측정할 필요가 있습니다. 여러가지 방법이 있겠지만, 가장 손쉽게 구현할 수 있는 WMI 를 사용하도록 하겠습니다. 자세한 방법은 http://msdn.microsoft.com/en-us/library/aa389762(VS.85).aspx 를 참고하시면 됩니다. 필요한 정보는 다음과 같습니다 Namespace : root\WMI Classes : MSNdis_80211_ReceivedSignalStrength C# 에서 WMI 를 사용하시는데 별 어려움 없으실 거라고 생각합니다. 위에 보이는 것 처럼 직접 구현해 주셔도 되지만, 개인적으로 귀찮은지라 WMI Code Creator 를 이용해서 Copy & Paste 를 선호합니다. 팁으로 만약 C++ 에서 W.. 더보기 Remove List<T> Items Using Extension Method Introduction 이번시간에는 List형식의 목록에서 조건에 맞는 데이터를 간단하게 삭제 하기 위한 방법을 소개합니다. Extension Method로 정의되었기 때문에 사용시에는 아래와 같이 List 객체에서 RemoveItems를 직접 호출 할 수 있습니다. public static class ExtensionMethod { public static void RemoveItems(this List List, Predicate Match) { List MatchItems = List.FindAll(Match); foreach (T Item in MatchItems) { List.Remove(Item); } } } Examplepublic static void Main() { List DayOfWe.. 더보기 이전 1 2 3 다음