.NET/CSharp
-
[C#] - Process.MainWindowHandle 속성.NET/CSharp 2022. 5. 25. 15:48
Process.MainWindowHandle 속성으로 보면 Application.Run() 메서드에 들어가는 Form 클래스의 Handle 로 오해하기 쉽다. 그러나 해당 속성은 전혀 그렇지 않고 프로그램상의 포커스되는 최상위 윈도우의 Handle 로 지정이 된다. https://docs.microsoft.com/ko-kr/dotnet/api/system.diagnostics.process.mainwindowhandle?view=net-6.0 Process.MainWindowHandle 속성 (System.Diagnostics) 연결된 프로세스의 주 창에 대한 창 핸들을 가져옵니다. docs.microsoft.com KakaoTalk 에서 핸들정보가 아래와 같다면 - KakaoTalk = 1705822 ..
-
[C#] - WinForm Edge WebView2 사용방법 및 팁.NET/CSharp 2022. 3. 24. 15:14
최근에 Windows 10 업데이트가 되면서 아래와 같이 WebView2 런타임이 설치된 걸 볼 수 있습니다. 필자는 최근에 회사 PC 윈도우를 다시 설치하여 2022-03-20 날짜로 나오지만 해당 날짜보다 이전에 설치된 걸로 파악이 됩니다. Windows 10 Enterprise 기준입니다. Microsoft Edge supported Operating Systems https://docs.microsoft.com/en-us/deployedge/microsoft-edge-supported-operating-systems 윈도우를 최신으로 업데이트하여도 Microsoft Edge WebView2 런타임이 설치가 되어 있지 않을 경우 아래의 경로에서 설치 파일을 다운로드하여 설치합니다. 필자의 Windo..
-
[C#] - WinForm WebBrowser 사용방법 및 팁.NET/CSharp 2021. 12. 17. 20:15
C# WinForm WebBrowser 사용방법 및 팁 현재 회사에서 WebBrowser 컨트롤을 활용한 프로그램을 개발중에 있습니다. 개발하면서 겪었던 점을 정리합니다. 1.WebBrowser 레지스트리 Internet Feature Control Keys https://msdn.microsoft.com/en-us/library/ee330720(v=vs.85).aspx 위에 링크는 WebBrowser를 활용하기 위해 필요한 기능(레지스트리 정보)에 대해서 설명하고 있습니다. InternetFeatureControlKeys 클래스는 해당 레지스트리 정보들을 추가 할 수 있는 기능을 제공합니다. InternetFeatureControlKeys.cs using Microsoft.Win32; using Sys..
-
-
[C#] - Settings.Default.Save() 시 user.config 저장 위치.NET/CSharp 2020. 11. 2. 15:22
프로젝트.Properties.Settings.Default.Save() 시 user.config 저장 위치 프로젝트 속성/설정 에서 정의한 데이터는 저장시에 아래의 코드를 통하여 저장 할 수 있다. Settings.Default.Save() 저장 후에 다시 실행 시에 어떻게 기존에 저장되었던 데이터를 로드하는지 궁금하였고. 특정 경로에 파일을 쓸거 같다는 생각이 들어 구글링을 통해 해당 경로를 찾았다. On Windows Vista and later, the locations have changed to C:\Users\\AppData\Roaming\ and C:\Users\\AppData\Local\ Windows Vista 이상에서는 경로가 위와 같다. 필자의 경우에는 AppData/Local 위치에..
-
[C#] - .NET Framework 3.5 TLS 1.2 적용하기.NET/CSharp 2020. 6. 15. 10:14
.NET Framework 3.5 TLS 1.2 적용하기 Chrome 브라우저에서 기존에 잘 되던 HTTPS API 서버에서 오류가 발생 하였다. HTTPS API 서버는 System.Net.Security.SslStream 클래스를 활용하여 개발하였다. 에러는 ERR_SSL_OBSOLETE_VERSION 이였고 해당 에러는 아래의 링크를 통하여 해결을 하였다. https://blog.chromium.org/2019/10/chrome-ui-for-deprecating-legacy-tls.html Chrome UI for Deprecating Legacy TLS Versions Update (April 6, 2020): The removal of legacy TLS versions was originall..
-
[C#] - WinForm 특정 윈도우 Show, TopMost 처리.NET/CSharp 2019. 10. 7. 18:02
웹 브라우저에서 웹 소켓을 통하여 특정 프로그램을 실행하는 프로그램을 개발 중에 있다. 해당 프로그램은 프로그램을 실행 후에는 실행된 프로세스와 소켓 통신(TCP/IP)을 통하여 데이터를 주고받고 프로세스에서 데이터를 받으면 웹 소켓을 통하여 데이터를 웹 브라우저 쪽으로 내려주는 구조로 되어있다. 또 프로세스가 하나 이상 실행이 되지 않는 구조로 되어 있다. 그러다 보니 실행되어 있는 상태에서 다시 실행 요청을 하였을 때 해당 프로세스의 메인 윈도우가 축소되어 있거나 다른 윈도우에 가려져 있을 때 처리가 필요하였다. 다행히 User32.dll IsIconic 함수를 통하여 프로세스의 메인 핸들을 넘겨 해당 프로세스 메인 핸들의 창이 최소화 여부를 알 수 있었다. 프로세스의 메인 윈도우가 최소화 되어 있을..
-
[C#] - Working Directory.NET/CSharp 2019. 4. 16. 21:43
WorkingDirectory 다른 회사 프로그램에서 내가 개발중인 프로그램을 실행 하게하는 작업을 하고 있었다. 이상하게도 정상 적으로 작동이 되질 않았다. 기존에 개발을 해 두었던 내가 개발한 프로그램으로 실행 하였을 때에는 정상적으로 실행 되었던 상태로 이상하게 느껴졌다. C# 개발을 오래했던 친구에게 물었더니 WorkingDirectory를 설정 을 해보라고 하더라 public static void ProcessStart(string fileName) { Process process = new Process(); process.StartInfo.WorkingDirectory = new FileInfo(fileName).Directory.FullName; process.StartInfo.FileNa..