전체 글 254

[C#] 원격 제어 프로그램 14. 원격 제어 컨트롤러

1. 유튜브 동영상 강의 원격 제어 프로그램 - 원격 제어 컨트롤러 2. 원격 제어 컨트롤러 이제 원격 제어 컨트롤러를 만들어 봅시다. 먼저 공통으로 사용할 부분을 작성할게요. public static class NetworkInfo { 이미지 서버 포트 접근자를 제공합시다. 여기에서 하드 코딩할게요. public static short ImgPort //이미지 서버 포트 { get { return 20004; } } 원격 제어 요청 포트 접근자를 제공합시다. public static short SetupPort//원격 제어 요청 포트 { get { return 20002; } } 이벤트 서버 포트 접근자를 제공합시다. public static short EventPort//이벤트 서버 포트 { get ..

[C#] 원격 제어 프로그램 15. 키보드, 마우스 이벤트 래퍼

1. 유튜브 동영상 강의 원격 제어 프로그램 - 키보드, 마우스 이벤트 래퍼 2. 키보드, 마우스 이벤트 래퍼 원격 제어 호스트에서는 수신한 키보드와 마우스 이벤트를 프로그램 방식으로 발생해 주어야 합니다. 이를 위해 Windows API에서 제공하는 기능을 래핑하여 클래스로 구현합시다. 키보드 이벤트나 마우스 이벤트를 강제로 발생하기 위해서는 Windows API에서 제공하는 시스템 함수를 호출해야 합니다. 다음은 프로그램 방식으로 키보드 이벤트를 발생시키는 keybd_event 함수의 원형입니다. WINUSERAPI VOID WINAPI keybd_event( __in BYTE bVk, __in BYTE bScan,__in DWORD dwFlags,__in ULONG_PTR dwExtraInfo); ..

[C#] 원격 제어 프로그램 16. 원격 제어 호스트

1. 유튜브 동영상 강의 원격 제어 프로그램 - 원격 제어 호스트 2. 원격 제어 호스트 이제 원격 제어 호스트를 표현할 Remote 클래스를 구현해 봅시다. public class Remote { 원격 제어 호스트 개체도 프로그램에 유일해야 하므로 단일체 패턴을 적용할게요. 먼저 클래스 내에 정적 멤버 필드로 단일 개체를 선언하세요. static Remote singleton;//단일 개체 다른 형식에서 단일 개체를 가져오기 할 수 있게 속성을 제공하세요. public static Remote Singleton { get { return singleton; } } 단일 개체는 정적 생성자에서 생성하세요. static Remote() { singleton = new Remote(); //단일 개체 생성 ..

[C#] 원격 제어 프로그램 17. 가상 커서

1. 유튜브 동영상 강의 원격 제어 프로그램 - 가상 커서 원격 제어 컨트롤러에서는 상대 호스트의 마우스 위치를 화면에 표시해야 합니다. 이 부분을 위해 가상의 커서를 만듭시다. 가상 커서는 도구 스타일의 작은 폼으로 정의합시다. VirtualCursorForm 이름의 폼을 추가하세요. Form의 AutoSizeMode를 GrowAndShrink로 설정하세요. BackColor는 Red, FormBorderSytle은 None, TopMost를 True로 지정합니다. Size 속성과 MaximumSize, MinimumSize 속성을 10, 10으로 지정하세요. 폼의 Load 이벤트 핸들러를 등록하세요. 폼이나 컨트롤의 이벤트 핸들러를 등록할 때는 속성 창을 이용하여 등록하세요. Load 이벤트 핸들러에..

[C#] 원격 제어 프로그램 18. 원격 클라이언트 폼

1. 유튜브 동영상 강의 원격 제어 프로그램 - 원격 클라이언트 폼 2. 원격 클라이언트 폼 이번에는 원격 제어할 때 대상 호스트의 화면을 표시하는 RemoteCleintForm 폼을 추가하세요. 자식 컨트롤로 PictureBox 컨트롤을 추가하고 이름을 pbox_remote으로 정합시다. PictureBox 컨트롤의 Dock 속성을 Fill로 설정하고 SizeMode 속성르 StretchImage로 설정하세요. 멤버 필드로 이미지를 수신하였는지 확인하는 멤버와 이미지 크기를 기억할 멤버를 선언하세요. bool check;//이미지 수신 여부 Size csize; //클라이언트 폼 크기 원격 호스트를 제어하기 위한 키보드와 마우스 이벤트를 전송에 사용할 클라이언트를 속성으로 제공합시다. SendEvent..