목록프로그래밍 (7)
선택
회사 일이 생각보다 엄청 고되는데.. 자투리 시간에 갑자기 생각나서 끄적여보겠다는 생각이 들어 포스팅 해본다. 그나저나 계란으로 바위치는 프로젝트 인 것 같은데... 에효... 어째 고렙이 스탯이 더 낮은 것 같지? === 예~~~~전에 만들던 게임서버 알고리즘 개선해보겠답시고 공부 열심히 해봤는데, 나름 성과가 있어서 기억을 더듬어 포스트로 남겨본다. 조만간 또 쓸일이 있지 않을까 싶으면서.. 이놈은 경로찾기에서 사용하는놈이다. 다익스트라는 알고리즘 연습한다고 스터디하면 한번쯤 접해볼 수 있는 당연한 녀석이지만.. 이놈은 이론만 깨우치고 실제로 구현한 사람이 많지는 않을거라 생각한다. 다익스트라 알고리즘 확장해서 만든 경로탐색 알고리즘이라고 나무위키에서 그런다. ㅇㅇ 맞는듯 결국은 휴리스틱 함수를 써서..
카테고리가 애매하긴한데.. C#은 거들 정도고 실제로는 Win32API를 사용했기 때문에 카테고리는 C.. 사용하는 MFC 프로그램 하나가 .dgn 파일을 읽어 컨트롤을 그리고 있는데, dgn 파일이 커스텀되어 있기도 하고, 이에 대해 분석이 어려워 MFC 프로그램의 컨트롤 영역을 찾아서 원하는 항목의 데이터를 가져오는 것 목표로 시작했었다. cTreeCtrl이였고, header가 여러개고 그에 맞는 node가 적절한 depth로 구성된 리스트 뷰였는데.. 결국 MFC 내에서 텍스트를 입력하는 게 아니고, MFC 내에서 직접 컨트롤을 draw하는 방식으로 제작되어 써먹지는 못했지만 아래와 같은 방법으로 접근하였다. 찾아보다가 UI Automation이라는 편한 기술이 있는데, 나처럼 Win32API를 호..

WebView2를 통해 다양한 기능을 수행할 수 있는데 그 중 AddHostObjectToScript, ExecuteScriptAsync 두가지는 유용하게 사용했고 앞으로도 잘 사용될 것이라고 생각한다. 하나씩 설명하자면 다음과 같다. 1. AddHostObjectToScript AddHostObjectToScript는 WebView2를 사용해 호출한 사이트의 javascript를 이용해 C# 프로그램 상에 등록된 클래스의 API를 호출할 수 있는 기능이다. 쉽게 설명하자면 코드상에서 AddHostObjectToScript를 사용해 클래스를 등록한다면, WebView2에서 호출한 사이트는 등록한 클래스의 API를 호출할 수 있다. 이는 응용하면 HTML5에서 지원하지 않는 ActiveX 기능을 간접적으로..

2022.08.02 - [프로그래밍/C#] - [C#] 1. WebView2 구성 및 설치 [C#] 1. WebView2 구성 및 설치 모 프로젝트를 진행하며 IE 기반의 구 ActiveX 시스템을 Non-ActiveX로 변환하는 작업을 했다. 작업을 하면서 WebView2를 활용했는데 아무래도 IE가 종료된 지금 WebView2로 대응하는 경우가 많아지지 않을 limchoice.tistory.com 이전 포스팅에서 언급했던 것처럼 WebView2 런타임은 3가지 방법으로 설치할 수 있다. C# 코드로 WebView2 속성값을 변경해 WebView2 런타임 프로그램을 Fixed Version으로 불러올 수 있는데, 이에 대해서 자세히 설명하고자 한다. 프로그램 코딩을 할 때 WebView2 런타임 프로그..

WebView 런타임 프로그램과 프로젝트 내 WebView2 패키지를 설치했으면 이제 코딩하면 된다. 1. WebView2 컨트롤을 이용해 구글 홈페이지 접속하기 이전에 컴파일하여 도구 속성에 추가된 WebView 컴포넌트를 WinForm에 적당히 드래그 해서 그린다. 텍스트박스와 버튼도 하나씩 그려준다. 이후 간단한 코드를 작성해 WebView2를 이용해 잘 호출하는지 확인한다. public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { webView21.Source = new Uri(textBox1.Text); } } 호..

WebView2 런타임을 설치했다면 사실 절반은 끝난 거다. 이제는 프로젝트를 생성해 nuget으로 WebView2 라이브러리를 설치하고 런타임을 불러와 홈페이지를 띄우기만 하면 되니까 아주 빠르게 구성하고 완료해보자. 설치 방법을 두 가지로 나누었다. Nuget을 활용할 수 있는 온라인 환경과 인터넷이 되지 않는 오프라인 환경. 1. Nuget을 통한 패키지 설치 (온라인) 패키지 설치 전 자신이 사용하는 프레임워크 버전이 WebView2가 지원하는지 확인해야 한다. 버전은 Nuget에서 확인이 가능한데.. 글을 포스팅하는 시점 기준으로는 아래 프레임워크 버전을 지원한다. 포스팅은 닷넷 프레임워크 4.5를 기준으로 작성하는데 상위 버전이면 어떤 것이던 상관 없다. https://www.nuget.org..

모 프로젝트를 진행하며 IE 기반의 구 ActiveX 시스템을 Non-ActiveX로 변환하는 작업을 했다. 작업을 하면서 WebView2를 활용했는데 아무래도 IE가 종료된 지금 WebView2로 대응하는 경우가 많아지지 않을까 싶다. 웹 브라우저 컨트롤을 이용해 HTML5 페이지를 부를 때, 기존에 제공하고 있던 웹브라우저 컨트롤로는 정상적으로 사이트를 로딩하거나 사용하기 어렵다. (레지스트리를 바꾸면 IE10으로도 실행시킬 수 있지만 일반적인 경우에는 IE7로 읽어온다. 어차피 IE도 종료된 마당에...) 따라서 MS는 Edge 엔진 기반으로 새로운 브라우저 컨트롤을 만들었는데 이것이 WebView2 런타임 이다. WebView2는 기존에 쓰이던 웹브라우저 컨트롤보다 더 많은 기능을 지원하며 독립적..