|
本帖最后由 tubaba 于 2010-2-11 11:07 编辑
比如文本框中写了一行字:你好
是否可以用user32.dll 的getdlgitemtext,看了msdn上的介绍
函数原型:UINT GetDlgItemText(HWND hDlg,int nlDDlItem,LPTSTR IpString int nMazCount);
参数:
hDlg:指向含有控制的对话框的句柄。
nlDDlgItem:指定标题或文本将被检索的控制的标识符。
IpString:指向获取标题或文本的缓冲器的指针。
nMaxCount:指定被复制到lpString参数指向的缓冲区的字符串的最大长度。如果字符串的字符最大长度超过范围,则该字符串被截断。
返回值:如果函数调用成功,则返回值表示被复制缓冲区的字符串的长度,不包括以NULL结尾的字符串。如果函数调用失败,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。
结果我怎么call都得不到这个 Ipstring的值,我哪里有写的不对吗?
0x00220482 是记事本Edit类的句柄,15是控件ID
$stString = DLLStructCreate("CHAR[128]")
$result_e = DllCall("user32.dll", "int", "GetDlgItemText","hwnd", 0x00220482,"int", 15 ,"str", DllStructGetPtr($stString), "int", 65000)
MsgBox(0,"",DllStructGetData($stString,1))
请哪位大大前来解惑,最好能带例子,谢谢 |
|