В чем разница между использованием DllImport здесь? В частности, "user32" означает просто "user32.dll" или "user32.lib" или что-то еще?
[DllImport("user32")]
protected static extern int GetKeyboardState(byte[] pbKeyState);
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
protected static extern short GetKeyState(int vKey);
Возможно, вы можете игнорировать CharSet и CallingConvention.
Если они одинаковые, я могу переписать это, чтобы оно было более последовательным, но если нет, я не хочу иметь с этим кучу проблем.