
C# 빌드할때 어플리케이션을 관리자권한으로 실행하기실행할때 관리자 권한으로 실행할때 파일 속성에서 관리자권한으로 실행을 체크한다이렇게 하고 압축하고 해제하거나 서버에 올리는 등 작업을 하고 나면 관리자 권한이 해제가 되는 경우가 있다이걸 방지하기 위해서 빌드할 때 관리자권한을 적용할 수 있다프로젝트 이름 우클릭 → "추가 (Add)" → "새 항목 (New Item)" 선택 "응용 프로그램 매니페스트 파일 (Application Manifest File)" 추가 (app.manifest) 기본적으로 "asInvoker" 설정이 되어 있어서 관리자 권한이 필요하지 않은 상태다저기 level을 requireAdministrator 로 설정하면 ..
C#의 lock 키워드 이해하기 멀티스레딩 환경에서는 여러 스레드가 동시에 리소스에 접근하려고 할 때 문제가 발생할 수 있습니다. 이러한 동시 접근을 제어하려면 동기화 메커니즘이 필요합니다. C#에서는 lock 키워드를 사용하여 특정 코드 영역의 동시 실행을 방지하는 방법을 제공합니다. 1. 왜 lock이 필요한가? 스레드 간의 경쟁 조건(Race Condition) 때문입니다. 경쟁 조건은 두 개 이상의 스레드가 동시에 공유 데이터에 접근하려고 할 때 발생하는 현상으로, 데이터의 무결성을 손상시킬 수 있습니다. 예를 들어, 두 스레드가 동시에 계좌 잔액을 변경하려고 한다고 가정하면, 한 스레드가 잔액을 업데이트하는 동안 다른 스레드도 동일한 작업을 수행할 수 있으므로 잘못된 잔액이 저장될 수 있습니다...
using MySql.Data.MySqlClient; string ConnectionString = "SERVER=localhost; USER=아이디; DATABASE=데이터베이스; PASSWORD=비밀번호;"; string sql = "select * from test"; DataSet ds = new DataSet(); MySqlConnection Conn = new MySqlConnection(ConnectionString); MySqlDataAdapter dataAdapter = new MySqlDataAdapter(sql, Conn); dataAdapter.Fill(ds,"test");
public static string Encrypt(string textToEncrypt, string key) { RijndaelManaged rijndaelCipher = new RijndaelManaged(); rijndaelCipher.Mode = CipherMode.CBC; rijndaelCipher.Padding = PaddingMode.PKCS7; rijndaelCipher.KeySize = 128; rijndaelCipher.BlockSize = 128; byte[] pwdBytes = Encoding.UTF8.GetBytes(key); byte[] keyBytes = new byte[16]; int len = pwdBytes.Length; if (len > keyBytes.Length) ..
EncryptString(암호키, 암호화할 문자열); private static string EncryptString(string InputText, string KeyString) { RijndaelManaged RijndaelCipher = new RijndaelManaged(); byte[] PlainText = Encoding.Unicode.GetBytes(InputText); byte[] Salt = Encoding.ASCII.GetBytes(KeyString.Length.ToString()); PasswordDeriveBytes SecureKey = new PasswordDeriveBytes(KeyString, Salt); ICryptoTransform Encryptor = RijndaelCi..
Substring (int startIndex) - 원하는 위치부터 끝까지 string s = "0123456789";Console.WriteLine(s.substring(5)); // 결과 "56789" Console.WriteLine(s.substring(7)); // 결과 "789" Substring (int startIndex, int length) - 원하는 위치부터 문자 개수 Console.WriteLine(s.substring(5,2)); // 문자열 인덱스 5부터 2개의 문자를 반환 // 결과 "56"
전체 소스파일입니다 폼을 두개 생성합니다Form1 - 메인폼이죠 기본생성되는 폼MoveForm - 폼을 움직일때 테두리를 표시해 주기 위한 폼 MoveForm 에 패널을 하나 넣고 this.BackColor = System.Drawing.Color.DarkSlateGray; // MoveForm 배경을 빨강이 아닌 아무색이나 변경. 테두리로 보일 색입니다this.panel1.BackColor = System.Drawing.Color.Red; // panel1 배경을 빨강으로 설정합니다this.panel1.Location = new System.Drawing.Point(6, 6); // Location을 6,6으로 설정합니다this.panel1.Size = new System.Drawing.Size(848..
- Total
- Today
- Yesterday
- c# Speech
- 시스템트레이딩
- MySQL
- C# textbox 커서 시작
- 이베스트
- c# 음성
- c# 폼이동
- C# textbox 커서 마지막
- Xingapi
- 복호화
- ArgumentException
- 베란다 텃밭
- C# textbox 커서 위치
- 드론
- 암호화
- 코딩
- 인삼키우기
- c#
- 이 행은
- 스털링
- c# SpeechSynthesizer
- 앉은뱅이 방울토마토
- ESP32
- 스털링엔진
- C# 마우스 폼이동
- 방울토마토
- 베란다 방울토마토
- NET FRAMEWORK
- 베란타
- framework
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |