닷넷/C#
-
C# 폼 캡처, 자식 폼 캡처닷넷/C# 2018. 7. 18. 09:53
아래 ScreenCaptureForm 메소드를 사용하면 쉽게 폼을 캡처 할 수 있다.아래 메소드를 사용할 때 폼의 시작위치와 폼 사이즈만 넘겨주면 되는 것이다.private void ScreenCaptureForm(Point _point, Size _size){ Rectangle rectangle = new Rectangle(_point, _size); Bitmap bitmap = new Bitmap(rectangle.Width, rectangle.Height); Graphics g = Graphics.FromImage(bitmap); g.CopyFromScreen(rectangle.Left, rectangle.Top, 0, 0, rectangle.Size); bitmap.Save(@"C:\test.pn..
-
C# goto문 작성방법닷넷/C# 2018. 6. 28. 17:01
goto는 프로그램의 흐름을 바꾸는 명령으로 어떤 상황일 때 코드의 특정부분으로 가서 동작하게끔 할 수 있습니다. 코드의 흐름을 비직관적으로 만들 수 있고, 디버깅과 유지보수를 어렵게 할 수 있으므로 goto문을 쓰지 않는 걸 권장 받아 왔고 그렇게 교육 받아 왔지만 잘 쓰면 약이고, 잘못 쓰면 독약인 것처럼 goto도 그러하기 때문에 현재 시점에서는 용도에 맞게, 의도에 맞게 잘 쓰면 아무런 문제도 되지 않습니다. 단, 이게 무슨 용도로, 의도로 쓰였는지 주석은 꼭 달아주도록 합시다! goto문 작성방법 1. 레이블(label)을 정의합니다. 레이블은 코드 내의 특정 위치를 식별하는 식별자입니다. 레이블은 콜론(:)으로 끝나는 형식으로 작성됩니다. 2. goto 키워드 뒤에 이동하려는 레이블 이름을 지..
-
C# SqlDependency 사용 중에...닷넷/C# 2018. 6. 21. 16:01
아래 사이트의 설명이 너무 좋으므로 따로 설명은 하지 않는다.http://www.csharpstudy.com/DevNote/Article/11 대신에 위 사이트 설명에서 추가하고 싶은 내용. [SQL] 문을 어떻게 써야하는지에 대한 몇가지 제약 조건들 중에 하나 1. where절이나 order by 등에 나오는 칼럼타입이 DateTime이면 invalid 뱉어냄.따라서 Convert(varchar(10), MachineTime, 120) 이런 식으로 칼럼 타입을 변경하여 쿼리를 짜야 한다.
-
C# 텍스트파일 읽기닷넷/C# 2018. 3. 14. 10:17
1. 텍스트파일 한줄 씩 읽기 using (System.IO.StreamReader sr = new System.IO.StreamReader("FileName")) { string line; while ((line = sr.ReadLine()) != null) { Console.WriteLine(line); } } 2. 텍스트파일 처음부터 끝까지 읽기 using (System.IO.StreamReader sr = new System.IO.StreamReader("FileName")) { Console.WriteLine(sr.ReadToEnd()); }
-
C# 바이너리 파일 읽기 (한글 포함)닷넷/C# 2018. 1. 9. 20:53
2017/05/26 - [프로그래밍/C#] - C# 바이너리 파일 읽기 및 클래스에 담기전에 포스팅한 것인데 이 방법으론 한글이 저장된 바이너리 파일은 인코딩할 수 없었다. 한글이 포함된 바이너리 파일 읽기 // StreamReader를 통해 바이너리 파일을 읽는다.// 이때 한글이 깨지지 않게 가져오려면 Encoding 코드 페이지는 949로 한다. using (StreamReader sr = new StreamReader(fname, Encoding.GetEncoding(949))){ string s = sr.ReadToEnd(); // 문자열을 쪼개서 배열에 담는다. // 정규식을 사용해도 될 것 같은데, 일단 바이너리 파일에서 불필요한 식별자들을 기준으로해서 쪼갬. string[] ss = s.S..
-
C# 병렬 foreach, Parallel.ForEach닷넷/C# 2018. 1. 2. 11:11
foreach는 c#의 또 다른 for문이다. for처럼 foreach도 작업을 하나씩 차례대로 처리한다.이렇게 되다보면 앞의 작업처리가 오래걸릴 경우 그 다음 작업에 영향을 줄 수 있는 일이 발생한다. 하나씩 차례대로 처리를 하는데 앞 작업이 뒤의 작업에 영향을 주어서는 안될 때데이터를 병렬처리하고자 할 때 C#에선 간단히 할 수 있는 방법이 있다. 바로 Parallel.ForEach 메소드를 사용하는 것이다. Parallel.ForEach의 문법은 foreach와 비슷하므로 foreach를 쓸 줄 알면 쉽게 사용할 수 있다.참고로 Parallel.ForEach를 쓰기 위해선 using System.Threading.Tasks; 가 선언되어 있어야 한다. foreach 문을 간단히 표현하면 다음과 같다..
-
C# AES 256 암호화와 복호화 코드닷넷/C# 2017. 9. 14. 14:23
#region 암호화 & 복호화 private string AESEncrypt256(string _text) { string Password = "jasmintime"; // 인증키 RijndaelManaged RijndaelCipher = new RijndaelManaged(); byte[] PlainText = Encoding.Unicode.GetBytes(_text); byte[] Salt = Encoding.ASCII.GetBytes(Password.Length.ToString()); PasswordDeriveBytes SecretKey = new PasswordDeriveBytes(Password, Salt); ICryptoTransform Encryptor = RijndaelCipher.Cre..
-
C# 현재 실행 중인 프로세스 목록닷넷/C# 2017. 9. 8. 10:25
string procName = string.Empty;foreach (System.Diagnostics.Process proc in System.Diagnostics.Process.GetProcesses()){ if (proc.MainWindowHandle != IntPtr.Zero) { if (proc.MainWindowTitle == "") continue; procName = string.Format("{0},{1}", procName, proc.MainModule.FileName); }} 이렇게 하면 프로세스의 파일 경로까지 다 나와서 프로세스 이름만 검출하려고 하는 경우엔문자열을 쪼개는 것이 좋겠다. string procList = string.Empty;string procName = str..
-
How to format a datetime with slash in C#닷넷/C# 2017. 9. 5. 15:13
Current Date and Time : 9 / 5, 2017 PM 3:00:00 yyyy : Year (2017) / yyy : Year (2017) / yy : year (17)MM : Month (09) / M (9)dd : Day (05) / d (5)HH : Hour (15) / hh : hour (03) / h : hour (3)mm : Minute (00) / m (0)ss : Second(30) Example: 1.DateTimePicker Formatting :dateTimePicker1.Format = DateTimePickerFormat.Custom; dateTimePicker1.CustomFormat = "yyyy-MM-dd"; => 2017-09-05 2.dateTimePick..
-
C# Local host 가져오기 (로컬 IP 주소 확인하기)닷넷/C# 2017. 8. 24. 17:54
using System.Net; using System.Net.Sockets; private string GetLocalIP() { string myIP = ""; IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName()); foreach (IPAddress ip in host.AddressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { myIP = ip.ToString(); } } return myIP; }
-
C# 네이버 블로그 파싱하는 방법닷넷/C# 2017. 7. 21. 16:22
진짜 네이버 블로그 소스는 프레임에 씌여있어서 네이버 블로그를 파싱하려면한 꺼풀 벗겨서 다시 한번 웹페이지를 불러와야한다. 1. 윈폼에 도구상자에서 WebBrowser 두 개를 놓는다. 2. 일반적인 네이버 블로그 url를 webBrowser1에 띄운다.webBrowser1.Navigate("http://blog.naver.com/freecat27"); 3. webBrowser1의 DocumentCompleted 이벤트에서 프레임에 씌여진 진짜 네이버 블로그 주소를 파싱하고, webBrowser2에 그 주소를 띄운다.private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){ if (e.U..
-
C# 엑셀파일로 저장할 때 셀병합, 자동정렬, 선, 가운데 정렬닷넷/C# 2017. 6. 26. 18:18
C#에서 엑셀파일로 저장할 때 셀 병합, 자동정렬, 테두리 그리는, 가운데정렬 하는 방법 //소스코드 Excel.Range range = null; range = xlWorksheet.get_Range("A2", "I2"); // 범위지정 range.Merge(true); // 범위만큼 셀 병합 range.Font.Size = 14; // 글씨크기 range.Font.Underline = true; // 밑줄 range.Font.Bold = true; // 굵게 range = xlWorksheet.get_Range("A3", "I3"); // 새로 범위지정 range.Merge(true); // 범위만큼 셀 병합 // 새로 범위지정 후 range = xlWorksheet.get_Range("A3", "I..
-
C# 리소스 파일 관련 참고 자료 사이트 링크닷넷/C# 2017. 5. 30. 16:01
1. 리소스에 포함된 데이터 읽고 쓰기http://devilchen.tistory.com/4720 2. MSDN : 데스크톱 응용 프로그램용 리소스 파일 만들기https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiIg4-M-5bUAhWCUZQKHcWAA5QQFggkMAA&url=https%3A%2F%2Fmsdn.microsoft.com%2Fko-kr%2Flibrary%2Fxbx3z216(v%3Dvs.110).aspx&usg=AFQjCNE_5T_aJ7zqAYUAFJAVOw0jQIr0wQ&sig2=rR-FtEw5kGJR6uowJlB8BA
-
C# 바이너리 파일 읽기 및 클래스에 담기닷넷/C# 2017. 5. 26. 18:01
내가 갖고 있는 바이너리 파일의 구조는 처음 4바이트는 정수고, 그 다음부턴 문자열로 되어있다.하나의 문자열엔 \t, \0, \n 등등으로 값이 나뉘어져 있기도 하다.거기서 필요한 값만 얻어올 수 있도록 코딩하였다. using System.IO; public class clsConfig { public int ltype { get; set; } public string mdbpath { get; set; } public string sqlserver { get; set; } public string sqldatabase { get; set; } public string sqluserid { get; set; } public string sqlpassword { get; set; } } public cls..
-
C# DataGridView 데이터 엑셀파일에 저장 using oledb닷넷/C# 2017. 5. 24. 13:43
엑셀 라이브러리 참조없이 OleDb를 이용한 방법으로 DataGridView의 데이터를 엑셀로 출력하는 방법이다.이때, 엑셀파일을 File 을 이용해 생성하면 제대로 생성되지 않아 사용할 없다.따라서 소스를 보면 알겠지만 엑셀파일 하나를 복사해서 거기에 데이터를 저장하는 편법을 이용했다. OleDbConnection conn = null; try { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel File(.xls)|*.xls"; if (sfd.ShowDialog() == DialogResult.OK) { FileInfo fi = new FileInfo(sfd.FileName); if (!fi.Exists) { File.Copy(Applic..