본문 바로가기

language/C#

[.Net] 크로스 스레드(Cross Thread) 오류 해결을 위한 인보크(Invoke) 출처 : http://blog.danggun.net/2040 wcf가 예전에 사용하던 방식과 달라 이것저것 테스트 하다가 간만에 뜬 에러 크로스 스레드 작업이 잘못되었습니다.아.... 예전에 WPF에서 한번 소개 하긴 했었습니다만 윈폼에서는 약간다르죠.(참고 : [WPF] 다른 쓰레드에서 UI쓰레드 접근하기 - Dispatcher.Invoke) 1. 일반적인 방법일반적으로 인보크(Invoke)를 사용하려면 델리게이트(Delegate)를 만들어야 합니다.(참고 : MSDN - Control.Invoke 메서드) 일반적인 방법에서는 다음과 같은 순서로 인보크를 사용합니다.1) 델리게이트 선언2) 델리게이트에 연결할 함수 생성3) 델리게이트와 생성한 함수 연결4) 인보크로 델리게이트 호출 //1) 델리게이트 .. 더보기
전역 후킹 http://www.codeproject.com/Articles/5038/Using-Hooks-from-C http://support.microsoft.com/default.aspx?scid=kb;en-us;318804 http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C 더보기
Diskflt.sys 치료 코드 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using System.IO; using Microsoft.Win32; using Microsoft.Win32.SafeHandles; namespace diskflt_unload { class Program { #region [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool CloseHandle(IntPtr hObject); //CheckDisk.. 더보기
디어셈블러 아직은 미완성이지만, 언젠간 완성시키겠다! ㅋㅋㅋ 더보기
[C#] VisualStudio 디버깅 중 Memory 영역을 보는 방법 Alt + Ctrl + M + 1 ~ 5 변수를드래그 후 메모리 창에 던져주면 된다. 더보기
C# DataGridView using System; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace MyWinForm { public partial class FormDGV1 : Form { public FormDGV1() { InitializeComponent(); } private void FormDGV1_Load(object sender, EventArgs e) { // DataSet을 가져온다 DataSet ds = GetData(); // DataSource 속성을 설정 dataGridView1.DataSource = ds.Tables[0]; } private DataSet GetData() { string strCo.. 더보기
C#에서 win32 api를 사용할 때 http://www.codegod.com/Win32APIViewer.aspx 참고. 더보기
PE 파일 CheckSum 공식 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace checksum{ class Program { static void Main(string[] args) { submain(); } static void submain() { byte[] data = new byte[] { 0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0.. 더보기
Environment 현재 시스템에 로그인된 사용자의 이름 가져오기Environment.UserName; 시스템의 도메인 명을가져오기Environment.UserDomainName; 시스템의 디렉토리 가져오기Environment.SystemDirectory; 현재 운영체제의 버전 가져오기Environment.OSVersion.VersionString; 로컬 시스템의 NetBIOS 이름 가져오기Environment.MachineName; 현재 작업 디렉토리 가져오기Environment.CurrentDirectory; 현재 운영체제의 플랫폼 가져오기Environment.OSVersion.Platform.ToString(); 현재 운영체제의 프로세서 갯수 가져오기Environment.ProcessorCount; 시스템이 운영되고 .. 더보기
C#에서 인라인 어셈을 사용할 수 있을까? http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&pageno=0&wid=1267&rssMode=1&wtype=0 필자도 안되는줄 알았으나 된다네여-_- 헐-_- 그냥 C언어로 할래 더보기