Tag: windows xp

在Windows 7计算机上编写/编译的.NET 4程序将无法在XP上运行

我有一个应用程序,我在Windows 7 Ultimate计算机上使用Visual Studio 2010中的C#.NET 4.0编写。 这个应用程序在Vista和其他Windows 7计算机上运行良好,但每当运行Windows XP的人试图运行它时它会崩溃。 为了重现这一点,我尝试在我的Win XP VMWare机器上运行它,它在那里崩溃了。 不幸的是,它没有给我任何特定的错误,只是告诉我程序崩溃了,需要关闭。 另一位用户发给我的电话如下: Run-time error ‘339’ Component ‘vbalSGrid6.ocx’ or one of its dependencies not correctly registered: a file is missing or invalid. Code 0xe0434352 Flags 0x00000001 当我尝试在我的Virtual XP机器上运行它时,我没有得到那一点,我也确保在那里安装.NET 4.0。 可能导致这种情况的原因是,如果XP支持.NET 4框架,为什么app不会在XP中运行? 程序中使用的组件:DataGridView,ComboBox,Buttons,Labels,LinkLabel,NewtonSoft的JSON解析器,以及它的相关内容。 我很困惑,完全不知道从哪里开始。 想法? 更新 :嗯,尝试在XP上运行我最近创建的其他应用程序,它加载得很好。 两者之间唯一的主要区别(在我使用的组件中)是我使用NewtonSoft的JSON库,我实际上认为它是.NET 3.5组件。 更新2 :只是为了踢,我试图在我的Wind7机器上以“Windows XP SP3”兼容模式运行程序,它运行正常。 当然,我不知道“兼容模式”如何模仿真正的XP SP3环境,但我想我还是会给你信息。

FIPSvalidation密码算法的问题

我在Windows XP Pro版本2002 SP 3下运行带有.NET 3.5 SP 1的Visual Studio 2008版本9.0.30729.1 SP,带有Intel Core 2 Duo E8400 3 GHz处理器。 我正在开发一个使用Microsoft Patterns&Practices组的复合应用程序库(CAL)的C#WPF应用程序。 我在XAML中收到以下compliation错误: “MC1000:此实现不是Windows平台FIPSvalidation的加密算法的一部分。” 我找到了一个应该在Microsoft知识库aritcle 935434中修复此问题的修补程序。但是,此修补程序的安装程序报告以下错误: “Windows Installer服务无法安装升级修补程序,因为要升级的程序可能会丢失,或者升级修补程序可能会更新程序的其他版本。请确认您的计算机上存在要升级的程序,并且您有正确的升级补丁。“ 此修补程序的页面列出了.NET 3.0作为先决条件。 虽然我正在使用.Net 3.5,但我的机器也安装了.NET 3.0。 因此,我希望安装此修补程序。 我希望即使这个修补程序是针对.NET 3.0的,它仍然可以解决我的问题。 无论如何,我无法安装此修补程序。 有没有人有任何关于我如何能够通过“这个实现不是…的一部分”的编译错误的替代建议? 谢谢,戴夫

在Windows XP中使用C#在登录屏幕上显示窗口

我正在尝试使用C#创建一个服务,启动一个可以在Windows XP登录屏幕上显示的进程。 我发现一些代码在C ++中执行此操作。 C ++代码用于创建另一个进程,STARTUPINFO.lpDesktop设置为“WinSta0 \ WinLogon”。 然后,创建的进程将显示在Windows登录屏幕上。 我似乎找不到使用System.Diagnostic.Process类在C#中指定新进程的“桌面”的方法。 有谁知道如何用C#做到这一点?

更改打印机默认纸张尺寸

我在打印机上定义了几种自定义纸张尺寸(打印机默认设置)。 我需要能够选择其中一种格式作为默认格式。 程序化(C#)解决方案是理想的,但命令行也可以。 现在,我可以获得打印机上定义的纸张尺寸(名称/尺寸)列表,我可以找出哪个是默认值。 为了选择另一种格式作为默认格式,我到目前为止唯一的解决方案是更改devMode结构上的dmPaperSize字段; 但是我找不到与所需纸张格式相对应的正确值。 所以我将dmPaperSize设置为0,然后递增它,直到打印机上出现正确的格式。 这在一些打印机上需要很长时间。 是否有另一种方法可以在默认打印机上选择(按名称)默认的papaer格式?

如何以编程方式更改Windows桌面墙纸?

我希望使用C#为Windows XP设置壁纸。 我已经开发了代码,因此它在Windows 7中完美运行,但显然它与XP不同。 我将壁纸添加为资源,将其编译操作设置为内容并始终复制。 奇怪的是,它在桌面属性对话框中设置了正确的墙纸名称。 但是,壁纸未设置。 我的代码如下所示: public sealed class Wallpaper { Wallpaper() { } const int SPI_SETDESKWALLPAPER = 20; const int SPIF_UPDATEINIFILE = 0x01; const int SPIF_SENDWININICHANGE = 0x02; [DllImport(“user32.dll”, CharSet = CharSet.Auto)] static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); public enum Style : int { Tiled, Centered, Stretched […]

在不使用System.Diagnostics.Process.Responding的情况下查找进程是否响应

今天是个好日子。 这个问题是另一个问题的一部分,它已经解决了,我意识到我认为这毕竟是问题,但事实并非如此。 还是要感谢我,我学到了很多东西。 我的应用程序使用IE进行大量工作,IE不时被重定向到一个网站,其中包含一些糟糕的Javascript代码,最终阻止了IE界面。 一旦我的应用程序上的所有内容都在同一个Thread上运行,就会阻止我的应用程序。 为了解决这个问题,在启动时我的应用程序在另一个Thread中运行一个static method ,每15秒做一次简单的检查IE是否响应,如果IE没有响应,他关闭所有进程,解放我的锁定应用程序主Thread然后我的应用程序可以恢复其工作。 要查找IE进程是否正在响应,我有一个简单的代码,如下所示: bool terminate = false; foreach (System.Diagnostics.Process exe in System.Diagnostics.Process.GetProcesses()) { if (exe.ProcessName.StartsWith(“iexplore”)) { if (exe.Responding == false) { terminate = true; break; } } } // Code to close all IE process’s… 为了使Process.Responding属性查找进程是否正在响应,并根据MSDN上的信息,此属性需要另一个名为MainWindowHandle属性才能完成检查过程。 如果MainWindowHandle不可用,即使进程没有响应, Process.Responding总是返回true。 由于某些我不知道的原因。 在Windows XP中, MainWindowHandle不可用,因此Responding不准确。 这就是为什么我需要知道另一种方法来查找特定进程是否在Windows XP中响应。 任何帮助表示赞赏,谢谢。 PS:如果你在这里寻找一个网站来冻结IE,请访问: http : //aboutmycollege.com/ […]

如何在Windows XP上以管理员身份运行其他应用程序

我使用了此处所述的应用程序清单文件,使我的应用程序的一部分以提升的权限运行(它需要)。 因此,在需要时,主程序只使用Process.Start调用一个小程序集,然后处理需要管理员权限的任务。 但是,如何在Windows XP上执行相同的操作? 似乎XP只是忽略了这个清单并在当前用户上下文中运行小程序集。

在Windows XP下通过远程桌面渲染WPF有问题吗?

我听说Windows XP上的远程桌面不支持WPF原语。 这意味着,如果您在Vista机器上运行WPF应用程序并将其显示在XP机器上(通过远程桌面),则显示将作为压缩位图发送。 通过DirectX 11(?)在Vista-Vista通信中解决了这个问题,但这不会在XP上提供。 显然这里有性能影响,我想在开始向WPF开发应用程序之前了解它。 有关此主题的一些信息可在此处找到: http://blogs.msdn.com/tims/archive/2007/01/05/comparing-wpf-on-windows-vista-v-windows-xp.aspx 请参阅以上链接中的评论(引用): 对于SpongeJim的问题,这是由MIL(媒体集成层)完成的,它是处理组合的WPF的底层核心。 在Vista / Vista远程桌面连接上,MIL原语被远程处理,然后重新构建。 在其他组合(例如2003 / XP)上,远程处理的是位图,这显然是带宽密集的。 关于这个主题的更多深度可以在Greg Schechter的博客上找到,特别是在这个条目中: http : //blogs.msdn.com/greg_schechter/archive/2006/06/09/623566.aspx 有没有人对此问题有任何经验或更新的信息?

C#:如何唤醒已关机的系统?

是否有任何Win32 API用于唤醒在特定时间关闭的系统? 我见过一个名为Autopower On的程序,可以在指定的时间启动系统。

如何使.NET Windows服务检测登录,注销和切换用户事件?

我需要在Windows XP SP3上跟踪用户中的当前用户(使用控制台的用户)。 我尝试了以下方法: Microsoft.Win32.SystemEvents.SessionSwitch:适用于单个登录/注销事件,但无法检测切换用户。 如果发生以下情况: userA登录 userA切换用户 userB登录 userB注销 userA恢复会话 SystemEvents.SessionSwitch未检测到事件3和4 监视“安全”事件日志:事件不一致并且无序到达。 例如,如果重播上面的列表,我会在恢复会话后收到事件ID 528(登录),然后是userA的两个538(Logoff)。 检查event.TimeGenerated没有帮助。 如果在SecPol.msc上禁用审核,则此方法也不起作用。 P /调用WTSRegisterSessionNotification:工作正常。 我必须创建一个隐藏的表单,覆盖其WndProc以处理WM_WTSSESSION_CHANGE消息,然后调用WTSQuerySessionInformation以获取与该事件关联的用户名。 这种方法看起来太复杂了,有没有更简单的方法? 编辑: 每n毫秒调用WTSGetActiveConsoleSessionId也可以,但我正在寻找一个基于事件的方法。