如何修改一个进程中的一个edit的属性???

舟中夜起 2003-08-22 02:38:14
一个进程,我想修改它的一个对话框中的一个edit类的属性,例如修改为只读属性,该如何做那?谢谢!!!

我可以hook api或者hook message,但是不知道怎么做?谢谢

修改属性可以用SetWindowLong,但是如何获取那个edit的句柄之类的参数呢?那个对话框只有用户点击了才会弹出的。
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
舟中夜起 2003-08-28
  • 打赏
  • 举报
回复
我用hook方法,已经得到了edit控件的句柄,GetWindowLong得到edit的style,
DWORD dwStyle = ::GetWindowLong(hEditWnd, GWL_STYLE);
::SetWindowLong(hEditWnd, GWL_STYLE, dwStyle | ES_READONLY);

edit没有反应,是否有其它修改属性的方法?如果不行,就只能hook keyboard,不让其输入了。


TangJunLin2002 2003-08-26
  • 打赏
  • 举报
回复
没有标题一样可以用FINDWINDOW可以先找到他的空类名,然后继续找他特有的其他控件标志来证明是否是要修改的程序!
舟中夜起 2003-08-24
  • 打赏
  • 举报
回复
我想达到的目的是,通过我来启动某个特定的程序,我来控制这个程序所有的编辑框设置为只读模式。

我通过spy++查看了,这个程序没有标题,所以似乎不能通过FindWindow来做的。

我想到的方法是:Hook WM_SETFOCUS消息,这样只要进入编辑框,我就可以通过SetWindowLong来设置属性为只读,不知是否可行
zhouyong0371 2003-08-24
  • 打赏
  • 举报
回复
如果你有一个对话框DialogMenu,上边有一个Edit控件,ID为IDC_EDIT,在Resource.h里边的定义为#define IDC_EDIT 1001

则在对他进行Disable的.cpp文件里边加入#define IDC_EDIT 1001,然后,一个按钮响应函数如下,就可以了。:

void CSetOtherMenuDlg::OnSetEditDisable()
{
//对方窗口的标题为DialogMenu
CWnd * pWnd = FindWindow(NULL, "DialogMenu");

if (pWnd)
{
HWND hwndEdit;
pWnd->GetDlgItem(IDC_EDIT, &hwndEdit);
::EnableWindow(hwndEdit, FALSE);

}
}
vcforever 2003-08-24
  • 打赏
  • 举报
回复
FindWindow
FindWindowEx
应该可以的,要不我们做的程序怎么能找到,任务栏上开始按钮的handle呢!
然后用ModifyStyle或SetWindowLong修改就可以了!
gzshd 2003-08-24
  • 打赏
  • 举报
回复
比较难,进程之间是有保护的
如果要修改的进程是你写的,你可以让这两个程序之间有一个通讯的协议,来修改edit的属性
李_军 2003-08-23
  • 打赏
  • 举报
回复
你肯定要找到他才行啊,用FindWindow查找

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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