社区
Delphi
帖子详情
Help!Help!已知一个窗口的句柄HWND,如何强制关闭它?
CKEN
2000-03-09 09:29:00
...全文
1177
20
打赏
收藏
Help!Help!已知一个窗口的句柄HWND,如何强制关闭它?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NoBug
2000-03-10
打赏
举报
回复
向窗口发送WM_CLOSE消息应该是可以的,如果不行可能是因为窗口停止响应,可用如下方法:
...
DWORD dwThreadId,dwProcessId;
HANDLE hProcess;
dwThreadId = GetWindowThreadProcessId(hWnd,&dwProcessId);
hProcess = OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessId);
if(hProcess==NULL) return FALSE;
// so bad !
TerminateProcess(hProcess);
...
不过,这不是一个好方法,以为这样终止一个进程,有时会产生意想不到的后果。
CKEN
2000-03-10
打赏
举报
回复
请问lu0,如何向一个窗口发送带有sc_close的wm_syscommand消息,sendmessage的
api具体如何写?
meijg
2000-03-10
打赏
举报
回复
NoBug的方法是对的,把分给他,如果有问题在来找我
土豆
2000-03-10
打赏
举报
回复
无聊的话题
Lin
2000-03-10
打赏
举报
回复
CKEN:
再试试:SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
CKEN
2000-03-10
打赏
举报
回复
BOOL SendMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
中的WPARAM与LPARAM 应该如何填写呢?(消息是WM_CLOSE)
kxy
2000-03-09
打赏
举报
回复
sorry,放错了地方:)
kxy
2000-03-09
打赏
举报
回复
delphi中(d4)中如果编译,要保存才可以,BCB不要保存吗?
olo
2000-03-09
打赏
举报
回复
请问 guzhigang :
怎样取得该窗口的程序INSTANCE,又怎样取得程序的主窗口?有分的。100分。
halfdream
2000-03-09
打赏
举报
回复
你可以确定HWND找对了吗?
我曾试过几次你说的类似情况。一般情况下,
送WM_CLOSE消息多半可以,要是不行送WM_DESTROY消息。
要不然,再试试SendMessage(用法同PostMessage).
另外,还有一点,HWND窗口是程序的主窗口的话可以结束程序。
HWND如果是非主窗口,那情况可能要复杂一些:)
如果有问题的话,可以说得再具体些吗?
guzhigang
2000-03-09
打赏
举报
回复
应设法取得该窗口的程序INSTANCE,然后取得程序的主窗口,在发关闭消息,
lu0
2000-03-09
打赏
举报
回复
嘿嘿,有很多很多窗口都不对WM_CLOSE反应的:)
通常情况下,他们都对WM_SYSCOMMAND里的SC_CLOSE作出反应关闭窗口.如果该函数不
行,看来你需要HOOK一番了.
CKEN
2000-03-09
打赏
举报
回复
我要关的是另一个程序窗口
CKEN
2000-03-09
打赏
举报
回复
不行,没反应,窗口关不了
Lin
2000-03-09
打赏
举报
回复
向窗口发送WM_CLOSE,一般来说,将导致该窗口被关闭(如果它愿意的话)。
刚试过的,应该是没问题的。
注意:如果是用Delphi或者BCB做的程序的话, 一般来说,Application.Handle才是主窗口(0,0,0,0)句柄,而一般显示在桌面上的只是Application.MainForm
mutant
2000-03-09
打赏
举报
回复
如果要强制销毁的话使用
BOOL DestroyWindow(
HWND hWnd // handle to window to destroy
);
就可以了
929
2000-03-09
打赏
举报
回复
我想可以通过向窗口发送WM_CLOSE或WM_DESTROY消息来试试。
BOOL PostMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
forgettor
2000-03-09
打赏
举报
回复
PostMessage(hwnd,WM_QUIT/WM_CLOSE,0,0)行不行?
CKEN
2000-03-09
打赏
举报
回复
我记得好像大部分窗口都可以用alt+f4关闭,api如何写,我有几个控件,那些控件在
win98下烂的很,就是说,如何引发一个系统级的键盘事件(我可以先把那个设为活动
窗口,那样这个窗口就会得到ALT+F4关闭).
forgettor
2000-03-09
打赏
举报
回复
如果想暴力关闭整个程序,用GetWindowThreadProcessID得到窗口所属的进程,然后用TerminateProcess关闭.
MFC中获取
窗口
句柄
及相关函数
一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针和
句柄
获取和操作问题。本文中将针对各类
句柄
的获得、指针的获得以及MFC中常见应用进行阐述并举例。 本文内容索引: ========================================================= MFC中获取常
Windows_10_System_Programming_2,Objects and Handles
可以通过复制
句柄
(duplicating the handle)来实现这些复制操作(these copy operations)(见本章后面的 “共享内核对象”),但这是
一个
非平凡(非常重要)的操作,最好在隐式复制场景中避免。内核对象是引用计数的。
句柄
复制没有固有的限制(除了安全性)-它几乎可以在任何内核对象上工作,不管是有名字的还是没有名字的,而且它在任何时间点上都可以工作(在第3章中,我们将看到
句柄
继承仅在进程创建子进程时可用)。如果是,那么它就不是
一个
新的对象,而是现有对象的另
一个
句柄
。
系统:Shell和GDI Thread和杂项等
Q如何判断是文件,还是目录?急!! T请各位高手指教,在c 语言中,用程序怎样判断要操作的是
一个
目录还是
一个
文件?在c语言中要调用api函数时许包含什么头文件?具体要用到什么函数请多多帮忙!!谢谢!!APathIsDirectory#include Q用程序怎么打印
一个
Word或者RTF文档啊? T比如有C:/a.rtf我怎么可以把它送到打印机打出来呢?AShellExecute C:/a.rtf
VC6.0的若干实用小技巧
作者:VC教程 来源:http://www.d9soft.com 时间:2006-2-11 1:30:501.检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。2.查看
一个
宏(或变量、函数)的宏定义把光标移动到你想知道的
一个
宏上,就比如
揭示Win32 API拦截细节
原文出处:http://www.codeproject.com/system/hooksys.asp简要介绍拦截win32 API 调用对于多数windows开发人员来说都一直是很有挑战性的课题,我承认,这也是我感兴趣的
一个
课题。钩子机制就是用一种底层技术控制特定代码段的执行,它同时提供了一种直观的方法,很容易就能改变操作系统的行为,而并不需要涉及到代码。这跟一些第三方产品类似。 许
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章