Tag: windows xp

通过服务删除Windows登录屏幕

我试图从服务启动的可执行文件中删除Windows登录屏幕(winlogon)。 该服务将自动启动Windows并等待来自另一台计算机的命令。 当它收到命令时,它将启动一个exe,它将在特定的用户名下启动cmd.exe。 该服务已经存在。 我有编写这个可执行文件的工作。 目前,我编写了可执行文件(CmdLogin),它通过调用LogonUserW,ImpersonateUser和CreateProcessWithLogonW在不同的用户下启动cmd.exe。 我将lpDesktop指定为“WinSta0 \ Default”。 唯一的问题是该服务必须在管理员帐户下运行(但这是一个不同的问题)。 从命令提示符调用时(即使在Windows 7上),这完全正常。 当用户登录并查看他的桌面时(例如我在同一台机器上进行调试时)从服务调用时,这也有效。 但是,正如我上面所说,我的真正要求是即使显示Windows登录屏幕也能正常工作。 目前,exe提供了正确的退出代码,但窗口没有出现。 但是,当用户登录时,他会在桌面上看到cmd窗口。 我找到的一个解决方案是使用“WinSta0 \ WinLogon”代替默认的lpDesktop。 我还没试过。 但是,这看起来会在登录屏幕上显示cmd窗口。 我真正需要的是实际模拟用户登录winlogon并显示他的实际桌面(以及cmd窗口)。 我环顾四周,发现了GINA和Winlogon通知包。 他们看起来像是一种矫枉过正,我不确定这是否能解决这里的目的。 此外,这些在Windows Vista中已被弃用,这使我认为有一种更好,更简洁的方法来解决这个问题。 有关我应该用什么来实现这一目标的任何建议? 为了记录,可执行文件在C#中,使用P / Invoke进行API调用。 我愿意使用我可以从这个C#应用程序调用的C dll。 谢谢, 侯赛因

在Windows XP登录屏幕(.NET / Pinvoke)上运行进程(使用GUI)

我需要在登录屏幕上编写一个运行应用程序(使用gui,例如calc.exe )的小服务 。 我已经找到了这个问题(和答案): 在Windows 7欢迎屏幕上运行一个进程 如果您不理解这是如何工作的,请阅读代码注释: // grab the winlogon process Process winLogon = null; foreach (Process p in Process.GetProcesses()) { if (p.ProcessName.Contains(“winlogon”)) { winLogon = p; break; } } // grab the winlogon’s token IntPtr userToken = IntPtr.Zero; if (!OpenProcessToken(winLogon.Handle, TOKEN_QUERY | TOKEN_IMPERSONATE | TOKEN_DUPLICATE, out userToken)) { log(“ERROR: OpenProcessToken returned false – […]

.NET在Windows任务栏中嵌入应用程序

我们都看过了,现在我想做。 如何使用winforms应用程序实现此效果? alt text http://sofzh.miximages.com/c%23/Windows Media Player – Taskbar Player.png

在开发/测试环境中模拟Active Directory登录

目前正在构建一个WPF应用程序,该应用程序将在用户登录到域(DC)上的Windows PC的环境中运行。 该应用程序将要求用户在启动时再次输入其登录名和密码,并且将针对Active Directoryvalidation登录名/密码(如果我的术语在此处不正确,请原谅我)。 登录是全有或全无的; 如果他们的密码是正确的,那么就没有(当前)关注检索组,权利或任何性质的东西。 开发环境不是基于AD的,并且不在域中。 是否有任何模拟此类登录的选项,而无需完成设置域控制器并向其添加开发和测试环境机器的过程? 在项目过程中将有机会进行部署测试(IOW创建测试登录应用程序,将其部署到用户并确保在最终部署之前登录工作)。 同时,我需要使用一些在test / dev环境中工作的排序实现。 有什么想法吗? 你会建议不要模拟这个而不是设置DC吗?

使用C#包装器从任务栏中删除应用程序?

有没有办法为现有应用程序构建一个C#包装器,允许我从任务栏中删除它? 更多信息: 我有一个计时器应用程序,我想使用但不要因为它很好……很糟糕。 请参阅https://superuser.com/questions/92774/quickbooks-timer-replacement-windows 。 所以为了减少它,我想知道我是否可以构建一个包装器,然后只是与该包装器进行交互。 从任务栏中删除计时器,然后让我的应用程序隐藏/显示它将是朝这个方向迈出的一步。 另一种选择是对计时器进行逆向工程。 但那是另一天的又一个项目。 现在我很乐意隐藏这件事。

声称桌面房地产类似于Windows任务栏的WPF应用程序

我正在构建一个WPF应用程序,该应用程序旨在充当通知工具栏,用于向企业软件平台的用户发送消息。 它是一个特定高度的栏,一直延伸到用户桌面底部,直接位于Windows任务栏上方。 我想做的是让我的应用程序“声明”或“保留”它占用的空间,不允许任何应用程序加载它。 例如,如果您要调整Windows任务栏的大小并使其变大,它将移动图标和快捷方式,并且最大化窗口将仅使用任务栏尚未使用的桌面区域。 不知道如何解决这个问题? 它已经被设置为桌面上最顶级的项目,所以这不是我的问题。 现在,如果你打开另一个应用程序并最大化它,那么底部X像素将隐藏在我的工具栏应用程序后面。 (请注意,我已经添加了Windows 7和Windows XP标签 – 我希望能够在WinXP上实现此function,但如果我无法在特定版本或版本上实现此function,我可以来解决方法)

如何处理失败的DllImport?

我正在尝试编写一个C#托管类来包装SHGetKnownFolderPath,到目前为止它可以在Vista上运行,但由于没有像预期的那样在shell32.dll中找到正确的函数而在XP上崩溃。 我想让它设置好所以如果使用XP,我可以使用System.Environment.GetFolderPath来回避(通常是hacky)解决方案。 (或者,更好的是,如果它在shell32中找不到function。) 除了条件编译之外,还有什么方法可以做到吗? 我目前的代码如下: public abstract class KnownFolders { [DllImport(“shell32.dll”)] private static extern int SHGetKnownFolderPath([MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out IntPtr pszPath); // Trim properties to get various Guids. public static string GetKnownFolderPath(Guid guid) { IntPtr pPath; int result = SHGetKnownFolderPath(guid, 0, IntPtr.Zero, out pPath); if (result == 0) { string s […]

“图像格式无法识别”取决于显示器

我们有一个C#WPF项目(.NET 4.0,Visual Studio 2010)。 它已经在Windows XP和Windows 7上进行了测试,似乎工作正常,但现在我收到了两个客户的报告(两者都位于西class牙由于某种原因)无法启动软件。 查看日志文件,我看到他们得到“图像格式无法识别”exception(引起:HRESULTexception:0x88982F07)。 我已经搜索了错误,我发现这似乎是WPF无法在Windows XP上加载Vista PNG图标。 但是那些报告已经有几年了,当然微软现在已经解决了这个问题(?),在我的情况下,它在大多数XP安装上运行良好。 我真的不想限制更新的Windows上的图标外观。 我们的应用程序最常见的用途是笔记本电脑,其中一位用户报告称,当他将笔记本电脑连接到外接显示器时问题得到了解决。 当我让另一个人测试同样的东西时,他得到了相同的结果。 所以我的问题是:你知道微软是否解决了这个问题? 你知道为什么它只发生在某些Windows XP实例上以及它与显示器的关系吗? 最重要的是,你知道如何在不改变图标的​​情况下使我们的应用程序更加健壮吗?

Windows XP中的Visual Studio 2013远程调试过程

我有一台运行Windows 7和Visual Studio 2013的开发机器。目标框架是.NET 3.5。 现在我想在Windows XP系统上进行远程调试,但这似乎是不可能的: msvsmon.exe无法启动 从http://msdn.microsoft.com/en-us/library/bt727f1t.aspx安装远程工具不起作用 我从MS中找到的就是使用VS Studio 2010 Express进行调试。 是否有任何黑客在Windows XP中进行远程调试?

如何以编程方式创建在XP,Vista和Windows 7中工作的文件关联

我希望能够从我的程序中注册我的文件扩展名。 (将文件类型与我的程序关联) 有很多关于此的文章,但据我所知,所讨论的技术(摆弄注册表)仅适用于Windows XP。 将文件类型与程序关联以使其在XP,Vista和Windows 7下运行的最佳方法是什么? (有没有工作代码示例?) ClickOnce是一个选项,但这只在安装时注册文件类型,而我希望能够在运行时注册文件类型。