English 中文(简体)
利用控制发送到窗户现场信使 自动打字案文
原标题:Using control send on windows live messenger For auto typing text
  • 时间:2009-10-20 23:00:44
  •  标签:

Hi i want to make a sort of a bot for WLM, But the normal controlsend in autoit wont work

基本问题是,如何向窗户寄送文字,而不启动。

Example: There is someone in WLM with the window active called "Joop" I do:

ControlClick("Joop","","[CLASS:DirectUIHWND; INSTANCE:2]","Left",1,322,507)
ControlSend("Joop","","[CLASS:DirectUIHWND; INSTANCE:2]","Hi Joop")  

然而,当我这样做时,这并不奏效。

WinActivate("Joop","")
ControlClick("Joop","","[CLASS:DirectUIHWND;INSTANCE:2]","Left",1,322,507)
ControlSend("Joop","","[CLASS:DirectUIHWND; INSTANCE:2]","Hi Joop")  

it does work however now its activated what i dont want. there is a problem with the window the whole msn talk window is one window so no extra control to type in thats why i tried the contolClick on the coordinates of the typing screen without succ6

这是摘要。

Text:   
Position:   0, 28
Size:   882, 607
ControlClick Coords:    282, 180
Style:  0x56000000
ExStyle:    0x00010000
Handle: 0x00190916

>>>> Mouse <<<<
Position:   1885, 557
Cursor ID:  0
Color:  0xFFFFFF

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<
CVoiceVideoAvatarHostWindow

任何人都知道如何在案文领域取得某些东西,而不必启动(因此可以按背景行事)和使用像发送的 la功能。

OR 如何向窗户寄送文字,而不启动

Thanks Matthy

问题回答

MSN故意抵制自动化。 它不限制视窗软件。 如果您的目标是实现MSN聊天自动化,你可以直接发送TCP包装单,或将支持MSN(Digsby、Pidgin等)的另一个申请自动化,并更好地实现自动化。

通过直接寄送TCP包裹,你正在撰写你自己的节目,从头等到外部世界,就像MSN一样。 议定书有用户制作的文件。 我过去曾使用过的一个问题是:,但我完全不相信这一说法是否依然有效。 如果你熟悉网络、TCP、包装物捕获和再利用,那么我确实建议采用这一途径,因为它是最稳定、最长期的做法。 (我想:最幸运的是)

然而,并非所有项目都需要采取稳定和长期的办法。 在我看来,你似乎只是想把你在计算机上发现的一些应用自动化,而MSN当然是最令人感兴趣的应用之一。 微软公司决定,当他们建造MSN客户时,任何人都不应轻易尝试申请并使其自动化。 我认为,这主要是为了防止垃圾邮件。 在工作的最初几天,因为其他人尚未公开记录议定书。 因此,现在任何想要 sp子的人都必须进行昂贵的投资。

如果你确实决定继续使MSN官方客户自动化,或拒绝自动化的任何其他应用,那么你可以尝试:

  • ControlSend without specifying the control parameter (use empty string "")
  • ControlClick on the window with specifying coordinates with using empty string for control parameter again
  • Eventually, simply Send/MouseClick with optional BlockInput

你可以尝试(特别是控制X职能)的多种组合,有时会mir忙地发挥作用,但记住,最终它们只是窗口信息。 如果你知道你会做些什么,你可以做的是自动化工作。

某些设计和接口使“自动备用金”难以(甚至实际上不可能)利用接口阅读控制信息。 我建议,要么通过你自己的客户,以人工方式使用《地雷影响议定书》,要么利用不能够硬或不可能筛选出案文的客户。

Ok, 也许最终会回答......至少这一检验表明,I编码的工作如下:

在您的发言稿开始的某个地方,你必须确定您的《世界人类生活状况》(@SW_HIDE)。 后来,你试图填写<代码>ControlXxxx,你先在你积极窗口上设定一个变量。 现在,你可以选择性地阻止你们的投入,打开你隐藏的窗口。 现在,正如你上文所述,你在重新启用了你最后一个积极窗口。 选择性地再次排除投入。

这应当尽可能少地解决你的问题,......在此期间,你可以与你的摩苏尔风格一样,模拟一些万国邮联的负荷,因此,零件投入不会受到危害。 但是,这一行动非常快,你甚至承认它......。 (也许会吞)一些关键压力)

try!

Opt("WinTitleMatchMode", 2)

#include <GuiConstantsEx.au3>
$GUI = GUICreate("Beispiel HiddenApp", 392, 323)
$ed = GUICtrlCreateEdit("nix", 1, 1, 390, 321)
GUISetState()

Sleep(1000)

GUISetState(@SW_HIDE, $GUI)
WinActivate("SciTE")
Sleep(1000)

BlockInput(1)
$act = WinActive("[ACTIVE]")
WinActivate($GUI)
ControlClick($GUI, "", $ed, "primary", 1, 50, 50)
ControlSend($GUI, "", $ed, "before{Alt}{Tab}after")
WinActivate($act)
BlockInput(0)

Sleep(1000)

GUISetState(@SW_SHOW, $GUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case Else
            ;;;
    EndSwitch
WEnd




相关问题
热门标签