我想检测点击我的触控板的时间!
我通常使用USB鼠标,所以我不使用触摸板.相反,我希望能够在单击触摸板时在.NET中执行操作.通过这种方式,我可以将它用作快捷方式:轻轻一击即可.
这是可能的,如果是的话,任何线索如何?我更喜欢它是否可以在VB.NET或C#中工作.
我的理论是,我必须做一个鼠钩,然后以某种方式确定点击来自哪个设备.如果确定点击来自触摸板,则取消点击并执行任务().
谢谢!
*编辑* 嗯,它已经"解决了",有点像:)奇怪的是,Synaptics几天前发布了他们最新的触摸板驱动程序和软件以及一些新的功能.由于我的笔记本电脑有一个synaptics触摸板,我试用了该软件,有趣的是,内置了指定触控板上的点击以执行操作的功能.
所以已经实现了所需的功能,没有一行代码(我自己的代码:).
回答Adrian的链接到RawInputSharp库.我昨天做了修补,我90%肯定可以用于此目的,如果笔记本电脑没有synaptics触控板.
我正在尝试使用对象Name属性对通用的对象列表进行排序.我使用LINQ并且以下表达式不太起作用:
var query = possibleWords.OrderBy(x => x.Name.ToLower()).ToList();
foreach (Word word in query) //possibleWords.OrderBy(word => word.Name))
{
listWords.Items.Add(word.Name);
}
Run Code Online (Sandbox Code Playgroud)
"query"现在应该包含一个有序项列表,如果我理解正确并且项应该添加到名为listWords的列表框中.
但输出是这样的:
http://screencast.com/t/s1CkkWfXD4(对不起URL链接,但是SO已经以某种方式锁定了我的帐户,我显然无法使用这个新帐户发布图像).
列表框几乎按字母顺序但不完整.出于某种原因,"aa"和"aaaa"排在最后.可能是什么原因,以及如何解决它?
提前致谢.
按要求详细说明
此代码在Visual Studio中输入并执行时:
List<Word> words = new List<Word>();
words.Add(new Word("a"));
words.Add(new Word("Calculator"));
words.Add(new Word("aaa"));
words.Add(new Word("Projects"));
words.Add(new Word("aa"));
words.Add(new Word("bb"));
words.Add(new Word("c"));
IEnumerable<Word> query = words.OrderBy(x => x.Name.ToLower()).ToList();
foreach (Word word in query)
{
Console.WriteLine(word.Name);
}
Run Code Online (Sandbox Code Playgroud)
给我以下输出:
a
bb
c
Calculator
ccc
Projects
aa
aaa
Run Code Online (Sandbox Code Playgroud)
这没有正确排序:第一个"a"是正确的,但随后的"aa"和"aaa"条目被发送到列表的底部.
我不太了解字符集和编码,所以我可能在这里犯了一个菜鸟错误.但在那种情况下,我不知道那可能是什么,我会有点疑惑为什么第一个"a"正确排序,但第二个和第三个"aa"和"aaa"不是!
进一步阐述 - 词类
[Serializable()]
public class Word
{
[System.Xml.Serialization.XmlAttribute("Name")] …Run Code Online (Sandbox Code Playgroud) 我目前正在使用相对较大的SQL Server 2000 DB.它的大小为80 GB,拥有数百万条记录.
我目前需要返回一个包含一系列非法字符中至少一个的名称列表.非法字符只是指由客户定义的任意字符列表.在下面的例子中,我使用问号,分号,句号和逗号作为非法字符列表.
我最初想要做一个与正则表达式一起工作的CLR函数,但是因为它是SQL server 2000,我猜这是不可能的.
目前我这样做了:
select x from users
where
columnToBeSearched like '%?%' OR
columnToBeSearched like '%;%' OR
columnToBeSearched like '%.%' OR
columnToBeSearched like '%,%' OR
otherColumnToBeSearched like '%?%' OR
otherColumnToBeSearched like '%;%' OR
otherColumnToBeSearched like '%.%' OR
otherColumnToBeSearched like '%,%'
Run Code Online (Sandbox Code Playgroud)
现在,我不是一个SQL专家,但我觉得上面的查询效率很低.在具有数百万条记录的表中进行8次多通配符搜索,似乎可能会严重降低系统速度.虽然它似乎在测试服务器上运行良好,但我得到了"这必须完全错误"的氛围.
由于我最终需要在实时生产服务器上执行此脚本,我希望能够获得良好的性能,以免堵塞系统.可能需要稍后扩展该脚本以包含更多非法字符,但这不太可能.
总结一下:我的目标是获取一个记录列表,其中两列中的任何一列都包含客户定义的"非法字符".数据库是实时且庞大的,所以我想要一种有效的方法,因为我相信上面的查询会非常慢.
谁能告诉我实现结果的最佳方法?谢谢!
/莫滕
我最近开始使用Linq,我目前正在尝试使用它来解析严重嵌套的XML文件(我无法控制).但是,在尝试运行以下语句时,我得到"对象引用未设置为对象的实例"错误.
问题出在"城市"一栏.城市房产的数据来自xml结构前景/ contactinfo/City/Answer.
但由于该字段不是强制性的,因此有时XML不具有城市/答案节点.所以我得到错误,因为"city"节点不存在,我正试图在其上调用".Element()".我找到了很多解决这个问题的方法,当它只有一个节点级别下来时(即如果我需要的数据是在城市中,而城市是唯一缺少的节点).
但是当它降低两级时(即试图得到一个不存在的节点的子节点),我一直无法找到任何解决方案.
希望这个问题足够明确.
最好的问候,莫滕
var prospects = (from prospect in xdoc.Descendants("PROSPECT")
select new Prospect {
ProspectID = (string) prospect.Element("PROSPECTINFO").Element("PROSPECT_ID"),
Name = (string) prospect.Element("PERSONALINFO").Element("FIRSTNAME")+ " " + prospect.Element("PERSONALINFO").Element("SURNAME"),
address = (string) prospect.Element("CONTACTINFO").Element("ADDRESSLINE1").Element("ANSWER"),
zipCode = (string)prospect.Element("CONTACTINFO").Element("POSTALCODE").Element("ANSWER").Value,
City = (string) prospect.Element("CONTACTINFO").Element("CITY").Element("ANSWER"),
}).ToList();
Run Code Online (Sandbox Code Playgroud)