Articles of .net

如何从.NET客户端应用程序加载URL

在Windows上使用C#和.NET框架从胖客户端应用程序打开URL的首选方式是什么? 我希望它使用默认的浏览器。

Xamarin Studio不能build立一个控制台应用程序

我的问题类似于: Xamarin基础。 构build失败。 查看构build日志的细节 错误37977 – 如果没有安装.NET 4.5.1,C#consoleApp模板不会生成(但4.5是) 但没有任何解决scheme有帮助。 当创build一个简单的控制台应用程序,然后build立它,IDE说: 错误:生成失败。 有关详细信息,请参阅构build日志 (安慰) 而我找不到构build日志。 日志文件夹中的文件 – Ide*.log文件说: 警告[2016-06-29 14:24:56Z]:从SystemAssemblyService请求未注册的TargetFramework“.NETFramework,Version = v4.5.1”,返回空的TargetFramework 错误[2016-06-29 14:24:56Z]:获取引用的程序集时出错System.InvalidOperationException:找不到用于程序集的兼容框架… –snip– .NET v4.5.1是否与Xamarin Studio 6.0兼容?

从registry中检索Windows密码提示

我一直在尝试以编程方式提取Windows 7的Windowslogin密码提示,并且知道可以从registryHKLM \ SAM \ SAM \ Domains \ Account \ Users \“userkey”\ UserPasswordHint中的以下位置检索它。但是,我无法弄清楚是否有任何方式找出当前login用户编程的用户名?

InvokeHelper()抛出Access被拒绝exception

社区,我相当有趣,同时又有很重的问题。 我有VB.NET应用程序+服务+ C + +应用程序。 C ++应用程序生成一些数据,并使用InvokeHelper()方法进行callback: InvokeHelper(0x60030000, DISPATCH_METHOD, VT_EMPTY, NULL, parms, eventType, eventValue); 第一个参数是应该调用的方法的缺点。 奇怪的做法,但这不是我的代码,我不能改变这种方式。 在服务中,我有方法标记dispid属性从C ++应用程序获取此callback。 <DispId(&H60030000)> Public Sub ServerEvent(ByVal vEventType As Integer, ByVal vEventValue As Object) RaiseEvent ControlPanelStateChange(vEventType, vEventValue) End Sub 如果我以pipe理员身份login,此代码正常工作。 但是,如果windows用户没有pipe理员权限,在调用InvokeHelper()方法之后,会发生下一个exception: application.exe中0x75B7C42D(KernelBase.dll)的第一次机会exception:0x80070005:访问被拒绝 你有什么想法? 我玩DCOM的权限,但结果是一样的。 任何帮助将是太棒了!

如何使用C#Windows应用程序将字节中的图像写入MS WORD

我试图从FileStream , StreamWriter写入数据到一个word文件。 当数据是文本格式(使用StreamWriter )时,它工作正常。 但是,当我用Binarywriter (用于将文字写入Word文档)尝试相同的方法时, Binarywriter Word文档写入不正确。 在下面的代码中, lstOrderedSpares[index].SparePicture是包含图像数据的字节数组。 我需要一个没有OPENXML的解决scheme。 这是我迄今为止所尝试的: 这里是我的button点击我初始化的数据类和List private void btnCreateQuotation_Click(object sender, EventArgs e) { try { Quotation aQuotation = new Quotation(); aQuotation.QuotationId = quotationId; aQuotation.QuotationDate = lblQuotationDateValue.Text; //Reading from Datagridview and adding to List<Spare> List<Spare> lstOrderedSpares = new List<Spare>(); if (dataGridView1.Rows.Count > 0) { foreach (DataGridViewRow dr in […]

什么时候由.NET进程分配的内存被释放回Windows

安装程序 .NET为分段的每一代堆(0,1,2,LOH)分配内存,以便在启动时获得连续的内存块,并在收集之后尝试满足分配请求。 这个分配给每个堆的内存可能会随着应用程序“升温”而平稳下来,除了第2代和大对象堆以外。 在垃圾收集期间,每个堆(0,1,2)都被扫描和压缩,除了刚刚扫过的大对象堆(LOH)之外。 我理解集合的“扫描”部分意味着GC确定哪些对象不再是根源,并且可用于收集(或定稿),而“紧凑”意味着在堆中仍然活着的地址被重新组织可用的剩余堆有更多可用的连续内存。 由于超过了堆中每个段的预算,.NET将分配另一个段来完成分配(如果可能的话)。 问题 我的问题归结为每个堆中的内存会发生什么情况,而不是由应用程序 (提交)使用,但仍保留.NET? 什么时候释放回操作系统? 。 我相信这是一个过程可能会消耗大量内存的情况(虚拟大小非常大,但是私有字节很小),但是在检查其堆时大部分是可用空间 。 另外需要注意的是,堆的总大小也可能相当小 ,并且不考虑进程消耗的内存。 没有阻塞的终结器,所有看起来都很健康的进程 – 它可能已经运行了几个星期,然后触发监视器警报(例如)。 尝试进一步澄清问题,如果您阅读了Tess .NET内存pipe理 – 餐厅类比 ,如果表是堆段,那么餐厅是否会丢失表(例如,免费的堆段)? 编辑 删除了工作组和鸡只的混淆参考 添加了对Tess餐厅类比的参考

File.Exists对不存在的文件返回true

我正在一个应用程序保存Path.GetDirectoryName(FilePath)中的文件,其中FilePath = Application.ExecutablePath包含一些有关授权的信息。 如果我从VS运行程序,它的工作正常,但如果我做一个安装程序并安装,然后运行它,程序认为该文件已经存在。 我改变了我的程序显示在一个消息框我的FilePath和是否File.Exists(FilePath)返回true或false 。 所以我看了看那条路,启用了隐藏和系统文件,F5'd几次,什么也没有。 该文件不存在,但File.Exists(FilePath)返回true。 任何想法为什么冷这发生,我怎么能解决它? 我正在使用Windows Vista,Visual Studio 2010,C#,并使用VS的安装项目创build了我的安装程序。 编辑:我的path是: C:\ Program Files(x86)\ Helium \ License.xml 。 这是我的代码的一部分: MessageBox.Show("LicenseFileName: " + LicenseFileName); // LicenseFileName: C:\Program Files (x86)\Helium\License.xml System.Diagnostics.Process.Start(LicenseFileName); // Nothing happens MessageBox.Show("File.Exists(LicenseFileName): " + File.Exists(LicenseFileName)); // File.Exists(LicenseFileName): true 忘了说,我已经安装了应用程序之前,所以文件曾经存在。 我使用控制面板卸载。

在Windows资源pipe理器中显示自定义标题或列

我的应用程序添加一些自定义元数据文件 我想要像这样在Windows资源pipe理器中显示它: 或这个: 有没有办法在.NET中做到这一点?

调整窗口大小会导致黑条

我有一个窗体,它在构造函数中设置这些样式: this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.ResizeRedraw, true); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); 我在Paint事件中绘制了一些矩形。 表单上没有控件。 Hovewer,当我调整表格的大小时,表格的右下方有黑条。 有什么办法摆脱他们? 我已经尝试了一切,在WndProc监听WM_ERASEBKGND ,手动绘制WM_PAINT上的窗体,实现自定义双缓冲区等。还有什么我可以尝试? 我发现这个: https : //connect.microsoft.com/VisualStudio/feedback/details/522441/custom-resizing-of-system-windows-window-flickers ,它看起来像是DWM中的错误,但我只是希望我能做一些解决方法。 请注意,我必须使用双缓冲,因为我想在Paint事件中绘制相当强烈的graphics表示。 我在C#.NET 2.0,Win7中开发。 状态更新1 我设法通过自己实现resizefunction来摆脱大部分黑色条纹。 Hovewer还有一些小毛病。 有没有办法一次resize和paint操作? 这里是我需要做的一个伪代码 : IntPtr hDC; var size = new Size(250, 200); IntPtr handle = API.PaintAndResizeBegin(this.Handle /* Form.Handle */, size.Width, size.Height, out hDC); using (var g = Graphics.FromHdc(hDC)) { this.backBuffer.Render(g, […]

在确定菜单项目的位置时是否有任何标准要遵循?

在开发基于Windows表单的应用程序时,在devise表单的主菜单系统时是否有任何标准? 大多数带有菜单系统的Windows应用程序都将具有标准的File | 编辑| 查看| 工具| 帮助菜单。 你如何确定任何额外的顶级菜单项的位置? 另外,你如何确定子菜单项的位置? 例如,您要遵循什么规则或原则来确定项目是否应放置在“编辑”,“工具”或可能是您自己的非标准顶级菜单中? 我在这里寻找两件事情: 发布的资源(网页或打印),详细说明这个(特别是如果它来自微软),或从UX或UI专业人士的其他材料。 你自己的意见。 基于Gamecat提到Ribbon的响应,我将把它扩展到Ribbon。 你如何确定哪个button出现? 寻找如上所述。 相关问题: https : //stackoverflow.com/questions/126797/is-there-a-style-guide-for-guis-somewhere