일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Class
- java
- inheritance
- UNO
- sensor
- Overloading
- APP
- stream
- compare
- Read
- Encapusulation
- Contour
- digitalRead
- Unity
- Barcode
- flutter
- mfc
- file access
- Pointer
- aduino
- parameter
- wpf
- preprocessing
- memory
- Android
- Binary
- SERIAL
- atmega328
- public
- length
- Today
- Total
목록C#, WF, WPF(.NET) (38)
폴크(FOLC)
# Kakao Map 을 이용하여 특정한 영역의 길찾기 > KakaoAPI 사용자 등록 후 관련 Key 필요 > https://developers.kakao.com/console/app ( 관련 내용은 검색 후 참고 ) - REST API 키 - JavaScript 키 # 리소스에 WebBrowser 컨트롤 추가 > 컨트롤 옵션 설정 - Anchor : Top, Bottom, Left, Right > 확대/축소에 맞게 영역을 표시 하기 위함. # JavaScript + HTML 파일 추가 > KakaoMapForWinForms.html > 리소스 옵션에서 "항상 복사"로 설정 # JavaScript + HTML 내용 # 소스 코드 using System.IO; using System.Windows.For..
# Google Map 을 이용하여 특정한 영역의 길찾기 > WindowsCore, WindowsForms, WindowsPresentation 등 지원 # NuGet 패키지 관리 > GMap.NET.WinForms 찾기 선택 > 라이센스 동의 > 참조에 추가되었는지 확인 > GMap.NET.WindowsForms 컨트롤이 보이지 않는다면 "프로젝트 도구 상자 항목 새로 고침(T)" 선택 # 리소스에 컨트롤 추가 > GMap.NET.WindowsForms 에 GMapControl 도구를 추가 > 컨트롤 옵션 설정 - MaxZoom : 24 - MinZoom : 6 - MouseWheelZoomType : MousePositionWithoutCenter # 소스 코드 using System.Windows...
# 지역화 및 다중 언어 지원 > 리소스 파일을 이용하여 언어 변경 가능 - 한국어 : ko-KR - 영어 : en-US - 중국어 : zh-CH # 지역화 설정 > (리소스 파일명).지역명칭 - 한국어 : (리소스 파일명).ko-KR # 다중 언어 패키지가 설치되어 있지 않은 경우 예외 처리 > 지역화 설정 상태와 다중 언어 패키지가 불일치 한 경우 wide 문자의 경우에는 깨지는 현상 # 문자열 인코딩 > string str1 = "한글 한글 test 1234"; > byte[] dst11 = Encoding.Default.GetBytes(str1); // 현재 OS의 ANSI 코드 페이지에 대한 인코딩 > byte[] dst12 = Encoding.ASCII.GetBytes(str1); // ASC..
# LiveChart 공식 사이트 > https://lvcharts.net/App/examples/Wpf/start Live Charts lvcharts.net # LiveChart 테스트 소스 관련 Github > https://github.com/Live-Charts/Live-Charts # LiveChart 테스트 소스 관련 Github 2 > https://github.com/beto-rodriguez/LiveCharts2 GitHub - beto-rodriguez/LiveCharts2: Simple, flexible, interactive & powerful charts, maps and gauges for .Net, LiveCharts2 can Simple, flexible, interacti..
# 특정 시점마다 반복적으로 작업을 간단하게 진행하기 위함. > DispatcherTimer 를 이용하여 진행 # 소스 코드 using System.Windows.Threading; namespace TimerRunTEST { public partial class MainWindow : Window { private DispatcherTimer timer = new DispatcherTimer(); // 타이머 생성 public MainWindow() { InitializeComponent(); // 타이머 설정 timer.Interval = TimeSpan.FromMilliseconds(1); // 시간간격 설정 timer.Tick += new EventHandler(timer_tick_event); ..
# Mobile phone, Desktop PC, IoT 및 cloud app에서 SDK, 기본 라이브러리 및 런타임을 통합 > 개발 시작하기가 쉽다. > 작성해야 하는 코드의 양이 작다. > 웹 스택 이나 최소 API로 더 작고 빠른 서비스를 작성하기가 쉽다. - Crossgen2 # 특징 > 클라우드에서 실행하는 경우에는 컴퓨팅 비용을 절감 > FileStream, 동적 PGO(프로필 기반 최적화) 도입 > 핫 리로드, git 도구, 자동 코드 편집, 진단 및 테스트 도구 > 장기 지원 릴리스 ( 3년 동안 지원 ) > 다중 플랫폼 앱 UI 지원으로 단일 코드베이스 가능 > C# 10 및 SDK 프로젝트 템플릿 적용 - async Main, global using, nullable 등 > Json A..
# 윈도우에서 현재 실행되고 있는 프로그램을 찾아보고 핸들을 이용해서 상태를 변경할 수 있다. > FindWindow : 윈도우 핸들을 찾는다. > ShowWindowAsync : 윈도우를 활성화 시킨다. > SetForegroundWindow : 윈도우를 최상위로 이동 시킨다. # 소스 코드 using System; using System.Runtime.InteropServices; class FindProcess { [DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] private static extern bool S..
# 현재 모니터 화면에서 특정한 영역의 정보를 이미지 파일로 저장 > Bitmap 형태를 이용 # WPF 에서 Bitmap 을 기본으로 제공하지 않기에 참조에서 dll 을 추가한다. > 솔루션에서 참조 마우스 오른쪽 "참조 추가" 선택 # 소스 코드 using System.IO; using System.Windows; using System.Windows.Media.Imaging; using System.Drawing; using System.Drawing.Imaging; public class ScreenCapture { BitmapImage m_bitmapimage = new BitmapImage(); public void CaptureFullscreen() { // 주화면의 크기 정보 읽기 int ..
# 통신 채널이나 컴퓨터 버스를 거쳐 하나의 비트 단위로 연속적으로 데이터를 전송하는 과정 > 시간으로 나누어 차례대로 전송 > 전송 방식은 동기/비동기 방식으로 나뉜다. - 동기 방식 : 데이터 신호와는 별도로 동기신호를 보낸다. - 비동기 방식 : 데이터 신호만 보내고 각각의 방식에 따라 데이터 비트를 찾는다. # 소스 코드 using System; using System.IO.Ports; SerialPort m_port = new SerialPort(); string m_strQueueMessage; public bool OpenPort(string port, int baud = 9600) { m_port.PortName = port; // default : COM1 m_port.BaudRate =..
# .NET 표준을 포함한 유연한 무료 로깅 플랫폼 > Java, C++, .NET 등 다양한 언어와 플랫폼을 지원한다. > 파일, 콘솔, DB로 출력할 수 있고 날짜, 파일 크기마다 생성가능하다. # 적용 방법 > NuGet 에서 "NLog" 검색 후 설치(download) # 환경 설정 > 환경설정을 code level 로 작성할 수도 있고 xml 파일을 연결해서 사용 가능하다. > 솔루션 탐색기에 추가 - 출력 디렉토리에 복사 ( 항상 복사 ) # 소스 코드 using System; using System.IO; using System.Reflection; using System.Windows; using System.Xml; using NLog; using NLog.Config; string re..
# 네트워크에서 운영되는 HDD 드라이브 > 근거리 통신망으로 네트워크의 선택된 사용자에게 공유 > 표준 디스크 드라이브와 동일하게 액세스를 제공 # 소스 코드 using System; using System.Text; using System.Runtime.InteropServices; // 연결 하기 [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] public struct NetworkResource { public uint Scope; public uint Type; public uint DisplayType; public uint Usage; public string LocalName; public string RemoteName; pu..
# 특정 영역에 대해서 CPU 가동에 대한 소요 시간을 확인 > QueryPerformanceCounter 를 이용 # 소스 코드 using System.Runtime.InteropServices; class TimeChecker { [DllImport("Kernel32.dll")] private static extern bool QueryPerformanceCounter(out long lpPerformanceCount); [DllImport("Kernel32.dll")] private static extern bool QueryPerformanceFrequency(out long lpFrequency); private long m_freq, m_st, m_ed; public TimeChecker() ..
# Local 폴더를 Zip 파일을 복원 > SharpZipLib 라이브러리 이용 # Nuget 에서 SharpZipLib 설치 # 소스 코드 using System.IO; using ICSharpCode.SharpZipLib.Zip; public void UnZipFileWithDecompress(string src_path, string dst_path) { DirectoryInfo dst_dir_info = new DirectoryInfo(dst_path); if (dst_dir_info.Exists == false) { dst_dir_info.Create(); } FileStream src_file_stream = new FileStream(src_path, FileMode.Open); ZipIn..
# Local 폴더를 Zip 파일로 생성 > SharpZipLib 라이브러리 이용 # Nuget 에서 SharpZipLib 설치 # 소스 코드 using System.IO; using ICSharpCode.SharpZipLib.Zip; public void MakeZipFileWithCompress(string src_path, string dst_path) { DirectoryInfo src_dir_info = new DirectoryInfo(src_path); if (src_dir_info.Exists == false) return; FileStream dst_file_stream = new FileStream(dst_path, FileMode.Create); ZipOutputStream zip_st..
# FTP : File Transfer Protocol은 TCP/IP 프로토콜을 가지고 있어서 서버(HOST)와 모듈(CLIENT) 사이의 파일 송/수신 > TCP/IP 프로토콜 테이블의 응용 계층 > 운영 체제가 그래픽 사용자 인터페이스를 갖추기 이전에 개발된 명령 줄 프로그램 > 대부분의 윈도우, 유닉스, 리눅스 운영 체제에 기본 포함되어 있다. # 소스 코드 public bool FileDownload(string src_path, string dst_path, string user_id, string user_pw) { try { Uri src_file_uri = new Uri(src_path); FtpWebRequest ftpWebReq = WebRequest.Create(src_file_uri..
# FTP : File Transfer Protocol은 TCP/IP 프로토콜을 가지고 있어서 서버(HOST)와 모듈(CLIENT) 사이의 파일 송/수신 > TCP/IP 프로토콜 테이블의 응용 계층 > 운영 체제가 그래픽 사용자 인터페이스를 갖추기 이전에 개발된 명령 줄 프로그램 > 대부분의 윈도우, 유닉스, 리눅스 운영 체제에 기본 포함되어 있다. # 소스 코드 public bool FileUpload(string src_path, string dst_path, string user_id, string user_pw) { try { Uri dst_file_uri = new Uri(dst_path); FtpWebRequest ftpWebReq = WebRequest.Create(dst_file_uri) ..
# WPF 를 이용하는 과정에서 HDD 에 존재하는 파일 ( csv format ) 제어 > Save, Load 형태 - StreamWriter, StreamReader 이용 > exe 파일 위치에 test.csv 파일 생성 # 소스 코드 using System.Collections; using System.Collections.Generic; using System.IO; public class CSVformat { struct CSVData { public string key; public string value; public CSVData(string _key, string _value) { _key= _key.Replace(",", " "); _value= _value.Replace(",", " ..
# 데이터를 보고 직관적으로 빠르게 파악하여 판단하기 위함 # LiveCharts 를 이용하는 방법 > Nuget 에서 Package 설치 - LiveCharts.Wpf 를 설치 하면 LiveCharts 도 같이 설치 된다. > MainWindow.xaml 에 내용 추가 - xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf" MainWindow.xaml.cs 파일에 데이터 값 추가 public partial class MainWindow : Window { public ChartValues Values { get; set; } public MainWindow() { InitializeComponent(); Values = new ChartV..
# 데이터를 보고 직관적으로 빠르게 파악하여 판단하기 위함 # WPFToolkit 을 이용하는 방법 > 솔루션 참조에 추가 - System.Windows.Controls.DataVisualization.Toolkit.dll - WPFToolkit.dll > 아래 관련 파일은 특정 Package 에 묶여 있거나 별도로 찾아야 함. > MainWindow.xaml 에 내용 추가 - xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" MainWindow.xaml.cs 파일에 데이터 값 추가 - ((PieSeries)mcC..
# WPF 사용하는 과정에서 Socket 을 이용해서 TCP/IP 로 데이터를 송/수신 > Socket 을 직접 만들어서 데이터 Send/Receive > Receive 자동으로 발생하는 통신 event 를 이용하여 데이터 연동 # 소스 코드 내용 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class ClientSocket { private Socket m_sock_client = null; public bool ConnectServer(string ipstr, int port) { try { m_sock_client = new Socket(AddressF..