日期:2014-05-19  浏览次数:20945 次

C#下用API跨进程获取别的窗体的toolStrip的按钮并进行点击
网上有找到操作toolBar的,就是没有找到操作toolStrip的

应该也是用SendMessage进行操作的吧!

各位高手帮帮忙啊!

希望能详细一点!谢谢了

------解决方案--------------------
我也想知道,高人赶快进来.顺便顶一下,再顶一下!狂顶!
------解决方案--------------------
CSDN上的高手跑哪去了,快点救命啊!!!!神哪(高人),救救我吧!!!!
------解决方案--------------------
友情up
------解决方案--------------------
用SendMessage一定能做,问题是和ToolBar是不一样的,因为这两个控件是没有关系的,只是功能相似而已.
------解决方案--------------------
学习~
------解决方案--------------------
我不清楚你的意思,如果你只是想夸窗体调用的话
只需要
public xxx ToolStrip
{
get
{
//封装你要使用的属性
}
}
声明一个Class的实例
通过实例就可以调用了


如果用一个线程去触发ToolStrip的话
必须要使用
delete DeleteMethod
ToolStrip.BeginInvoke(DeleteMethod); //多线程操控UI的控件

在DeleteMethod方法你操作你想做的事情


------解决方案--------------------
Windows传统的ToolBar很多种,toolStrip没研究过,你用SPY++去看能取道按钮的HANDLE么
如果取不到,很可能按钮是画上去的,微软又没公开内部结构的话,是无法操作的.
前段时间专门研究了下菜单,很多如此
------解决方案--------------------
哦,想起来了,.Net的话可以写个dll注进去取内部结构,参见CodeProject的ObjectSpy
------解决方案--------------------
我前段时间也想用API操作toolstrip,但弄了两天没有解决,后来我就用鼠标模拟来点击的
------解决方案--------------------
UP
------解决方案--------------------
The mouse_event function synthesizes mouse motion and button clicks.

VOID mouse_event(

DWORD dwFlags, // flags specifying various motion/click variants
DWORD dx, // horizontal mouse position or position change
DWORD dy, // vertical mouse position or position change
DWORD dwData, // amount of wheel movement
DWORD dwExtraInfo // 32 bits of application-defined information
);

这个 肯定可以 就是 鼠标会移动
------解决方案--------------------
可以用Form间的通信试试
把信息传过去另外的form
catch到该信息,再触发事件