问题列表 - 第5364页

如何区分C#中的多个输入设备

我有一个条形码扫描仪(就像一个键盘),当然我有一个键盘太连接到计算机.该软件接受来自扫描仪和键盘的输入.我只需要接受扫描仪的输入.代码是用C#编写的.有没有办法从键盘"禁用"输入,只接受扫描仪的输入?

注意:键盘是笔记本电脑的一部分...因此无法拔下插头.此外,我尝试将以下代码保护覆盖布尔ProcessDialogKey(System.Windows.Forms.Keys keyData){return true; 但是,随着忽略键盘上的击键,条形码扫描器输入也被忽略.

我不能让扫描仪发送sentinal字符,因为扫描仪正被其他应用程序使用,添加一个sentinal字符流意味着修改其他代码.

此外,我无法使用定时方法来确定输入是否来自条形码扫描仪(如果它是一堆字符后跟一个暂停),因为扫描的条形码可能是单字符条形码.

是的,我正在从流中读取数据.

我试图跟随文章:在WinForms中区分条形码扫描器和键盘.不过我有以下问题:

  1. 我收到错误由于其保护级别,NativeMethods无法访问.好像我需要输入一个dll; 它是否正确?如果是这样,我该怎么办?
  2. 我应该使用哪个受保护的覆盖void WndProc(ref Message m)定义,文章中有两个实现?
  3. 我收到与[SecurityPermission(SecurityAction.LinkDemand,Flags = SecurityPermissionFlag.UnmanagedCode)]相关的错误错误CS0246:找不到类型或命名空间名称'SecurityPermission'(您是否缺少using指令或程序集引用?).我该如何解决这个错误?
  4. 该行还包含以下内容:if((来自hardwareId中的hardwareId,其中deviceName.Contains(hardwareId)选择hardwareId).Count()> 0)错误是错误CS1026 :)预期.
  5. 我应该将文章中的所有代码放在一个名为BarcodeScannerListener.cs的.cs文件中吗?

关于C#解决方案源代码的后续问题由Nicholas Piasecki在http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/上发布:

  1. 我无法在VS 2005中打开解决方案,因此我下载了Visual C#2008 Express Edition,并运行了代码.但是,在连接条形码扫描仪并扫描条形码后,程序无法识别扫描.我在OnBarcodeScanned方法中设置了一个断点,但它从未被击中过.我确实更改了App.config,其中包含使用设备管理器获取的条形码扫描程序的ID.似乎有2个带有HID#Vid_0536和Pid_01c1的设备名称(当连接扫描仪时从设备管理器获取).我不知道这是否导致扫描无法正常工作.迭代deviceNames时,这里是我找到的设备列表(使用调试器):

"\ ??\HID#Vid_0536&Pid_01c1&#MI_01 9 25ca5370&0� {4d1e55b2-F16F-11CF-88cb-001111000030}"

"\ ??\HID#Vid_0536&Pid_01c1&#MI_00 9 38e10b9&0� {884b96c3-56ef-11D1-bc8c-00a0c91405dd}"

"\ ??\HID#Vid_413c&Pid_2101&MI_00#8&1966e83d&0� {884b96c3-56ef-11D1-bc8c-00a0c91405dd}"

"\ ??\HID#Vid_413c&Pid_3012#7&960fae0&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}"
"\ ??\Root#RDP_KBD#0000#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}""\ ??\ACPI#PNP0303#4&2f94427b&0#{884b96c3-56ef-11d1-bc8c-00a0c91405dd}""\ ??\Root#RDP_MOU#0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}""\ ??\ACPI#PNP0F13 #4&2f94427b&0#{378de44c-56ef-11D1-bc8c-00a0c91405dd}"

所以HID#Vid_0536和Pid_01c1有两个条目; 可能导致扫描不起作用?

好吧所以我似乎不得不想办法不依赖于扫描仪发送的ASCII 0x04字符...因为我的扫描仪不发送该字符.之后,条形码扫描事件被触发,并显示带有条形码的弹出窗口.谢谢尼古拉斯的帮助.

c# barcode-scanner

22
推荐指数
1
解决办法
3万
查看次数

FLEX:以编程方式删除警报?

我需要以编程方式删除警报.

这就是为什么:我的应用程序使用BrowserManager根据网址的#hash部分中的内容启用深层链接.如果当前警报已启动,并且用户点击后退按钮,则应用程序将恢复到之前的状态.但警报仍然会上升,在许多情况下,此时无关紧要.

那么有没有办法以编程方式删除警报?所以当哈希片段改变时我可以删除它.

谢谢!

apache-flex alert actionscript-3 deep-linking

4
推荐指数
1
解决办法
2975
查看次数

超慢C#自定义控件

我做了一个自定义控件,它是一个FlowLayoutPanel,我在其中放了一堆其他自定义控件(只是按钮,每个都有三个标签和一个PictureBox叠加)

它可以正常使用大约100个按钮,但是最多可以达到1000个按钮并且它有问题.撞到高达5000并且它在20秒后死亡.

我有很少的自定义代码,我明智地使用暂停和恢复布局.

那么我做错了什么?我确信我的(相当快速的)计算机应该能够处理几千个按钮和标签.

(我对C#GUI很新,所以也许我应该做的事情完全不同.)

编辑1:

这几乎是目前唯一的自定义代码:

flowLayoutPanel1.SuspendLayout();
foreach (DataRow row in dt.Rows) // dt is from a DB query
{
    flowLayoutPanel1.Controls.Add(new PersonButton(row));
}
flowLayoutPanel1.ResumeLayout();
Run Code Online (Sandbox Code Playgroud)

并在PersonButton构造函数中:

this.label1.Text = row["FirstName"].ToString().Trim() + " "
    + row["Surname"].ToString().Trim();
Run Code Online (Sandbox Code Playgroud)

(还应该附上图片,但我不确定是否有人能看到它.)

编辑2:

我想我应该使用DataGridView或ListView,但我想要的不仅仅是一行文本和每行一个小图标; 我希望它看起来类似于firefox中的下载视图(Ctrl + J).(见截图)

非常感谢您的所有投入,BTW.我想我必须重新思考......

alt text http://img156.imageshack.us/img156/1057/capture.png

c# optimization user-controls

2
推荐指数
1
解决办法
5558
查看次数

xpath和c#

我正在尝试创建一个搜索XML文档的winform应用程序.对于我的搜索,我需要通过使用小写()xpath函数将xpath条件中的XML属性转换为小写.这会导致与函数名称空间相关的问题.

我试图手动添加名称空间:

        XmlNamespaceManager nsMgr = new XmlNamespaceManager(prs.Doc.NameTable);
        nsMgr.AddNamespace("fn", "http://www.w3.org/2005/02/xpath-functions");
        XmlNodeList results = prs.Doc.SelectNodes("//function[starts-with(fn:lower-case(@name),'" + txtSearch.Text + "')]",nsMgr);
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到异常:由于函数未知,此查询需要XsltContext.

c# xpath

7
推荐指数
2
解决办法
6608
查看次数

字符串切片,PHP

有没有办法切片字符串让我说我有这个变量

$output=Country=UNITED STATES (US) &City=Scottsdale, AZ &Latitude=33.686 &Longitude=-111.87
Run Code Online (Sandbox Code Playgroud)

我想以某种方式切片,我想将纬度和经度值拉入单独的变量,subok不能达到目的

php string tokenize

1
推荐指数
1
解决办法
2458
查看次数

使用Prototype在javascript中迭代对象的每个属性?

有没有办法使用Prototype JavaScript框架迭代对象的每个属性?

情况就是这样:我在JSON中得到一个AJAX响应,如下所示:

{foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}
Run Code Online (Sandbox Code Playgroud)

如果我将json响应评估为变量response,我希望能够遍历response.barobj对象中的每个属性,以查看哪些索引为true,哪些为false.

原型有两种Object.keys(),Object.values()但奇怪似乎没有一个简单的Object.each()功能!当我迭代一个时,我可以获取Object.keys()和Object.values()的结果并交叉引用另一个,但这是一个黑客,我相信有一个正确的方法来做到这一点!

javascript prototypejs

89
推荐指数
2
解决办法
10万
查看次数

JMS消息传递性能:大量主题/队列与广泛过滤(消息选择器)

我正在开发一个将大量使用JBoss Messaging(JMS)的项目.我的任务是为其他开发人员构建一个易于使用的Messaging包装器,并且正在考虑使用JMS的Message Selectors来提供过滤技术,以便将不必要的消息发送保持在最低限度.我很好奇是否有人在表演方面有任何经验?我担心JMS提供商可能会陷入消息选择器的困境,从而有效地破坏了整个目的.然而,它比为每种消息类型创建一长串主题/队列要好得多.

最终,我无疑会最终使用两者的组合,但我关注的是对性能的影响,无论我更倾向于哪种方式.

java performance messaging jboss jms

23
推荐指数
2
解决办法
1万
查看次数

尝试将SD卡中的文件附加到电子邮件中

我正在尝试启动Intent来发送电子邮件.所有这一切都有效,但当我尝试实际发送电子邮件时,会发生一些"奇怪"的事情.

这是代码

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("image/jpeg");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Photo");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/dcim/Camera/filename.jpg"));
sendIntent.putExtra(Intent.EXTRA_TEXT, "Enjoy the photo");
startActivity(Intent.createChooser(sendIntent, "Email:"));
Run Code Online (Sandbox Code Playgroud)

因此,如果我使用Gmail菜单上下文启动它会显示附件,让我输入电子邮件的来源,并编辑正文和主题.没什么大不了.我点击发送,它发送.唯一的事情是附件不会被发送.

所以.我想,为什么不尝试使用电子邮件菜单上下文(对于我手机上的备份电子邮件帐户).它显示附件,但在身体或主体中根本没有文字.当我发送它时,附件发送正确.这会让我相信一些事情是错误的.我是否需要在Manifest发布中获得新的权限才能发送带附件的电子邮件?我究竟做错了什么?

email android attachment android-intent

69
推荐指数
3
解决办法
7万
查看次数

如何将电子邮件标记为重要?

我正在使用PHP和Zend-Framework来创建电子邮件.如何将电子邮件标记为重要?Outlook将显示红色"!" 如果标记正确.

email zend-framework zend-mail

2
推荐指数
1
解决办法
1566
查看次数

在jquery ready函数中声明函数的最佳实践

我没有找到一个很好的参考来声明我自己的功能

jquery.ready(function(){});
Run Code Online (Sandbox Code Playgroud)

我想声明它们,因此它们在就绪闭包的同一范围内.我不想让全局的js命名空间变得混乱,所以我不希望它们在ready闭包之外声明,因为它们只针对里面的代码.

那么如何声明这样的函数......我并不是指一个自定义的jquery扩展方法/函数......只是一个常规的'ol函数,它做了一些微不足道的事情,比如:

function multiple( a, b ){ 
    return a * b; 
}
Run Code Online (Sandbox Code Playgroud)

我想遵循jquery建议和函数声明语法.我可以通过声明一个类似上面的乘法函数来使它工作......但是由于某些原因它看起来不正确所以我想我只需要一些指导.

javascript jquery

31
推荐指数
3
解决办法
7万
查看次数