代码如下,我建立了一个test.txt文档并打开,然后运行程序,控制台始终返回0,,,,,Google Baidu找了半天都没有解决。我的系统是win7,IDE是 MonoDevelop
using System;
using System.Runtime.InteropServices;namespace SendMsgToWindow
{
class MainClass
{
//[DllImport("USER32.DLL")]
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow (string lpClassName, string lpWindowName);
//静态方法必须在静态方法中调用?
private static void MyFindWindow (string wndName)
{
IntPtr ip = FindWindow (null, wndName);
Console.WriteLine(ip.ToString());
if (ip != IntPtr.Zero) {
//找到句柄后,你就可以做你想做的事了,发送信息你可以用SendKeys;
Console.WriteLine ("yes");
}
} public static void Main (string[] args)
{
MyFindWindow ("test.txt - 记事本");//
}
}
}
using System;
using System.Runtime.InteropServices;namespace SendMsgToWindow
{
class MainClass
{
//[DllImport("USER32.DLL")]
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow (string lpClassName, string lpWindowName);
//静态方法必须在静态方法中调用?
private static void MyFindWindow (string wndName)
{
IntPtr ip = FindWindow (null, wndName);
Console.WriteLine(ip.ToString());
if (ip != IntPtr.Zero) {
//找到句柄后,你就可以做你想做的事了,发送信息你可以用SendKeys;
Console.WriteLine ("yes");
}
} public static void Main (string[] args)
{
MyFindWindow ("test.txt - 记事本");//
}
}
}
解决方案 »
- 写代码判断软件是否联网
- c#新手,没有任何编程技术,想学习C#麻烦介绍基本入门书籍
- c# 时间处理
- 帮忙把 vb.net 转一下 c#
- 那位能给小第一个打印类~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`(帮帮新人)
- 自动下拉功能
- 只想用c# + sql server 做个管理系统 希望大家推荐学习方法
- 如何实现对XML里面数据的查询,修改,删除操作
- 如何将string转换成一个Byte数组?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
- Visual Studio.Net Final 版终于出来了!!!
- vs2005 索引超出范围。必须为非负值并小于集合大小。 参数值index
- 字符串和整型转化问题
http://www.cnblogs.com/wuhenke/archive/2010/06/20/1761534.html
谢谢如梦给出的资料,仔细学习了一下,核心意思是这一段:“理论上原因大意为:在VISTA之前的操作系统中(如XP/ WIN SERVER 2003等),所有的服务线程和应用程序都在Session 0里运行,这种方式具有安全风险,Vista/win7之后的操作系统隔离了服务和应用程序,这样服务就可以免于潜在的来自这应用程序代码的攻击。
我理解时,在WIN 7里当不创建窗体的程序进程,会被认为是服务,从而运行于Session 0里。所以,应用程序调用FindWindow方法也就无法获取进程的窗体句柄啦。”而我所要获取的目标确实是有窗体的进程,所以还是没能解决~
非常感谢!当只设置类名Notepad的时候就得到了正确的句柄。
虽然距离理想解决方案还有一定距离,不过确实能够解决眼下的问题。
参数设置成 "Notepad", "test.txt - 记事本" 就无法取得句柄
但是设置成 "Notepad", null 就可以正确取到
而这些参数都是Spy++捕获的
和解啊和解?