본문 바로가기

프로그래밍/└ .NET

(6)
[C#] 모든 창 최소화 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true)] static extern IntPtr SendMessage(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam); const int WM_COMMAND = 0x111; const int MIN_ALL ..
[C#] WPF ShutdownMode this.ShutdownMode = ShutdownMode.OnExplicitShutdown; WPF는 실행하고 나서 띄울 창이 없게 되면 종료한것으로 간주된다. ShutdownMode의 default는 OnLastWindowClose인데 위 처럼 OnExplicitShutdown으로 바꾸어주면 Shutdown() 을 호출하기 전에는 App이 종료되지 않는다. 참고 : https://stackoverflow.com/questions/47370784/start-two-windows-in-sequence-from-app-xaml-cs-wpf
[C#] 다른 Thread에서 UI Thread 접근 많은 ui 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다 WPF 폼을 호출 할때에는 Dispatcher.Invoke를 꼭 써주도록 한다. WPF는 UI Thread를 구분짓고 있기 때문이다. Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { // WHAT YOU WANT TO DO... }));
[C#] Pipe 통신 PipeBase.cs using System; using System.Collections.Generic; using System.IO.Pipes; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Common.Pipe { public abstract class PipeBase { // protected protected PipeStream pipeStream; protected Action asyncReaderStart; protected void StartByteReaderAsync(Action packetReceived) { int count = 4; byte[] bDataLength = new byte[cou..
[C#] 응용프로그램 실행 시 관리자권한 요청하게 하기 Visual Studio에서 빌드되는 응용프로그램에는 실행 시 관리자 권한을 요청하도록 빌드할 수 있다. 읽는이분들도 프로그램을 실행시켰을때 관리자 권한으로 실행할 것이냐는 사용자 계정 컨트롤 창을 본 기억이 있을 것이다. 프로젝트를 생성하고 프로젝트 우클릭 - 추가 - 응용 프로그램 매니페스트 파일 선택 .manifest 란 확장자를 가지고 있는 파일이 생성된 것이 보일 것이다. 파일을 열어보자. 처음 열어보면 이렇게 default로 작성되어 있을 것이다. 사진의 19번째 라인인 를 위에 주석처리 되어져 있는 로 교체하여 주면 끝난다.
[C#] Windows Service에서 현재 유저의 관리자 권한으로 프로세스 실행 internal class ApplicationLauncher { public enum TOKEN_INFORMATION_CLASS { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids, TokenSessionId, TokenGroupsAndPrivileges, TokenSessionReference, TokenSandBoxInert, TokenAuditPolicy, TokenOrigin, MaxTokenInfoClass // MaxTok..