Windows服务 无法获取应用程序标题

jzdriver 2016-01-21 10:18:41

Process[] Plist = Process.GetProcesses();
for(int i=0;i<Plist.Length;i++)
{
string sTName = Plist[i].MainWindowTitle.ToLower();
string sFName = Plist[i].ProcessName.ToLower();
}


上面这行代码,在WinFrom程序中可以获得 两个值。
但同样放在Windows服务的程序中,就只能获得 进程名称 而无法获得 窗口标题
...全文
242 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lj7420633 2017-11-26
  • 打赏
  • 举报
回复
楼主后来怎么解决的啊?
jzdriver 2016-01-21
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
在xp下可以,在win7以上就不行,session0隔离了,窗口句柄取不到
亲,主要应用环境就想在WIN7 和 未来的 WIN10中使用,有什么其它变通的解决办法吗?
  • 打赏
  • 举报
回复
在xp下可以,在win7以上就不行,session0隔离了,窗口句柄取不到
jzdriver 2016-01-21
  • 打赏
  • 举报
回复
补充: 正常程序下 ProcessName ========= liebao MainWindowTitle ======== XXXX网站——猎豹浏览器 所说的无法获得 窗口标题 是指 获得值为 " "
  • 打赏
  • 举报
回复
这个治标不治本,可以换种思路 比如在本地安全策略新建一个TCP拒绝所有的80端口出站连接请求(用注册表应该也可以做到) 或者写个LSP服务 http://www.it165.net/pro/html/201211/4161.html 这种就是不管程序只要想上网都会走的网络层 更底层的就是类似ndis驱动级的拦截了
jzdriver 2016-01-21
  • 打赏
  • 举报
回复
引用 4 楼 dongxinxi 的回复:
MS推荐的做法是让你再开发个桌面应用,然后再与windows服务跨进程交互(socket,命名管道,共享内存==) http://www.cnblogs.com/gnielee/archive/2010/04/08/session0-isolation-part2.html
这个程序的核心是 定时扫描进程,然后杀掉浏览器类进程,利用进程名倒是可以查杀,但总会有一些浏览器会在收集的禁止列表以外。 那么我的思路是获取所有程序的标题栏,,在标题栏里出现 “浏览器”字样的,,就Kill掉。 由于不能有界面。 所以决定在后台以服务方式运行,问题也就出在了这里。
  • 打赏
  • 举报
回复
MS推荐的做法是让你再开发个桌面应用,然后再与windows服务跨进程交互(socket,命名管道,共享内存==) http://www.cnblogs.com/gnielee/archive/2010/04/08/session0-isolation-part2.html

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧