积极答复者
关于FindWindow的问题

问题
-
要查找窗口的句柄 可以 用 FindWindow()
因为需要,在一个 sample.aspx页面中需要向一个"ConsoleWindowClass" 窗口发送一个消息
但是在 sample.aspx.cs中的一段代码却不起作用,窗口句柄为0
代码片段如下:
using System.Runtime.InteropServices;
public partial class sample : System.Web.UI.Page, IDisposable
{
[DllImport("User32.dll", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);Intptr notificationhWnd=findWindow("ConsoleWindowClass","myname");//不起作用
IntPrt testhWnd=FindWindow("ConsoleWindowClass",null);//可以得到aspnet_wp.exe的句柄
}
答案
-
ASPX 是用的非 Interactive Session 运行的,可能没有权限去跟 UI 交互的。这是初学者最容易出现的问题之一,比如 MessageBox 就无法在 ASPX.CS 中运行。
Mark Zhou- 已建议为答案 Shuhang Zhao 2011年5月11日 0:56
- 已标记为答案 Leo Liu - MSFTModerator 2011年5月16日 2:06
-
您好,aspx的代码是运行在服务器端的,通常受到权限的制约。
另外这样的架构搭建是有问题的,建议考虑加一个中介服务来传递信息。
- 已标记为答案 Leo Liu - MSFTModerator 2011年5月16日 2:06
全部回复
-
ASPX 是用的非 Interactive Session 运行的,可能没有权限去跟 UI 交互的。这是初学者最容易出现的问题之一,比如 MessageBox 就无法在 ASPX.CS 中运行。
Mark Zhou- 已建议为答案 Shuhang Zhao 2011年5月11日 0:56
- 已标记为答案 Leo Liu - MSFTModerator 2011年5月16日 2:06
-
您好,aspx的代码是运行在服务器端的,通常受到权限的制约。
另外这样的架构搭建是有问题的,建议考虑加一个中介服务来传递信息。
- 已标记为答案 Leo Liu - MSFTModerator 2011年5月16日 2:06