Tag: key

如何通过代码按住Ctrl键

我正在写一个unit testing,如果(Control.ModifierKeys == Keys.Control),某个函数将被深入调用堆栈。我可以为运行unit testing的特定情况添加一个标志或者其他东西,但是太脏了! 如何通过代码将ModifierKeys设置为Ctrl? 我正在使用C#.Net 4.0。

为什么MS Access 2007不允许插入行,但是在下次插入尝试时允许它?

我的插入声明是: INSERT INTO myTable (inst_id,user_id,app_id,type,accessed_on) VALUES (3264,2580,’MyApp’,’Renew’,Now); …所有值格式正确的地方。 该表具有上述字段和另一个,长int自动增量键字段。 外键是’inst_id’,’user_id’和’app_id’。 我从Access收到此错误: …以及错误输出时VS 2005中的以下错误: System.Data.OleDb.OleDbException:您向表请求的更改未成功,因为它们将在索引,主键或关系中创建重复值。 更改包含重复数据的字段或字段中的数据,删除索引或重新定义索引以允许重复条目,然后重试。 在进行此插入查询时,我可以查看数据库并查看每个外键值是否存在于各自的表中并且已经持续数月(对于我正在使用的特定示例)。 这些字段也设置为我可以有重复,所以这不是问题。 在其他表格中这种性质的呼叫效果很好。 我不需要在插入查询中提供自动增量键值,它会自动为我添加(就像它应该)。 奇怪的是,如果我在我的代码中执行此操作: try { //Execute the query here… } catch { //Execute the same query again } …或者如果我只是尝试在Access中执行两次,它就可以了。 有没有人遇到过这个? 同样,这种类型的插入适用于其他表,所有外键都存在于它们各自的表中,该表的主键设置为’自动增量’,并且所有字段(当然不是主键字段)是设置为允许重复。 有任何想法吗? 编辑:插入前最大的键: 343085 。 插入后最大的密钥: 343086 。 格式为: id: AutoNumber (Field Size=Long Interger, New Values=Increment, Indexed=Yes – […]

如何按字母顺序遍历Hashtable的键?

以递增的字母顺序遍历哈希表键的最简单方法是什么?

WPF密钥是数字或数字

我在我的窗口中有previewKeyDown方法,我想知道按下的键只有AZ字母或1-0数字(没有anyF1..12,输入,ctrl,alt等 – 只是字母或数字)。 我已经尝试过Char.IsLetter ,但是我需要给char,所以e.key.ToString()[0]不起作用,因为它几乎每次都是一个字母。

C#在游戏应用程序中按住键

我正在尝试创建一个C#应用程序,它将控制游戏。 我试图做的是例如:按住A键150ms,按住左箭头500ms,依此类推。 我正在搜索很多,我发现了以下代码。 我的程序首先瞄准游戏,然后拿着钥匙。 I’m holding the keys this way: Keyboard.HoldKey(Keys.Left); Thread.sleep(500); Keyboard.ReleaseKey(Keys.Left); 这是Keyboard类: public class Keyboard { public Keyboard() { } [StructLayout(LayoutKind.Explicit, Size = 28)] public struct Input { [FieldOffset(0)] public uint type; [FieldOffset(4)] public KeyboardInput ki; } public struct KeyboardInput { public ushort wVk; public ushort wScan; public uint dwFlags; public long time; […]

使用User32.dll SendMessage使用ALT修改器发送密钥

可能重复: C#和SendMessage(键)无法正常工作 我正在编写一个应用程序,使用user32.dll中定义的SendMessage函数将键击发送到另一个应用程序。 我已经弄清楚如何发送一个击键但我很难过尝试发送击键和ALT键。 出于我的问题的目的,我将专注于发送F1和ALT + F1。 如上所述,我能够发送F1键没问题。 这是我的代码片段,它发送F1键: // DLL Imports //Set the active window [DllImport(“user32.dll”)] public static extern IntPtr SetActiveWindow(IntPtr hWnd); //sends a windows message to the specified window [DllImport(“user32.dll”)] public static extern int SendMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam); // … // Some constants #define WM_SYSKEYDOWN 260 #define WM_SYSKEYUP 261 […]

在控制台中捕获没有焦点的击键

我知道Windows窗体有一个问题,但它在控制台中不起作用,或者至少我无法让它工作。 即使控制台没有焦点,我也需要捕获按键

如何在C#中使用多个修饰键

我正在使用keydown事件来检测按下的键,并为各种操作提供了几个键组合。 if (e.KeyCode == Keys.C && e.Modifiers == Keys.Control && e.Modifiers == Keys.Shift) { //Do work } else if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control) { //Paste } 出于某种原因,我按下Ctrl + Shift + C的组合键不起作用。 我重新订购了它们,并把它放在顶部,认为它可能是来自Ctrl + C的干扰,甚至删除了Ctrl + C以查看它是否导致了问题。 它仍然无法正常工作。 我知道它可能非常简单,但不能完全理解它是什么。 我的所有1修饰符+ 1组合键都可以正常工作,只要我添加第二个修饰符就是它不再有效。

使用密钥的可逆混洗算法

如何在C#中编写可逆混洗算法,该算法使用密钥进行混洗并可以反转为原始状态? 例如,我有一个字符串:“Hello world”,我怎么能将它洗牌以便以后我能够将洗牌后的字符串反转回“Hello world”。