暴露给VBA(COM)的C#属性:运行时错误’424’:需要对象

这个C#代码在.NET 4.5 ComVisible程序集中: C#代码 [InterfaceType(ComInterfaceType.InterfaceIsDual)] [Guid(“22341123-9264-12AB-C1A4-B4F112014C31”)] public interface IComExposed { double[] DoubleArray { get; set; } object[] ObjectArray { get; set; } object PlainObject { get; set; } double ScalarDouble { get; set; } } [ClassInterface(ClassInterfaceType.None)] [Guid(“E4F27EA4-1932-2186-1234-111CF2722C42”)] [ProgId(“ComExposed”)] public class ComExposed : IComExposed { public double[] DoubleArray { get; set; } public object[] ObjectArray { […]

如何终止挂起的APM操作

如果您有待处理的操作,例如 stream.BeginRead(_buffer, 0, _buffer.Length, _asyncCallbackRead, this); 并关闭流提供程序,例如 serialPort.Close(); 你不出所料地导致例外。 是否有一种首选方法可以在关闭端口之前取消挂起的APM操作? 科尔比的答复不是我希望的答案,但他确实至少关闭了一个毫无结果的大道。 很高兴我找到了解决方案。 对于每个流,我在类DeviceSession维护各种状态信息。 此类有一个方法ReadStream ,它为处理传入数据的AsyncCallback提供实现。 请注意, _asyncCallbackRead和以下划线开头的所有其他变量是在DeviceSession的构造函数中分配的类私有成员。 构造函数还提供对_stream.BeginRead的初始调用。 void ReadStream(IAsyncResult ar) { if (IsOpen) try { DevicePacket packet; int cbRead = _stream.EndRead(ar); _endOfValidData += cbRead; while ((packet = GetPacket()) != null) CommandStrategy.Process(this, packet); _stream.BeginRead(_buffer, _endOfValidData, _buffer.Length – _endOfValidData, _asyncCallbackRead, null); } catch (Exception ex) { […]

从RichTextBox中提取图像

我有一个应用程序,用户可以将图像插入RichTextBox。 我希望能够用一些令牌替换RTF中的所有图像,并将图像存储在单独的文件中。 我稍后会将图像注入RTF。 我设法让插入工作,但最终通过剪贴板粘贴它们(非常像在C#中将图像插入RTF文档 )。 现在的麻烦是如何提取图像。 如何以编程方式选择RichTextBox中的图像? 我是否必须通过剪贴板返回? 就像是: IDataObject data = Clipboard.GetDataObject(); Clipboard.Clear(); _RichTextBox.Select(/* The image */); _RichTextBox.Copy(); Image img = Clipboard.GetImage(); img.Save(“myImage.png”, System.Drawing.Imaging.ImageFormat.Png); Clipboard.Clear(); Clipboard.SetDataObject(data); 有没有更优雅的解决方案,不需要通过剪贴板? 谢谢你的帮助!

如何在c#中使用Windows搜索服务

我正在处理一个应用程序,用户可以在本地计算机或网络上搜索文件或文件夹。 我正在使用DirectoryInfo.GetDirecotories()。 (a)但我还想添加Windows 7用于搜索的function,我相信它使用索引。 我还在msdn上看过“Windows搜索服务”,但我不确定哪种方式最好,查询索引目录或使用搜索服务,有什么建议吗? (b)我想知道是否有人可以在C#中给我一个搜索索引目录的小例子。 提前致谢。

C#十进制格式查询

我试图格式化一个小数,以便它将显示如下: 14.5应显示为“14.50”14.50应显示为“14.50”14.05应显示为“14.05”14.00应显示为“14” 是否可以使用单个字符串格式,即不使用条件格式? 我试过“0。##”(不满足第一个例子)和“0.00”(不满足最后一个例子)。 谢谢。

垂直翻转字节数组中位图的算法

我正在通过Mono For Android为Android中的便携式蓝牙打印机编写一个用于打印位图的课程。 我的类用于从流中获取像素数据,以便可以以正确的格式将其发送到打印机。 现在这个类很简单,它只读取每个像素的高度,宽度和位数。 使用它读取的偏移量并将像素数据返回给打印机。 现在我只使用每像素1位黑白图像。 我正在使用的位图是Windows格式。 这是原始图像: 这是打印的结果,第一张图片没有任何变换。 第二个是使用以下代码修改BitArray的结果: BitArray bits = new BitArray(returnBytes); BitArray flippedBits = new BitArray(bits); for (int i = 0, j = bits.Length – 1; i < bits.Length; i++, j–) { flippedBits[i] = bits[j]; } 我的问题是: 当我使用字节数组时,如何垂直翻转图像。 我无法找到执行此操作的算法,所有示例似乎都建议使用我无法使用的已建立的图形库。 编辑: 我的位图保存在一维数组中,第一行是字节,第二行是第三,等等。

在服务器端validationrecaptcha

我正在其中一个项目中使用Google recaptcha。 我在aspx页面中添加了recaptcha控件。 现在我想validation在recaptcha中输入的值是否正确。 我怎么能在按钮点击事件中完成它? 我正在使用c#。

使用.NET检测用户是否远离PC

我有一个桌面应用程序,我想知道两件事: 用户当前是否在PC上(更具体地说,他是否向PC提供任何输入),因此如果需要,我可以将其状态更改为“离开”; 和 屏幕保护程序是否正在运行,因此我可以在此期间执行更多CPU密集型工作。 我正在使用C#/ .NET。 您如何建议解决这两项任务? 注意 :WIN32调用和任何非托管代码解决方案一样好。

Windows Phone 8从电话库获取拍摄的照片

我正在互联网上搜索如何在我的应用程序中执行此操作。 似乎有很多指南如下: http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.xna.framework.media.medialibrary.aspx 但是,他们使用XNA进入MediaLibrary。 不幸的是,在Windows Phone 8中,这是不可用的(至少对我而言)。 有没有办法获取手机相机应用程序已拍摄的照片,并从应用程序保存到该文件夹​​? 我为某个含糊不清的问题而道歉。 任何帮助是极大的赞赏!

请解释Timer事件async / await语法

我在这里和这里研究了asynch和await语法。 它真的有助于理解用法,但我在MSDN上找到了一个有趣的语法示例,我只是不明白。 问 :有人可以向我解释一下这个System.Timers.Timer事件注册的语法与asynch await:为什么你可以使用lambda表达式中已经存在的async await关键字? Timer timer = new Timer(1000); timer.Elapsed += async ( sender, e ) => await HandleTimer(); private Task HandleTimer() { Console.WriteLine(“\nHandler not implemented…” ); } 问题2:如果sender没有出现在HandleTimer方法中,那么sender和e的两个参数是什么?