Articles of .net

未指定SizeToContent时的窗口大小

当使用以下XAML时,窗口大小不是5000×5000,而是button被裁剪的一些小窗口。 <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" > <Button Width="5000" Height="5000">XXX</Button> </Window> 从我所知道的大小,我没有指定的SizeToContent属性,默认是“手动”,所以它会使用*窗口的大小由其他属性,包括宽度,高度,MaxWidth,MaxHeight,MinWidth和MinHeight 。 *从WPF Windows概述看来,其他属性是FrameworkElement :: MinHeight / Width和FrameworkElement :: MaxHeight。 但是,由于分钟的默认值为0,最大值是无穷大,宽度/高度是楠….发生了什么事? WPF在哪里获得窗口大小? 任何指向正确的方向将不胜感激。

COM不能启动Out-of-process .Net服务器编译为AnyCPU

我试图让COM启动我的进程外的.NET COM服务器。 如果服务器进程是用x64编译的,但是如果我使用AnyCPU(这是我想要的),那么它会挂起一段时间,并最终以0x80080005(CO_E_SERVER_EXEC_FAILURE)失败。 我怎样才能使这个工作? 我在64位计算机上运行:使用Visual Studio 2008 SP1的Windows 7。 我可以看到在任务pipe理器,它确实启动我的服务器。 所以我想问题是在COM和服务器之间的通信(类注册)。 我的testing客户端应用程序是用C#编写的,但不pipe它是为x86还是x64编译的。 用32位C ++编写的东西也会出现问题。 如果我使用x64重build服务器并运行它,然后重build为AnyCPU,则COM可以启动它。 重启将使我回到原来的情况。 也许COM预先不知道要使用的位数,而以前的执行是有帮助的。 我find了Andy McMullen的博客文章,并尝试将CLSCTX_ACTIVATE_64_BIT_SERVER传递给CoCreateInstance(),但是之前触发了一个失败:0x80040154(REGDB_E_CLASSNOTREG)。 我在COM注册中做错了什么? 你可以在下面看到,这很简单。 当以64位运行时会发生注册,并且当客户端是64位时会发生问题,所以不应该涉及Wow6432Node。 另一个人也有类似的问题 ,但MSFT的答案是混乱的。 他似乎暗示它只能通过DCOM(请参阅链接)或COM +工作。 我怀疑要么会是一个非常多的工作,而且比分配我的.exe作为x64和x86构build更差。 您可能想知道为什么我正在实施IPersistFile。 这是因为我真正的问题是从一个32位的C ++程序工作到我的AnyCPU .Net程序的BindMoniker()。 我已经减less了我的问题到这里提出的更简单的例子。 这里是客户端代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("ole32.dll", ExactSpelling = true, PreserveSig = false)] [return: MarshalAs(UnmanagedType.Interface)] static […]

WPF – 在SYSTEM帐户下执行进程时性能较低

问题描述 我有一个WPF应用程序,通常在具有pipe理员权限的本地用户帐户下运行。 但是,在某些情况下,该进程是由在SYSTEM帐户下运行的服务或脚本启动的,因此该进程也在SYSTEM帐户下运行。 问题是当进程在SYSTEM帐户下运行时,有一些明显的滞后(UI不是很响应)。 我使用perfmon进行了一些挖掘,没有发现任何可疑的东西(CPU没有超载,没有抛出exception的exception,没有内存泄漏等)。 我也检查了事件日志,并没有发现任何有用的(没有警告/错误,只有与系统无关的信息)。 我首先以为这是由于模拟的上下文中执行的过程,但即使没有模拟(我使用PsExec.exe -i -s在SYSTEM帐户下启动它),滞后仍然存在。 任何想法,这将是从哪里来的? 不要犹豫,问你是否需要更多的信息,我主要是寻找一些有助于find根本原因的想法(显而易见的解决方法是不启动SYSTEM帐户下的过程,但它不是一个修复)。 此外,请注意,应用程序在Windows Embedded Standard(XP SP3)的自定义版本下运行,并且在具有电容式触摸屏的设备上运行。 我的问题 我的问题不是“我怎么解决这个问题?” 但是“为什么在SYSTEM帐户下应用程序运行性能低下? 更新1 我试图改变Windows的性能优化设置为@Sanderbuild议,没有任何改变( http://support.microsoft.com/kb/308417 )。 更新2 我也做了一个testing使用这个应用程序: http : //www.kynosarges.org/WpfPerformance.html#Application 当在每个帐户下运行应用程序时,第一次GDI +testing(基本上绘制了一堆三angular形),我在SYSTEM帐户下的运行时间总是大约两倍,这导致我认为这不是严格的WPF限制。 再次,除了执行进程的帐户之外,我没有任何改变。

将用户凭据保存在Windows应用程序中

是否有一个最佳实践的方式来存储在Windows应用程序的凭据,无论是内置的API或只是一个推荐的encryptionalgorithm? 跟SVN,Spotify和Skype一样。 编辑:我的意图是使用Web服务,从它的身份validation服务返回一个令牌。 其他服务接受该令牌作为参数。 但是,令牌在30分钟后过期,因此存储令牌本身对于此任务来说毫无意义。

为什么我的控制台应用程序有命令历史?

我写了一个控制台应用程序,它本质上是一个Console.ReadLine() – Loop。 当应用程序正在等待input时,按向上箭头键迭代所有以前的input行。 我的应用程序不包含此function的任何代码。 Windows提供了哪些内容? 我怎样才能禁用它? 我只能想象它是控制台子系统的一个function,或者在Console.ReadLine()中实现。 以下是一些展示所描述行为的示例代码: namespace ConsoleApplication { class Program { static void Main(string[] args) { string input; do { input = System.Console.ReadLine(); } while (input != "exit"); } } } 我想现在禁用历史loggingfunction,稍后使用我自己的代码重新实现它。 目前的行为太有限了。

获取鼠标指针下方的窗口句柄,同时忽略半透明窗口

我已经创build了一个半透明的窗体(60%的不透明度与黑色背景颜色),我的应用程序启动,最大化,在整个屏幕上。 基本上,它在整个桌面上投射灰色。 当用户将鼠标hover在桌面上的某个窗口上时,我想获取该窗口的句柄(hWnd)。 做这个工作的简单方法是: 暂时隐藏我的表单(或者,暂时将我的表单的不透明度设置为0.0) 调用[GetCursorPos] [1] 调用[WindowFromPoint] [2] 再次显示我的表单 这种方法的问题是我的表单/屏幕闪烁,我不喜欢。 我试图用两种方法解决这个问题: 我认为应该有办法通过调用ChildWindowFromPointEx (传递桌面和CWP_SKIPTRANSPARENT的hWnd),直接在窗体的窗口下获得窗口的hWnd,但似乎没有工作。 我也玩过[ChildWindowFromPoint] [4]和[RealChildWindowFromPoint] [5],但没有成功。 (PS Raymond Chen讨论了这些调用之间的差异, 在这里 ,我认为ChildWindowFromPointEx被devise为完成我所需要的) 我试图通过使用(1) SendMessage(GetDesktopWindow(), WM_SETREDRAW, false, 0)在我隐藏我的表单和(2) SendMessage(GetDesktopWindow(), WM_SETREDRAW, true, 0) SendMessage(GetDesktopWindow(), WM_SETREDRAW, false, 0)之前防止整个桌面刷新(types的“冻结”屏幕瞬间SendMessage(GetDesktopWindow(), WM_SETREDRAW, true, 0)隐藏我的表单后。 这不是很正确:屏幕的某些区域会冻结,会出现一些奇怪的黑色块,但是我知道,(1)确实有用,因为有一次我打电话给(1),没有(2)和我的桌面出现完全冻结(不得不重新启动,即使TaskMgr没有正确呈现)。 我也尝试过在窗体上使用SuspendLayout和ResumeLayout,但我不认为它们是为了处理我的情况。 任何帮助将不胜感激。

SqlServerSpatial110.dll无法在Windows Azure部署上复制

我有一个在Windows Azure上部署的exsting。 但部署失败,出现以下错误。 如何解决他的问题 Copying file SqlServerTypes\x64\SqlServerSpatial110.dll to C:\DWASFiles\Sites\<project>\Temp\b3d105f6-8fd0-4093-9957-8174422abded\SqlServerTypes\x64\SqlServerSpatial110.dll failed. Could not find file 'SqlServerTypes\x64\SqlServerSpatial110.dll'. 我该如何解决这个问题?

C# – 使用File.WriteAllLines

下面的方法会覆盖输出文件(process.txt)吗? private static void CompareOrig() { File.WriteAllLines("process.txt", File.ReadAllLines("process2.txt").Except(File.ReadAllLines("process.txt"))); } 补充信息: 问题是,当从process2.txt读取行时,它们被写入到process.txt文件中,因此覆盖该文件中的所有现有数据。 相反,我怎么能追加输出到process.txt? 例如 File.AppendAllText("process.txt")

Msvcr71.dll Msvcp71.dll丢失

我写了一些应用程序。 但是,当我在几个操作系统上运行它,我们正在得到这两个文件丢失。 当我将它们添加到Windows \ system32文件夹应用程序工作正常。 我看到这个解决scheme如何安装msvcr71-DLL正确,但有什么办法可以做 我的应用程序使用更新版本的最新.net附带的文件 分配。 感谢帮助。

我在哪里可以放置除了没有pipe理权限的LOCALMACHINE -Registry以外的常用用户数据

在除registry之外的其他Windows系统中,我可以在哪里放置可以被所有用户访问的普通用户数据。 我需要这样做, 而不要求提升pipe理员权限