HORRIBLE
28-03-2010, 20:12
Интересует такая штучка: к примеру имею вот такой код:
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
;1способ
;_IEImgClick ($oIE, "Download AutoIt", "alt")
;2-й способ
$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
if $oImg.alt == "Download AutoIt" Then
$iScreenX = _IEPropertyGet($oImg, "screenx")
$iScreenY = _IEPropertyGet($oImg, "screeny")
MouseClick('LEFT', $iScreenX + $oImg.width,$iScreenY + $oImg.height)
EndIf
Next
2-мя способами нажимаем на картинку, а возможно ли выполнить второй способ, без использования 1-го способа, с применением USER32.dll не используя мышь? (Откуда такой вопрос возник, есть такая программа, AUTOPILOT, там клики происходят без использования мыши, минус единственный приложение куда должно происходить нажатие должно быть на экране не скрыто.)
Наткнулся как делают: на примере кнопки START
const Int32 WM_LBUTTONDOWN = 0x0201;
[DllImport("User32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
private static extern bool SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, Int32 lParam);
IntPtr hTaskBar = FindWindow("Shell_TrayWnd", null); // ищем таскбар
if(hTaskBar != IntPtr.Zero)
{
// находим кнопку Start
IntPtr hStartBtn = FindWindowEx(hTaskBar,IntPtr.Zero,"Button", null);
// кликаем ее
if(hStartBtn != IntPtr.Zero) SendMessage(hStartBtn, WM_LBUTTONDOWN, 0, 0);
}
Потом по поиску "WM_LBUTTONDOWN" наткнулся на =) сообщение от Creat0R тут вот: ссылка (http://forum.oszone.net/post-986154-1325.html) но как это все под свою задачу оформить......
Одним словом, что спрашивается как клацнуть по картинке, как во втором способе но не используя мышку?
Спасибо.
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
;1способ
;_IEImgClick ($oIE, "Download AutoIt", "alt")
;2-й способ
$oImgs = _IEImgGetCollection ($oIE)
For $oImg In $oImgs
if $oImg.alt == "Download AutoIt" Then
$iScreenX = _IEPropertyGet($oImg, "screenx")
$iScreenY = _IEPropertyGet($oImg, "screeny")
MouseClick('LEFT', $iScreenX + $oImg.width,$iScreenY + $oImg.height)
EndIf
Next
2-мя способами нажимаем на картинку, а возможно ли выполнить второй способ, без использования 1-го способа, с применением USER32.dll не используя мышь? (Откуда такой вопрос возник, есть такая программа, AUTOPILOT, там клики происходят без использования мыши, минус единственный приложение куда должно происходить нажатие должно быть на экране не скрыто.)
Наткнулся как делают: на примере кнопки START
const Int32 WM_LBUTTONDOWN = 0x0201;
[DllImport("User32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("User32.dll")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
private static extern bool SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, Int32 lParam);
IntPtr hTaskBar = FindWindow("Shell_TrayWnd", null); // ищем таскбар
if(hTaskBar != IntPtr.Zero)
{
// находим кнопку Start
IntPtr hStartBtn = FindWindowEx(hTaskBar,IntPtr.Zero,"Button", null);
// кликаем ее
if(hStartBtn != IntPtr.Zero) SendMessage(hStartBtn, WM_LBUTTONDOWN, 0, 0);
}
Потом по поиску "WM_LBUTTONDOWN" наткнулся на =) сообщение от Creat0R тут вот: ссылка (http://forum.oszone.net/post-986154-1325.html) но как это все под свою задачу оформить......
Одним словом, что спрашивается как клацнуть по картинке, как во втором способе но не используя мышку?
Спасибо.