키를 후크하는 데이 library을 사용하고 있는데 e.KeyCode.ToString()을 동일한 문자열과 비교할 때 몇 가지 문제가 있습니다. 내가 XML 파일에서 해당 문자열을 읽고 내가 변환 할 수있는 방법을 얻을 수없는 것 때문에 문자열에 보관> Program.KeyboardTradeHotkey = "Oemtilde";
문자열 비교가 올바르게 작동하지 않습니까?
-
나는
Keys.Oemtilde
의 문자열과 동일 변수가 문자열은 Keys
입니다.
if (e.KeyCode.Equals(Keys.Oemtilde)) {
Logging.AddToLog("[Keyboard][Check] " + e.KeyCode);
} else {
// failed to catch - executes else
Logging.AddToLog("[Keyboard][PRESS]");
}
그것은 잘 작동하고 : Logging.AddToLog("[Keyboard][Check] " + e.KeyCode);
이 실행됩니다 내가이 방법을 사용하는 경우
.
내가 그것을 사용하는 경우 : 그것은 다른 절을 실행
if (e.KeyCode.ToString() == Program.KeyboardTradeHotkey) {
Logging.AddToLog("[Keyboard][Check] " + e.KeyCode);
} else {
// failed to catch - executes else
Logging.AddToLog("[Keyboard][PRESS]");
}
. 문자열 비교처럼 정말이 경우에 작동도 네가 모두 문자열 (e.KeyCode.ToString()와 Program.KeyboardTradeHotkey가 동일하지 않는 것 같다.
이것에 대한 이유가 될 수있는 것?
'e.KeyCode.ToString()'과'Program.KeyboardTradeHotKey'의 결과를 점검하여 a) 케이스가 동일하고 b) 선행 또는 후행 공백이 없는지 확인 했습니까? – ChrisF
[14 : 31 : 11.107988] - [키보드] [프레스] | Oemtilde | True | Oemtilde | True Escape 변수에 \ n이 있음을 나타냅니다. 어떻게 거기에있어 ..하지만 재밌는 일은 로그 파일이 정확히 똑같은 것을 보여 주지만 내가 여기에 붙여 넣었을 때 Oemtilde 이후에 \ n이 표시되어 Trim()이 그것을 고쳤다는 것을 보여주었습니다. – MadBoy