아둔의 창(Spear of Adun)
모든 것을 뚫는 최고의 창
내가 재밌다.
- C# 프로젝트 생성
- KKK 네임스페이스 (KakaoKungKuotta)
- 스크린샷을 위한 ScreenCapture 클래스
- 폼작업(투명, 빨간색 테두리, 드래그 이동, 항상 위)
- 캡처영역 내에서 자동 스크린샷(현재 1초)
- 스크린샷 이미지 포맷 jpeg에서 png로 수정
- window 관련 함수 WindowImport 클래스로 이동
- 현재 실행중인 프로그램 목록 콘솔에 출력
- enum, flag 추가, summary 정리
- Win32.FindWindow[013]
- Win32.GetWindowPlacement
- 위치, 크기 정보에 기반하여 프로그램 위치에 빨간색 테두리 생성
- HotKeyHelper 클래스
- 후킹은 좀 더 공부후에 시도.
- using Microsoft.CodeAnalysis.Scripting;
- using Microsoft.CodeAnalysis.CSharp.Scripting;
Keyboard.HotKey(Keys.A, () => { Console.WriteLine("a"); });
Keyboard.HotKey(Keys.A | Keys.Control, () => { Console.WriteLine("a + ctrl"); });
Keyboard.HotKey(Keys.A | Keys.Alt, () => { Console.WriteLine("a + alt"); });
- PInvoke.* 라이브러리 적용
// 캡처, 저장
Keyboard.HotKey(Keys.A | Keys.Control, () => { Console.WriteLine("ctrl + a");
Camera.Capture().Save();
// save() -> 현재 날짜 파일명으로 저장
});
// 콘솔창 토글
Keyboard.HotKey(Keys.A | Keys.Alt, () => { Console.WriteLine("alt + a");
Command.visible = !Command.visible;
});
- 캡쳐 기능
- 콘솔창 on/off
- HookHelper.cs
- 조금 더 수정해야 한다. 마우스 후킹 개발할 때 수정 예정
Console.WriteLine("Hello KKK World!");
// 1. 단축키(HotKey) : (단축키를 사용할 경우 프로세스의 키입력을 무시한다.)
Keyboard.HotKey(Keys.A, () => { Console.WriteLine("a"); });
Keyboard.HotKey(Keys.A | Keys.Control, () => { Console.WriteLine("ctrl + a");
// 현재 화면 캡쳐 및 자동 저장 (파일명: 현재 날짜)
Camera.Capture().Save();
});
Keyboard.HotKey(Keys.A | Keys.Alt, () => { Console.WriteLine("alt + a");
// 콘솔창 토글
Command.visible = !Command.visible;
});
// 2. 키보드 전역 훅 : (다른 프로세스에서 키보드 입력을 해도 실행된다.)
// 2.1 키를 누를 때
Keyboard.OnKeyDown += (key) => {
switch (key)
{
case Keys.B: Console.WriteLine("B가 눌렸다."); break;
case Keys.C: Console.WriteLine("C가 눌렸다."); break;
}
};
// 2.2 키를 땔 때
Keyboard.OnKeyUp += (key) => {
switch (key)
{
case Keys.E: Console.WriteLine("E가 때졌다."); break;
case Keys.F: Console.WriteLine("F가 때졌다."); break;
}
};
// 3. 테스트 함수
Test();
private void Test()
{
Console.WriteLine("This is Test function..");
}
- IMouse, Mouse
// 4. 마우스 전역 훅 : (다른 프로세스에서 마우스 입력을 해도 실행된다.)
Mouse.OnMouseDown += (x, y) =>
{
Console.WriteLine(string.Format("click (x: {0}, y: {1})", x, y));
}
- IProgram, Program, SendHelper
// Zulip이라는 프로그램 종료.
Program.Close("Zulip");
Keyboard.ComboKey(Keys.LControlKey, Keys.D, Keys.G, () =>
{
/// Logic
});
- InputHelper
Keyboard.Send("Hello!\n");
- IDelay
Keyboard.Send("Hello!\n").Delay(1000).Send(Keys.O, Keys.O, Keys.P, Keys.S);
Keyboard.SendCombo(Keys.LControlKey, Keys.A);
- [훅] 마우스 업, 다운, 클릭, 더블 클릭, 휠, 드래그 기능
- [입력] 마우스 클릭, 이동, 휠, 드래그 기능
Camera.Capture(sx, sy, dx, dy)
- mac os 캡쳐 기능을 모방한 캡쳐 프로그램 예제