2012-10-07 22 views
0

我有一个.NET应用程序,它运行NSIS文件并在Windows XP上执行它们, 我有一个问题,就是这个窗口,每当我运行一个文件时出现如何从NSIS获取错误消息到.NET

使用Windows 7使它更容易,因为如果.NET进程作为管理员运行,该窗口将不会显示,但在XP中,这是一个头痛的问题, 我只需要一个解决方案,只有这些问题之一, 如果我可以防止这个窗口一直显示吗? 或者我可以从NSIS exe文件中读取它的输出,所以.NET会判断出现问题。

我已经尝试点击取消,它使.NET抛出一个异常,这是很好,我可以处理, ,但不删除“保护我的电脑......”标记导致大问题。

这是PIC链接: https://docs.google.com/open?id=0B5MtsIuVfrsYT2F1OGZUdHdMSDg

enter image description here

+1

为什么不让.NET应用程序提示用户在Windows XP上具有管理员权限?无论如何,用户应该在Windows XP和Windows 7上以管理员身份运行您的应用程序,因此您的应用程序应该测试并提示,而不是等待Windows执行相同操作。 –

+0

你在使用runas动词吗? – Anders

+0

@LexLi感谢您的意见,,问题解决了 –

回答

0

问题与运行方式动词, 我们可以将其删除,并在更换,我们应该结束,如果它没有运行的管理程序 我们可以用这个功能来测试应用程序与管理permessions运行

[DllImport("shell32.dll", SetLastError = True)] 
return: MarshalAs(UnmanagedType.Bool) 
static extern bool IsUserAnAdmin(void); 

http://www.pinvoke.net/default.aspx/shell32.IsUserAnAdmin

问候,