본문 바로가기

SoftWare86

C# Class Library 만들기(이벤트 포함) C#의 클래스 라이브러리는 이벤트핸들러를 Main Form에게 보낼수 있는 장점이 있다.. 즉... 콜백?의 비슷한 의미라고? 봐야하나??? 하여튼.. 사용방법을 설명.. 1. ClassLibrary 를 만든다... 2. 작업 3. 컴파일.. 끝 -_-;; DLL(Class Library) 소스 더 써야됨..ㅠㅠ 2009. 3. 8.
일반 XP에서 XPE의 EWF기능 사용하기 우선 첨부파일부터 다운받자... EWF 사용하기 1. 필요한 파일 : ewf.sys, ewfmgr.exe ewfntldr 2. ewf.sys를 \WINDOWS\SYSTEM32\DRIVERS로 복사 3. ewfmgr.exe를 \WINDOWS\SYSTEM32로 복사 4. Ewfntldr를 C:\로 복사한 후 ntldr로 이름을 변경. 그전에 ntldr은 ntldr.bak로 이름을 변경 5. 레지스트리 편집기를 실행하고 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root 찾음. 6. Root 항목에 오른쪽 버튼을 클릭하여 권한 항목을 실행 7. Everyone의 권한이 읽기만 체크되어 있는데 이를 '모든 권한'에 체크 8. install_ewf.reg 더블클릭후 .. 2009. 3. 6.
C++ 2009년 3월 6일자... Naver Blog를 TiStory로 바꾸는 작업중이당.. 하지만 C++의 양이 너무 많아서 제외시킨다..ㅡㅡ; C++보려면 Naver 블로그로 가보든가.. http://blog.naver.com/hitoo86 2009. 3. 6.
C++ DLL Callback 을 C# 루틴으로 가져오기 typedef BOOL __stdcall Callback(int a, int b); //Hslee 콜백 등록! Callback *_cb; //C#의 콜백루틴 받아오는 포인터변수 void CallBackCall() //콜백 루틴시키는 함수...(Callback함수와 연결됨) { if(_cb != NULL) (_cb)(10,20); } void RegCallback(Callback *pcb) //C#의 콜백루틴 받아와 연결하는 함수 { _cb = pcb; } using System.Runtime.InteropServices; namespace CallbackTest { class Program { [DllImport("CallbackTestDll.dll")] static extern void RegCallb.. 2009. 3. 6.
C# Process Class //윈도우를 종료 System.Diagnostics.Process.Start("cmd.exe","ShutDown.exe -s -f -t 00"); //윈도우를 재부팅 System.Diagnostics.Process.Start("cmd.exe","ShutDown.exe -r -f -t 00"); //특정 폴더 열기 System.Diagnostics.Process.Start("explorer.exe", "C:\Temp"); //특정 사이트 열기 System.Diagnostics.Process.Start("explorer.exe", "http://www.naver.com"); //도스명령어 실행 System.Diagnostics.Process.Start("cmd.exe","/c dir"); private vo.. 2009. 3. 6.
C# 윈도우메세지 WM_USER MESSAGE 받기 Recive : protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 1024 + 1) { Debug.WriteLine("메세지가 들어왔음!"); } } Trancive : public class Win32API { [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int FindWindow(string className, string windowName); [DllImport("User32.dll", CharSet = CharSet.Auto)] public extern static bool PostMessage(IntPtr hwnd,.. 2009. 3. 6.
C# 대리자 Invoke 프로그래밍을 하다보면.. 이벤트루틴에서 Timer나 다른이벤트를 강제로 띄우고싶을때가 종종 발생하게된다.... 이벤트루틴은 delegate 즉 static의 성질을 같는 함수 이므로 Timer라든지 다른 이벤트를 직접 다룰수가 없다... 그러므로 사용하는게 대리자 (Invoke)이다.. 1. Thread or Event 함수에서 Timer실행시키기 1 2 MethodInvoker tmr = new MethodInvoker(TimerFaceTalk.Start); this.Invoke(tmr); MethodInvoker 로 타이머를 돌린다.. MethodInvoker는 Method에 대한 대리자클래스 이다.. 2. Thread or Event 함수에서 다른 Event함수 실행시키기 이럴경우에는 직접 함수자체.. 2009. 3. 6.
C# 의 Handle hWND WIN32 API DLL 을 사용하다 보면.. 함수 인자가 HWND 라는게 가끔있다.int LoadTTS(HANDLE hwnd, uint umsg, int enSpeechType); 위와같은???? C# 에서 DLL 포팅해줄때에는 1 2 [DllImport("HCITTS.dll", CharSet = CharSet.Auto)] public static extern int LoadTTS(IntPtr hwnd, uint umsg, int enSpeechType); 이렇게 해주면된다.. intPtr = 핸들값을 가지는 int형 변수 이다.. 그러고 나서 실제 사용할때에는 LoadTTS(this.handle,0,0); 이런식으로 사용하면 된다. 2009. 3. 6.
C# 형변환 1. String -> Hex private int ChangeStringToHex(String source) { return int.Parse(source, System.Globalization.NumberStyles.HexNumber); } 2. Hex -> String private String ChangeHexToString(int number) { return Convert.ToString(number, 16).ToUpper().PadLeft(2, '0'); } 3. Byte[] -> UInt32 private UInt32 ChangeByteToUInt32(byte[] src, int i) { return src[i] + (src[i + 1] > 8); dstByte[0 + start] = (b.. 2009. 3. 6.
C# ControlArray 사용하기 간단하게 소스만.. 올리겠음.. //사적인 필드로서 배열을 정의한다 private TextBox[] myTextBoxes; // Load 이벤트로 배열을 동적으로 작성해 폼에 가세한다 private void Form1_Load(object sender, System.EventArgs e) { // 10개의 배열을 확보한다 this.myTextBoxes = new TextBox[10]; for (int i = 0; i = 9; i++) { //새로운 인스턴스를 생성한다 this.myTextBoxes[i] = new TextBox(); //여기서, 프롭퍼티등을 필요에 따라서 설정합니다 this.myTextBoxes[i]. Name = "myTextBox" + i.ToString(); this.myTextBo.. 2009. 3. 6.
C# 에서 외부 DLL 사용 NET Platform 에서 기존의 WIn32에 있는 함수등을 사용하는 Platform Invoke는 metadata에서 수행할 수 있다. using System; using System.Runtime.InteropServices; public class Win32 { [DllImport("user32.dll", CharSet=CharSet.Auto)] public static extern int MessageBox(int hWnd, String text, string caption, uint type); } public class HelloWorld { public static void Main() { Win32.MessageBox(0, "Hello World", "Platform Invoke Samp.. 2009. 3. 6.