Programming/C# - Window 91

C#/ 레지스트리 등록 사용

public void EnrollReg() { // 레지스트리 등록. 부팅시 자동 실행프로그램 등록 if (IsRegisteredInRegistry()) { // 레지스트리 등록 파일 경로 string executablePath = Application.StartupPath + "\앱이름.exe"; // 레지스트리 키 등록 경로 string keyPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; using (RegistryKey registryKey = Registry.CurrentUser.OpenSubKey(keyPath, true)) { registryKey.SetValue("앱이름", executablePath); } // * 레지스트리 키 ..

C#/ 싱글톤 디자인 패턴 구현(singleton design pattern)

# 코드 public class Design { Design() { } static Design _instance = null; public static Design Instance { get { if (_instance == null) { _instance = new Design(); } return _instance; } } # 사용 Design d = Design.Instance; 이 코드는 싱글톤(Singleton) 디자인 패턴을 구현한 것입니다. 싱글톤은 어떤 클래스가 최초 한 번만 메모리를 할당하고 그 메모리에 인스턴스를 생성해 사용하는 패턴입니다. 이 패턴은 전역 변수를 사용하지 않고 객체를 하나만 생성하여 이를 어디에서든지 접근할 수 있도록 하는데 사용됩니다. 해당 코드를 간략히 설명하면:..

C#/ 트레이 아이콘 사용

# 기본 참조 https://minimax95.tistory.com/entry/c%ED%8A%B8%EB%A0%88%EC%9D%B4-1%EC%95%84%EC%9D%B4%EC%BD%98Tray-Icon-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0 [c#]트레이 아이콘(Tray Icon) 적용하기 이번 포스팅에서는 트레이 아이콘에 대해 알아보고 간단하게 트레이 아이콘을 사용해서 폼을 열고 프로그램을 닫는 기능을 구현해 보겠습니다. 트레이 아이콘은 사실 알게 모르게 많이 사용하 minimax95.tistory.com

C#/ 프로그레스 바(progress bar) 사용

# 상태라인 표시 함수 // 프로그레스바 winform ui 스레드 처리 public void UpdateProgressBar(int value) { if (progressBar1.InvokeRequired) { progressBar1.Invoke(new Action(UpdateProgressBar), value); } else { progressBar1.Value = value; } } * winform UI 특성 상의 크로스 스레드 문제를 해결하기 위해 .InvokeRequired 함수를 사용. # 함수를 사용하여 프로그레스바 사용하기 private void UseProgressBar_Click(object sender, EventArgs e) { // 프로그레스바가 우측하단에 위치하도록 설정 frm..

C#/ 프로그램 자동 업데이트 (Clickonce)

# 기본 참조 https://luvris2.tistory.com/635 C# Winform - Clickonce 사용 방법, 게시/배포하기, 자동 업데이트 구현하기 Overview 클릭원스를 이용하여 앱의 자동 업데이트를 구현합니다. 앱 실행 업데이트 확인 프로그램 실행 업데이트가 필요한 경우 : 업데이트 진행 업데이트가 필요하지 않은 경우 : 프로그램 실행 luvris2.tistory.com

C#/ 엑셀(excel) 사용하기

# Nuget으로 해당 라이브러리 설치 필요(Microsoft.Office.Interop.Excel) using Excel = Microsoft.Office.Interop.Excel; static void cleanExcelMethod(string filePath) { // 엑셀 애플리케이션 시작 Excel.Application excelApp = new Excel.Application(); excelApp.Visible = false; // 워크북 열기 Excel.Workbook workbook = excelApp.Workbooks.Open(filePath); // 모든 워크시트 순회 foreach (Excel.Worksheet worksheet in workbook.Sheets) { // 워크시트의 ..

C#/ SMTP(이메일 보내기)

# SMTP (Simple Mail Transfer Protocol) 설정(gmail) https://hyunmin1906.tistory.com/276 [Go] Google Gmail SMTP 설정 방법 및 메일 전송 ■ SMTP 간이 우편 전송 프로토콜(Simple Mail Transfer Protocol)의 약자. 이메일 전송에 사용되는 네트워크 프로토콜이다. 인터넷에서 메일 전송에 사용되는 표준이다. 1982년 RFC821에서 표준화되어 현재 hyunmin1906.tistory.com public void sendMail(string place, string error) { try { // 이메일 메시지 생성 MailMessage mail = new MailMessage(); mail.From = ..

C#/ OpenFileDialog 사용하기

// OpenFileDialog 객체 생성 OpenFileDialog openFileDialog = new OpenFileDialog(); // 초기 디렉토리 설정 (현재 디렉토리) openFileDialog.InitialDirectory = Environment.CurrentDirectory; // 파일 필터 설정 (선택사항) openFileDialog.Filter = "csv 파일 (*.csv)|*.csv"; // 다이얼로그가 열리고 사용자가 파일을 선택하면 if (openFileDialog.ShowDialog() == DialogResult.OK) { // 파일 경로 및 이름 할당 filePath = openFileDialog.FileName; fileName = Path.GetFileName(op..