즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

c# 44

.NET 코어 App을 코드로 관리자 권한으로 실행하는 방법

닷넷 프레임워크나 다른 블로그들을 찾아보면 클릭원스(Click Ones)를 설정했다가 해지하는 방법으로 "app.manifest"파일을 생성하는 방법으로 하는 것이 있었다. 그런데 닷넷 코어에는 클릭원스가 없다.  프로젝트 열기: Visual Studio 2022에서 원하는 프로젝트를 열자.프로젝트 속성 열기: 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택하자.매니페스트 파일 설정: 프로젝트 속성 창의 왼쪽 메뉴에서 "응용 프로그램"을 선택하고, "리소스" 섹션으로 내려가서 "매니페스트" 옵션을 찾자. 여기서 "새 매니페스트 생성"을 선택하거나 기존 매니페스트 파일을 참조할 수 있다. 만약 "새 매니페스트 생성" 옵션이 보이지 않는다면, 기본적으로 매니페스트 파일이 프로젝트..

개발/C# 2024.04.29

이벤트 로그 작성하는 방법

윈도우의 이벤트 로그의 Application카테고리에 내가 만든 프로그램의 로그를 써보자.  public static void WriteEventLogEntry(System.Diagnostics.EventLogEntryType LogType, string message, string AppName = "Spider"){ // Create an instance of EventLog System.Diagnostics.EventLog eventLog = new System.Diagnostics.EventLog(); // Check if the event source exists. If not create it. if (!System.Diagnostics.EventLog.SourceExis..

개발/C# 2024.04.25

Enum 사용 시 인덱스가 순차적이지 않을 때 처리방법

인덱스대로 하지 않아도 되는데, 궂이 이렇게 Enum을 선언했을 때 해당 값을 Combobox에서 가져오는 방법을 제시해본다. private enum DB_USER_ROLE { UNKNOWN = 0, WORKER = 2, INFRA_ADMIN = 8, SUPER_ADMIN = 9, } // 콤보박스에는 이런식으로 넣을 수 있다. String만 들어가기에 뭔가 변환함수를 만들어야 한다. CboUserRole.Items.AddRange(Enum.GetNames(typeof(DB_USER_ROLE))); 상수는 위와 같다. private DB_USER_ROLE GetUserRole() { Dictionary dicUserRole = new Dictionary(); string[] lstUserRole = En..

개발/C# 2024.02.15

C#과 Node.js(TS)에서 각각 Sha256 Hash 같은 값 나오게 하기

라이브러리를 사용해서 해시값을 구하면 각각 다른 값이 나오거나 해서 쌩짜로 만들었다. (보고 베꼈다.) 원래 출처에서는 Timestamp를 넣어서 해시값을 구하는데 이렇게 되면 로직이 복잡해져서 그냥 빼버렸다. 상황에 따라서 넣어서 사용하자. 대신 Keystring을 랜덤화해서 사용해도 될 것 같다. C# 소스 public static string GenerateHMAC(string payload, string key = "keystring") { // 키 생성 var hmac_key = Encoding.UTF8.GetBytes(key); // Timestamp 생성 //var timespan = (timestamp - new DateTime(1970, 1, 1, 0, 0, 0)); //var hmac_..

개발/C# 2024.02.15