일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- stream
- java
- memory
- wpf
- public
- compare
- mfc
- 3D
- digitalRead
- APP
- Android
- sensor
- file access
- Contour
- aduino
- Read
- flutter
- c++
- atmega328
- Binary
- SERIAL
- edge
- Class
- UNO
- Encapusulation
- Gradient
- static
- Pointer
- Unity
- parameter
- Today
- Total
목록C#, WF, WPF(.NET)/C#, WF, WPF(.NET) 테크닉 (32)
폴크(FOLC)

# WPF 를 이용하는 과정에서 HDD 에 존재하는 파일 ( ini format ) 제어 > Save, Load 형태 - DllImport("kernel32") 이용 > exe 파일 위치에 test.ini 파일 생성 # 소스 코드 using System.Runtime.InteropServices; public class INIformat { DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filepath); DllImport("kernel32")] private static extern int GetPrivateProfileString..

# Main 화면에 표시되는 영역의 정보를 페이지 단위로 변경 > 1개 Category ROI 안에 N개 Category Page 로 구성 > Page1, Page2, Page3, ... # Main 화면에서 각 페이지를 선택하여 화면에 표시 > xaml 파일에 3개의 버튼을 생성하고 각 버튼에 Event 를 설정한다. # 소스 코드 ( Form1.cs ) private void Button1_Click(object sender, EventArgs e) { for(int i = 0; i < this.Panel.Controls.Count; ++i) { this.Panel.Controls[i].Hide(); } Page1 form = new Page1(); form.TopLevel = false; this...

# Main 화면에 표시되는 영역의 정보를 페이지 단위로 변경 > 1개 Category ROI 안에 N개 Category Page 로 구성 > Page1, Page2, Page3, ... # Main 화면에서 각 페이지를 선택하여 화면에 표시 > xaml 파일에 3개의 버튼을 생성하고 각 버튼에 Event 를 설정한다. # 소스 코드 ( MainWindow.xaml ) # 소스 코드 ( MainWindow.xaml.cs ) private void Button_Click_1(object sender, RoutedEventArgs e) { PageHome.Source = new Uri("NaviPage\\Page1.xaml", UriKind.Relative); } private void Button_Clic..

# 데이터를 수집하는 과정(Selenium 이용)에서 WebPage 상태를 그대로 캡처해서 파일로 저장 # 옵션 설정 확인 > ChromeOptions 에서 AddArgument("--start-maximized"); 추가 > ChromeOptions 에서 AddArgument("--start-fullscreen"); 추가 - 데이터 화면만 표시되도록 하기 위함. > ChromeOptions 에서 AddArgument("headless"); 제거 - headless 를 사용하게 되면 WebPage 가 전체 화면으로 표시되지 않고 scroll 에 의해서 가려지는 현상 있음 # 소스 코드 public void ScreenshotFromUrlPage(ChromeDriver driver) { try { Stri..

# PictureBox 를 추가한다. > Name 을 pictureBox로 설정한다. # pictureBox 의 위치를 Form1 에 원하는 위치로 옮겨 놓는다. > 이미지 파일 LOAD 를 위해서 버튼 을 추가한다. # Open 버튼에 이미지 파일을 연동 시킨다. private void buttonOpenImage_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); if(ofd.ShowDialog() == DialogResult.OK) { pictureBox.Image = Bitmap.FromFile(ofd.FileName); } } # 이미지 파일을 선택하고 화면에 표시됨을 확인한다. > 이미지 파일 상태 그대로..

# 아파치의 오픈소스 라이브러리이다. > Java, C++, .NET 등 다양한 언어와 플랫폼을 지원한다. > 파일, 콘솔, DB로 출력할 수 있고 날짜, 파일 크기마다 생성가능하다. # 적용 방법 > NuGet 에서 "log4net" 검색 후 설치(download) # 환경 설정 > 환경설정을 code level 로 작성할 수도 있고 xml 파일을 연결해서 사용 가능하다. > 솔루션 탐색기에 추가 - 출력 디렉토리에 복사 ( 항상 복사 ) # source code / 로그 작성자를 활용하는 영역 > Class 단위 또는 포함 관계에 있는 Class 까지 운용 가능 # source code > using log4net.Config; > > namespace WindowsFormsApp1 { > publi..

# xls 파일에 Local Storage 에 있는 Image 를 Load 해서 추가한다. > 추가하는 이미지의 크기를 파라미터로 입력할 수 있다. # 관련 소스 코드 > using Excel = Microsoft.Office.Interop.Excel; > Excel.Range PositionXY = (Excel.Range)workSheet.Cells[Row, Col]; > workSheet.Shapes.AddPicture(strSaveFileFullPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, PositionXY.Left, PositionXY.Top, 100, 100);

# web site 에 존재하는 Image 를 Local Storage 에 저장하는 방법 > http 방식 이용 # 관련 소스 코드 > using System.Net; > HttpWebRequest REQ = (HttpWebRequest)WebRequest.Create(cover_image_full_path); > HttpWebResponse RES = (HttpWebResponse)request.GetResponse(); > bool bImage = RES.ContentType.EndsWith("image/jpeg", StringComparison.OrdinalIgnoreCase); > if (bImage) > { > using (Stream inputStream = response.GetRespons..

# xls 파일에 Local Storage 에 있는 Image 를 Load 해서 추가 하려면 Picture 형태의 정보를 이용한다. > 추가하는 이미지의 크기를 변경할 수 있다. ( LockAspectRatio ) # 관련 소스 코드 > using Excel = Microsoft.Office.Interop.Excel; > Excel.Range PositionXY = (Excel.Range)workSheet.Cells[Row, Col]; > Excel.Pictures excelPictures = workSheet.Pictures(Type.Missing) as Excel.Pictures; > Excel.Picture pictureInfo = excelPictures.Insert(strFilePath, Sys..

# 최소화 버튼을 눌렀을 때 프로그램을 트레이 아이콘 형태로 축소 시켜서 가동시키는 방법 >>> 다시 요청하면 윈도우상에 원래 크기로 프로그램을 표시한다. # 공용 컨트롤 에서 NotifyIcon 을 검색 후 선택하여 리소스 화면에 끌어놓는다. 그리고 이름을 TrayIcon 으로 변경하고 Text 에는 표시되는 이름이므로 Application 이름을 기록한다. >>> 추가적으로 Icon 도 변경 가능하고 ContextMenu 도 연결 가능한다. # 화면이 축소되는 상황에서 TrayIcon 으로 전환하기 위해서 resize 이벤트 함수를 생성한다. private void NotifyResizeTrayIcon(object sender, EventArgs e) { if (this.WindowState == F..

# Excel 파일로 데이터를 연동 > Excel 관련 Reference 를 연결시키면 파일 저장 및 열기를 손 쉽게 진행 한다. # 솔루션 탐색기 - 참조 - COM - Excel 를 검색 > 설치되어있는 Excel 버전에 따라서 Object Library 번호가 다르다. # using Excel = Microsoft.Office.Interop.Excel; # SaveFileDialog saveFile = new SaveFileDialog(); > saveFile.Filter = "Excel Files|*.xls"; > saveFile.Title = "Save Excel File"; > if (saveFile.ShowDialog() == DialogResult.OK) { Excel.Application..

# 크롤링(Crawling) / 스크레이핑(Scraping) 은 웹에 노출된 데이터를 가져와서 특정한 규칙 또는 위치의 데이터를 추출한다. # 전용 소프트웨어를 크롤러(crawler)라고 한다. # 스파이더(spider), 봇(bot)과 같은 지능형 검색엔진들도 크롤링 기법을 많이 이용한다. # 미리 입력된 방식에 따라 끊임없이 새로운 웹 페이지를 찾고 찾은 결과를 이용해 새로운 정보에 색인을 추가 1. Selenium 설치한다. > Visual Studio 에서 메뉴 - 도구 - NuGet 패키지 관리자로 이동 > Selenium.WebDriver, Selenium.Support 설치 > Selenium.WebDriver.ChromeDriver, DotNetSeleniumExtras.WaitHelper..