Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
텍스트 스타일
모양 변경
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
11년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
36 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
112 행
복사
11 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
83 행
복사
static void KeyboardUpdate(QapKeyboard&Keyboard,const HWND hWnd,const UINT msg,const WPARAM wParam,const LPARAM lParam)
static void KeyboardUpdate(QapKeyboard&Keyboard,const HWND hWnd,const UINT msg,const WPARAM wParam,const LPARAM lParam)
{
{
복사
복사됨
복사
복사됨
if(msg==WM_SYSKEYDOWN)
bool any_key_up=(msg==WM_KEYUP)||(msg==WM_SYSKEYUP);
{
bool any_key_down=(msg==WM_KEYDOWN)||(msg==WM_SYSKEYDOWN);
if(wParam==VK_F10)
if(
any_
key_
up||any_
key_
down
)
{
Keyboard.KeyUpdate(VK_F10,true);
};
if(wParam==VK_MENU)
{
Keyboard.KeyUpdate(VK_MENU,true);
};
}
if(msg==WM_SYSKEYUP)
{
if(wParam==VK_F10)
{
Keyboard.KeyUpdate(VK_F10,false);
};
if(wParam==VK_MENU)
{
Keyboard.KeyUpdate(VK_MENU,false);
};
if(wParam==VK_RETURN)
{
Keyboard.KeyUpdate(VK_RETURN,false);
};
}
bool key_flags[]={msg==WM_KEYUP,msg==WM_KEYDOWN};
if(
key_
flags[0]||
key_
flags[1]
)
{
{
복사
복사됨
복사
복사됨
bool value=
key_
flags[1]
;
bool value=
any_
key_
down
;
auto&KB=Keyboard;
auto&KB=Keyboard;
auto&Down=Keyboard.Down;
auto&Down=Keyboard.Down;
auto KeyUpdate=[&KB,&Down](int key,const bool value)->void
auto KeyUpdate=[&KB,&Down](int key,const bool value)->void
{
{
if(Down[key]==value)return;
if(Down[key]==value)return;
if(value!=IsKeyDown(key))return;
if(value!=IsKeyDown(key))return;
KB.KeyUpdate(key,value);
KB.KeyUpdate(key,value);
};
};
struct TSysKey
struct TSysKey
{
{
int Key,LKey,RKey;
int Key,LKey,RKey;
} key_array[]=
} key_array[]=
{
{
{VK_SHIFT,VK_LSHIFT,VK_RSHIFT},
{VK_SHIFT,VK_LSHIFT,VK_RSHIFT},
{VK_CONTROL,VK_LCONTROL,VK_RCONTROL},
{VK_CONTROL,VK_LCONTROL,VK_RCONTROL},
{VK_MENU,VK_LMENU,VK_RMENU}
{VK_MENU,VK_LMENU,VK_RMENU}
};
};
for (int i=0;i<lenof(key_array);i++)
for (int i=0;i<lenof(key_array);i++)
{
{
auto&ex=key_array[i];
auto&ex=key_array[i];
if(wParam==ex.Key)
if(wParam==ex.Key)
{
{
KeyUpdate(ex.LKey,value);
KeyUpdate(ex.LKey,value);
KeyUpdate(ex.RKey,value);
KeyUpdate(ex.RKey,value);
}
}
}
}
}
}
복사
복사됨
복사
복사됨
if(msg==WM_KEYDOWN)
{
Keyboard.KeyUpdate(wParam,true);
}
if((msg==WM_KEYUP)&&(wParam==VK_SNAPSHOT))
if((msg==WM_KEYUP)&&(wParam==VK_SNAPSHOT))
{
{
if(wParam==VK_SNAPSHOT)
if(wParam==VK_SNAPSHOT)
{
{
Keyboard.KeyUpdate(VK_SNAPSHOT,true);
Keyboard.KeyUpdate(VK_SNAPSHOT,true);
};
};
if(wParam==VK_SNAPSHOT)
if(wParam==VK_SNAPSHOT)
{
{
Keyboard.KeyUpdate(VK_SNAPSHOT,false);
Keyboard.KeyUpdate(VK_SNAPSHOT,false);
};
};
}
}
복사
복사됨
복사
복사됨
if(
msg==WM_KEYUP
)
if(
any_key_up
)
{
{
Keyboard.KeyUpdate(wParam,false);
Keyboard.KeyUpdate(wParam,false);
}
}
복사
복사됨
복사
복사됨
if(
msg==WM_KEYDOWN
)
if(
any_key_down
)
{
{
Keyboard.KeyUpdate(wParam,true);
Keyboard.KeyUpdate(wParam,true);
}
}
if(msg==WM_LBUTTONUP)
if(msg==WM_LBUTTONUP)
{
{
Keyboard.KeyUpdate(mbLeft,false);
Keyboard.KeyUpdate(mbLeft,false);
}
}
if(msg==WM_RBUTTONUP)
if(msg==WM_RBUTTONUP)
{
{
Keyboard.KeyUpdate(mbRight,false);
Keyboard.KeyUpdate(mbRight,false);
}
}
if(msg==WM_MBUTTONUP)
if(msg==WM_MBUTTONUP)
{
{
Keyboard.KeyUpdate(mbMiddle,false);
Keyboard.KeyUpdate(mbMiddle,false);
}
}
if(msg==WM_LBUTTONDOWN)
if(msg==WM_LBUTTONDOWN)
{
{
Keyboard.KeyUpdate(mbLeft,true);
Keyboard.KeyUpdate(mbLeft,true);
}
}
if(msg==WM_RBUTTONDOWN)
if(msg==WM_RBUTTONDOWN)
{
{
Keyboard.KeyUpdate(mbRight,true);
Keyboard.KeyUpdate(mbRight,true);
}
}
if(msg==WM_MBUTTONDOWN)
if(msg==WM_MBUTTONDOWN)
{
{
Keyboard.KeyUpdate(mbMiddle,true);
Keyboard.KeyUpdate(mbMiddle,true);
}
}
복사
복사됨
복사
복사됨
if(
msg==WM_CHAR)
if(
(
msg==WM_CHAR)
||(msg==WM_SYSCHAR))
{
{
Keyboard.CharUpdate(wParam);
Keyboard.CharUpdate(wParam);
}
}
}
}
저장된 비교 결과
원본
파일 열기
static void KeyboardUpdate(QapKeyboard&Keyboard,const HWND hWnd,const UINT msg,const WPARAM wParam,const LPARAM lParam) { if(msg==WM_SYSKEYDOWN) { if(wParam==VK_F10) { Keyboard.KeyUpdate(VK_F10,true); }; if(wParam==VK_MENU) { Keyboard.KeyUpdate(VK_MENU,true); }; } if(msg==WM_SYSKEYUP) { if(wParam==VK_F10) { Keyboard.KeyUpdate(VK_F10,false); }; if(wParam==VK_MENU) { Keyboard.KeyUpdate(VK_MENU,false); }; if(wParam==VK_RETURN) { Keyboard.KeyUpdate(VK_RETURN,false); }; } bool key_flags[]={msg==WM_KEYUP,msg==WM_KEYDOWN}; if(key_flags[0]||key_flags[1]) { bool value=key_flags[1]; auto&KB=Keyboard; auto&Down=Keyboard.Down; auto KeyUpdate=[&KB,&Down](int key,const bool value)->void { if(Down[key]==value)return; if(value!=IsKeyDown(key))return; KB.KeyUpdate(key,value); }; struct TSysKey { int Key,LKey,RKey; } key_array[]= { {VK_SHIFT,VK_LSHIFT,VK_RSHIFT}, {VK_CONTROL,VK_LCONTROL,VK_RCONTROL}, {VK_MENU,VK_LMENU,VK_RMENU} }; for (int i=0;i<lenof(key_array);i++) { auto&ex=key_array[i]; if(wParam==ex.Key) { KeyUpdate(ex.LKey,value); KeyUpdate(ex.RKey,value); } } } if(msg==WM_KEYDOWN) { Keyboard.KeyUpdate(wParam,true); } if((msg==WM_KEYUP)&&(wParam==VK_SNAPSHOT)) { if(wParam==VK_SNAPSHOT) { Keyboard.KeyUpdate(VK_SNAPSHOT,true); }; if(wParam==VK_SNAPSHOT) { Keyboard.KeyUpdate(VK_SNAPSHOT,false); }; } if(msg==WM_KEYUP) { Keyboard.KeyUpdate(wParam,false); } if(msg==WM_KEYDOWN) { Keyboard.KeyUpdate(wParam,true); } if(msg==WM_LBUTTONUP) { Keyboard.KeyUpdate(mbLeft,false); } if(msg==WM_RBUTTONUP) { Keyboard.KeyUpdate(mbRight,false); } if(msg==WM_MBUTTONUP) { Keyboard.KeyUpdate(mbMiddle,false); } if(msg==WM_LBUTTONDOWN) { Keyboard.KeyUpdate(mbLeft,true); } if(msg==WM_RBUTTONDOWN) { Keyboard.KeyUpdate(mbRight,true); } if(msg==WM_MBUTTONDOWN) { Keyboard.KeyUpdate(mbMiddle,true); } if(msg==WM_CHAR) { Keyboard.CharUpdate(wParam); } }
수정본
파일 열기
static void KeyboardUpdate(QapKeyboard&Keyboard,const HWND hWnd,const UINT msg,const WPARAM wParam,const LPARAM lParam) { bool any_key_up=(msg==WM_KEYUP)||(msg==WM_SYSKEYUP); bool any_key_down=(msg==WM_KEYDOWN)||(msg==WM_SYSKEYDOWN); if(any_key_up||any_key_down) { bool value=any_key_down; auto&KB=Keyboard; auto&Down=Keyboard.Down; auto KeyUpdate=[&KB,&Down](int key,const bool value)->void { if(Down[key]==value)return; if(value!=IsKeyDown(key))return; KB.KeyUpdate(key,value); }; struct TSysKey { int Key,LKey,RKey; } key_array[]= { {VK_SHIFT,VK_LSHIFT,VK_RSHIFT}, {VK_CONTROL,VK_LCONTROL,VK_RCONTROL}, {VK_MENU,VK_LMENU,VK_RMENU} }; for (int i=0;i<lenof(key_array);i++) { auto&ex=key_array[i]; if(wParam==ex.Key) { KeyUpdate(ex.LKey,value); KeyUpdate(ex.RKey,value); } } } if((msg==WM_KEYUP)&&(wParam==VK_SNAPSHOT)) { if(wParam==VK_SNAPSHOT) { Keyboard.KeyUpdate(VK_SNAPSHOT,true); }; if(wParam==VK_SNAPSHOT) { Keyboard.KeyUpdate(VK_SNAPSHOT,false); }; } if(any_key_up) { Keyboard.KeyUpdate(wParam,false); } if(any_key_down) { Keyboard.KeyUpdate(wParam,true); } if(msg==WM_LBUTTONUP) { Keyboard.KeyUpdate(mbLeft,false); } if(msg==WM_RBUTTONUP) { Keyboard.KeyUpdate(mbRight,false); } if(msg==WM_MBUTTONUP) { Keyboard.KeyUpdate(mbMiddle,false); } if(msg==WM_LBUTTONDOWN) { Keyboard.KeyUpdate(mbLeft,true); } if(msg==WM_RBUTTONDOWN) { Keyboard.KeyUpdate(mbRight,true); } if(msg==WM_MBUTTONDOWN) { Keyboard.KeyUpdate(mbMiddle,true); } if((msg==WM_CHAR)||(msg==WM_SYSCHAR)) { Keyboard.CharUpdate(wParam); } }
비교하기