Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Maza Faka,
Хотел сделать ещё и возможность кликания без задействования мышки, но что то не выходит...
Полагаю я неправильно использую функцию ScreenToClient в User32.dll. Может кто-то знает как правильнее? (это кстати моя одна из первых попыток работать с Dll ).

Код: Выделить весь код
#NoTrayIcon
#include <SysTray_UDF.au3>

$Pid = ProcessExists("Opera.exe")
If Not $Pid Then
    MsgBox(16, "Error", "This process not exists")
    Exit
EndIf

$Index = _SysTrayIconIndex($Pid)
If @error Then
    MsgBox(16, "Error", "This process not have tray icon")
    Exit
EndIf

$Pos = _SysTrayIconPos($Index)

$hWnd = WinGetHandle("[Class:Shell_TrayWnd]")
$YPos = ScreenToClient($hWnd, $Pos[0])
$XPos = ScreenToClient($hWnd, $Pos[1])

ControlClick("[Class:Shell_TrayWnd]", "", "ToolbarWindow321", "Right", 1, $XPos, $YPos)

Func ScreenToClient($hWnd, $Point)
    Local $Struct = DllStructCreate("int;int")
    DllStructSetData($Struct, 1, $Point)
    DllStructSetData($Struct, 2, $Point)
    Local $Ret = DllCall("User32.dll", "int", "ScreenToClient", "hwnd", $hWnd, "ptr", DllStructGetPtr($Struct))
    Return $Ret[0]
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:52, 06-10-2007 | #553