C#
-
C# WebBrowser 쿠키 삭제 방법닷넷/WinForms 2022. 8. 3. 13:43
public Form1() { InitializeComponent(); //Temporary Internet Files System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 8"); //Cookies() System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 2"); //History() System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 1"); //Form(Data) System.Diagnostics.Proce..
-
C# WinForms에서 레이아웃 깨지는 문제 해결 방법. 디스플레이 해상도, 텍스트 배율 안 따라게 하기닷넷/WinForms 2022. 2. 22. 17:37
사용자들이 윈폼에서 레이아웃이 깨진다고 표현하는 현상은 사용자의 디스플레이 상태가 개발 환경과 다른 경우 종종 일어날 수 있는 일이다. 해상도에 따라서 레이아웃이 깨진다면, Form 속성에 AutoScaleMode를 이용하면 깨지지 않게 할 수 있다. AutoScaleMode에서 Inherit은 클래스의 부모 확장 모드에 따라 배율을 제어한다. 부모가 없는 경우 자동 스케일링이 비활성화된다. 즉, 부모 폼이 있다면 자식 폼이 부모 폼의 AutoScaleMode를 따라간다. Font는 클래스가 사용하고 있는 글꼴의 치수에 상대적인 축척(일반적으로 시스템 글꼴)을 제어한다. 윈폼에서 AutoScaleMode는 기본적으로 Font로 설정되어 있어서 개발 도중에도 폰트를 바꾼다거나 크기를 바꾸게 되면 이에 따라..
-
c# 부팅시 자동 시작하는 프로그램, 레지스트리에 등록 또는 삭제 방법닷넷/C# 2021. 11. 30. 11:12
PC가 부팅이 된 후에 사용자가 어떠한 작업을 하지 않아도 바로 프로그램이 실행되게 설정하는 방법으로 이전에 쓴 글이 있는데 이 작업을 코드로 작성하기에는 어려운 부분이 있다. 2018.03.20 - [끄적이는/정보공유] - 윈도우 컴퓨터 시작시 *.exe 프로그램이 자동으로 실행되게 하는 방법 레지스트리 경로 SOFTWARE\Microsoft\Windows\CurrentVersion\Run 가 부팅 시 자동실행이 되는 프로그램들을 관리하는 경로이기 때문에 이 경로에 해당 실행파일을 등록 하거나 삭제하면 되므로 레지스트리에 등록하거나 삭제하는 방법은 코드로 작성하기 쉽다. C#에서 레지스트리 자동실행 경로에 프로그램을 등록하는 방법은 다음과 같다. private void SaveAutoExe() { //..
-
C# ChromiumWebBrowser에서 JavaScript 함수 호출과 웹에서 C# 메소드 호출하는 방법닷넷/WinForms 2021. 8. 3. 17:58
C# 윈폼에는 기본 웹브라우저 컨트롤이 있지만 스크립트 오류가 빈번해서 프로젝트의 닷넷프레임워크 버전을 4.6 이상으로 구성할 수 있다면 크로미움웹브라우저를 사용하는 것이 매우매우 좋다. 앞서 ChromiumWebBrowser를 사용하려면 NuGet 패키지 관리에서 cefsharp를 검색한 다음 CefSharp.WinForms를 설치하면 된다. 설치가 끝나면 도구상자에 CefSharp이 자동으로 추가가 되었을 경우 도구상자에서 ChromiumWebBrowser 컨트롤을 폼 디자인에 드래그앤 드랍해서 사용한다. 도구상자에 자동으로 추가가 되지 않았다면 다음과 같이 코드로 폼에 크로미움웹브라우저 컨트롤을 추가한다. public Form1() { InitializeComponent(); InitializeCh..
-
C# 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법닷넷/C# 2021. 7. 19. 16:34
c#에서 두 위도와 경도 좌표 사이의 거리를 계산 하는 방법은 다음과 같다. 첫 번째 방법, NuGet 패키지에서 NEST를 설치한다. 설치 후 다음과 같이 코드를 작성한다. 참고로 단위는 미터이다. // c#에서 두 위도와 경도 좌표 사이의 거리를 계산 하는 첫 번째 방법 GeoCoordinate pin1 = new GeoCoordinate(lat1, lng1); GeoCoordinate pin2 = new GeoCoordinate(lat2, lng2); double distanceBetween = pin1.GetDistanceTo(pin2); 단, 이 방법은 닷넷프레임워크 버전을 타기 때문에 설치가 안 되는 경우 두 번째 방법을 사용하면 된다. 두 번째 방법, NEST가 설치 되지 않는 경우 다음의 ..
-
C# A리스트에서 B리스트에 있는 것을 제외하는 방법(LINQ)닷넷/C# 2021. 7. 13. 11:34
다음은 C#에서 LINQ를 활용하여 A리스트에서 B리스트에 있는 것을 제외하는 방법이다. 수학적 표현으로는 차집합이다. List list = listA.Where(x=> !listB.Select(y=> y.id).Contains(x.id)).ToList(); 이것을 반대로 하면 A리스트에서 B리스트에 있는 것만, 교집합이 된다. List list = listA.Where(x=> listB.Select(y=> y.id).Contains(x.id)).ToList(); 그 외에도 Except, Any, SequenceEqual 등을 이용한 방법이 있으며 다음의 사이트에서 확인할 수 있다. C# 두 개의 List를 비교하는 가장 빠른 방법 c# — 두 개의 List 를 비교하는 가장 빠른 방법 두 가지 대규모 ..
-
C# 폼에서 제목표시줄을 클릭했을 때 클릭이벤트가 발생되게 하는 방법닷넷/WinForms 2021. 5. 13. 18:12
Form에서 Click 이벤트든 Mouse 이벤트든 폼을 클릭했을 때 제목표시줄을 클릭하는 건 반응을 안 한다. 다음 코드를 추가하면 폼에서 제목표시줄을 클릭했을 때의 상황을 코딩할 수 있다. const int WM_NCLBUTTONDOWN = 0x00A1; protected override void WndProc(ref Message m) { base.WndProc(ref m); // no client area if (m.Msg == WM_NCLBUTTONDOWN) { //select tittle area only If (){ this.Cursor = new Cursor(Cursor.Current.Handle); MessageBox.Show("Click"); //} } } 참고로 이 코드는 제목표시줄을..
-
C# 문자열을 문장으로 나누기 (Split('')할 때 'string'에서 'char'(으)로 변환할 수 없습니다. 해결 방법)닷넷/C# 2020. 11. 11. 10:29
string characterString = "123,456,789,000,000"; string[] splitCharacter = characterString.Split(','); // splitCharacter[0] : 123 // splitCharacter[1] : 456 // splitCharacter[2] : 789 // splitCharacter[3] : 000 // splitCharacter[4] : 000 2019/06/19 - [프로그래밍/C#] - C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 텍스트박스나 문자열에 줄바꿈없이 문자들이 나열되어 있을 때 줄바꿈을 주기위해 몇 글자마다 줄바꿈을 줄 것인지에 대한 방법이다. 예시 코드에는 10..
-
C# foreach 루프를 LINQ로 변환하는 아주 쉬운 방법닷넷/C# 2020. 10. 16. 15:41
내용: IEnumerable을 사용하는 foreach 루프를 LINQ 쿼리 또는 LINQ 호출 양식(LINQ 메서드라고도 함)으로 쉽게 변환할 수 있습니다. 시기: IEnumerable을 사용하는 foreach 루프가 있고 이 루프를 LINQ 쿼리로 읽으려고 합니다. 이유: foreach 루프가 아닌 LINQ 구문을 사용하고 싶습니다. LINQ를 사용하면 쿼리가 C#의 고급 언어 구문이 됩니다. LINQ는 파일의 코드양을 줄이고, 코드를 읽기 쉽게 하며, 다른 데이터 소스가 유사한 쿼리 식 패턴을 갖도록 할 수 있습니다. 참고 LINQ 구문은 일반적으로 foreach 루프보다 효율이 떨어집니다. LINQ를 사용하면 코드의 가독성은 좋아지는 대신 성능이 떨어질 수 있다는 점을 알고 있는 것이 좋습니다. f..
-
C# 윈폼에서 배경 불투명도 조절하기 WinForms Opacity닷넷/WinForms 2020. 9. 30. 01:22
C#에서 윈폼에서 원하는 부분을 투명하게 하는 방법에 대해 예전에 포스팅했었다. 2016/07/19 - [프로그래밍/C#] - C# WindowsForm에서 배경 투명하게 하는 방법 C# WindowsForm에서 배경 투명하게 하는 방법 WindowsForm의 특정부분만 투명하게 하는 방법은 폼 속성의 TransparencyKey을 이용하면 된다. 예를 들어 FormBorderStyle을 None으로 하고 배경이미지를 넣었을 경우에 아래와 같이 이미지 외의 배경이 폼색 jasmintime.com 이 방법은 투명하게만 만들 수 있는 방법이어서 반투명 혹은 투명도를 세밀하게 조절할 때 이 방법은 옳지 않다. 윈폼이나 컨트롤의 배경을 투명하게만 하는 것이 아니라 불투명도를 세밀하게 조절하는 방법은 다음과 같다..
-
C# 텍스트파일 읽기 응용편: 텍스트파일에서 해당 문자가 있는지 확인하기닷넷/C# 2020. 3. 29. 11:12
2018/03/14 - [프로그래밍/C#] - C# 텍스트파일 읽기 이전글에 C#에서 텍스트파일을 읽는 방법에 대해 적었었다. 이 것을 응용하면 텍스트파일에 해당 문자가 있는지 없는지 확인(체킹)하는 메소드를 만들 수 있다. // 라인(한 줄) == 찾는 텍스트 일 때 private bool FindLineText(string text) { bool b = false; try { string filename = "D:\\test.txt"; using (StreamReader sr = new StreamReader(filename)) { string line; // 텍스트파일 한줄씩 읽기 while ((line = sr.ReadLine()) != null) { // 해당 문자가 있으면 브레이크 if (li..
-
C# 난수, 랜덤 Random 사용법 (+ 문자열 배열에서 랜덤으로 출력하기)닷넷/C# 2020. 3. 9. 18:58
Random은 무작위의 숫자를 발생시키는 함수이다. 사용방법 1. 정수(int) private void intRandom() { Random random = new Random(); int min = int.Parse(textBoxMin.Text); int max = int.Parse(textBoxMax.Text); // 음수가 아닌 임의의 정수 iValue = random.Next(); listBoxInt.Items.Add("Next() : " + iValue.ToString()); // maxValue보다 작은 음수가 아닌 임의의 정수 iValue = random.Next(max); listBoxInt.Items.Add("Next(max) : " + iValue.ToString()); // minVa..
-
C# 번역 파파고 API 사용하기 (영어를 한글로, 한글을 영어로 번역)닷넷/C# 2020. 3. 3. 13:51
구글 번역기 API는 연동을 다 했으니까 이제 파파고를 연동할 차례! 네이버 계정이 있다는 가정 하에 네이버 디벨로퍼(네이버 개발자센터)에 들어가서 로그인을 한다. 그 다음 Application에서 애플리케이션 등록을 클릭한다. 애플리케이션 이름은 아무거나 입력하고, 사용 API에서 Papago 번역을 선택한다. 환경은 앱으로 만드는게 아니므로 WEB 설정을 선택 한 다음 웹 서비스 URL은 가지고 있는 도메인으로 입력하였는데 네아로를 사용하며 이것저것 테스트해봤을 때 실제 사용되고 있는 도메인이면 아무거나 사용해도 문제는 없었으므로 도메인이 없는 경우 티스토리 혹은 네이버 도메인으로 해도 될 듯. 모든 것이 입력이 다 되었으면 [등록하기] 클릭 내 애플리케이션에서 방금 등록한 것을 클릭하면 Client..
-
C#에서 구글번역 Google Translation API Basic 사용하기닷넷/C# 2020. 2. 28. 11:58
영어공부를 하기 위해 다른 티스토리에 영문 자료들을 수집하여 포스팅하는데이때 구글번역기와 파파고에서 번역한 것도 같이 올린다.일일이 원문사이트 복사해서구글번역기에 붙여놓고 번역된 걸 복사해서 또 붙여놓고...또 파파고에도 똑같이... 매우매우 반복되는 작업이다. 반복되는 작업은 컴퓨터에게 시켜야지! 자동번역기를 만들어야지! 다행이도 구글번역기와 파파고 모두 API가 지원된다. 그 중에서 구글번역기 API 사용 방법. 먼저 구글계정이 있고, 구글 클라우드 플랫폼에 가입되어 있다는 가정 하에 1. 환경 변수 설정https://cloud.google.com/translate/docs/basic/setup-basic구글 클라우드 플랫폼에서 구글 번역기 API 사용을 신청한다. 프로젝트 설정을 클릭하고,기존의 프..