Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

自動按鍵的 win32 程式

4 views
Skip to first unread message

Wayne

unread,
Nov 25, 2010, 10:09:39 AM11/25/10
to
因為工作上的需要 常不停按經由 javascript 產生的 alert 或 prompt
但是網頁是別的公司寫的,無法叫對方去掉那些囉唆的提示
以前有看過一個程式可以選擇特定 title 的 messagebox
然後在幫使用者按指定的按鈕如確定取消之類的
現在再去找時已經不見了
所以想現在寫一個順便學一下 winapi
因此請問各位先進
要如何偵測到特定的程式跑出特定的 messagebox
是用 FindWindow 之類的函式定時去搜尋嗎
還是有無特定的函式可以解決這類的問題

æĢæĢ

unread,
Nov 28, 2010, 12:00:00 PM11/28/10
to
是,再加上 SendMessage 來送出確定紐。
沒有。

因為這算是正常的流程,當然不會另外準備個 API 讓你跳掉。

==> 本文由 "Wayne <exa...@example.net>"
> 於 news:iclu7j%24eeq%241%40netnews.hinet.net 發表

--
風禹科技驗證有限公司 ASP.NET Web News Reader 0.2.9 UTF-8 Beta
網站地圖 http://tlcheng.twbbs.org/wwwmap.htm
流域防洪/區域水資源/徐昇網/玫瑰圖/語音通訊 文章與程式
Basic/Fortran/Windows API/.Net/輔助說明檔 原始碼、文章與討論
微軟程式設計、系統管理使用新技術論壇討論區,網友回覆後即時簡訊、電子郵件通知:
MSDN: http://social.msdn.microsoft.com/Forums/zh-TW/categories/
TechNet: http://social.technet.microsoft.com/Forums/zh-TW/categories/
--
ASPNET News Reader http://tlcheng.twbbs.org/News/Reader.aspx
RSS 2.0 http://tlcheng.twbbs.org/News/rss2.aspx?Action=List&Newsgroup=tw.bbs.comp.language

Wayne

unread,
Nov 29, 2010, 5:40:13 AM11/29/10
to
On 2010/11/29 上午 01:00, 璉璉 wrote:
> 是,再加上 SendMessage 來送出確定紐。
> 沒有。
>
> 因為這算是正常的流程,當然不會另外準備個 API 讓你跳掉。
>
> ==> 本文由 "Wayne<exa...@example.net>"
>> 於 news:iclu7j%24eeq%241%40netnews.hinet.net 發表
>> 因為工作上的需要 常不停按經由 javascript 產生的 alert 或 prompt
>> 但是網頁是別的公司寫的,無法叫對方去掉那些囉唆的提示
>> 以前有看過一個程式可以選擇特定 title 的 messagebox
>> 然後在幫使用者按指定的按鈕如確定取消之類的
>> 現在再去找時已經不見了
>> 所以想現在寫一個順便學一下 winapi
>> 因此請問各位先進
>> 要如何偵測到特定的程式跑出特定的 messagebox
>> 是用 FindWindow 之類的函式定時去搜尋嗎
>> 還是有無特定的函式可以解決這類的問題
>>
>

首先謝謝這位網友的回答
目前我找到的大概方法是設定 firefox 的 security policies 將特定網址停用
alert 或 comfirm
請參考 http://www.mozilla.org/projects/security/components/ConfigPolicy.html
不過 firefox 會丟出 exception 導致接下來的 javascript 都不會執行
接下來就要研究如何處理丟出來的 exceptions ...........

習慣

unread,
Nov 30, 2010, 11:19:10 AM11/30/10
to
※ 引述《Wayne <exa...@example.net>, 看板: Programming》之銘言:

: On 2010/11/29 上午 01:00, 璉璉 wrote:
: > 是,再加上 SendMessage 來送出確定紐。
: > 沒有。
: > 因為這算是正常的流程,當然不會另外準備個 API 讓你跳掉。
: 首先謝謝這位網友的回答

: 目前我找到的大概方法是設定 firefox 的 security policies 將特定網址停用
: alert 或 comfirm
: 請參考 http://www.mozilla.org/projects/security/components/ConfigPolicy.html
: 不過 firefox 會丟出 exception 導致接下來的 javascript 都不會執行
: 接下來就要研究如何處理丟出來的 exceptions ...........

因為這篇文章前文被吃掉了,所以我不確定目的所在。

不過如果只是處理網頁點擊,關閉 alert 或 confirm , prompt 的 window

在 firefox 底下其實用 chickenfoot 這支 extension 寫 script

就可以模仿人手點擊網頁的操作。

--

人不作出犧牲,便得不到任何收穫;如果要得到某種東西,就必須付出同等代價。這一點
,就是鍊金術的基本原則 ── 等價交換。當時我們深信這一點就是世界的真理。

阿爾風斯‧愛力克,《鋼之鍊金術師》開場白

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.235.208.224

Wayne

unread,
Nov 30, 2010, 11:49:13 PM11/30/10
to
On 2010/12/1 上午 12:19, 習慣 wrote:
> ※ 引述《Wayne<exa...@example.net>, 看板: Programming》之銘言:
> : On 2010/11/29 上午 01:00, 璉璉 wrote:
> :> 是,再加上 SendMessage 來送出確定紐。
> :> 沒有。
> :> 因為這算是正常的流程,當然不會另外準備個 API 讓你跳掉。
> : 首先謝謝這位網友的回答
> : 目前我找到的大概方法是設定 firefox 的 security policies 將特定網址停用
> : alert 或 comfirm
> : 請參考 http://www.mozilla.org/projects/security/components/ConfigPolicy.html
> : 不過 firefox 會丟出 exception 導致接下來的 javascript 都不會執行
> : 接下來就要研究如何處理丟出來的 exceptions ...........
>
> 因為這篇文章前文被吃掉了,所以我不確定目的所在。
>
> 不過如果只是處理網頁點擊,關閉 alert 或 confirm , prompt 的 window
>
> 在 firefox 底下其實用 chickenfoot 這支 extension 寫 script
>
> 就可以模仿人手點擊網頁的操作。

謝謝這位熱心的網友回答

這個外掛之前有使用過,不過在使用這範例

http://groups.csail.mit.edu/uid/chickenfoot/scripts/index.php?title=Handling_alert_or_confirm_windows

的時候遇到一個問題

我作業用的網頁結構是

<html>
<head><title>Hello Programming</title></head>
<body>
<form>
<script type="text/javascript">
//<![CDATA[
confirm('ask something');
//]]>
</script>
</form>
</body>
</html>

也就是說這網頁執行到一半就會跑出 confirm
等按了confirm 完後才會繼續解析

我查的資料說 greasemonkey 是網頁解析完後才會執行
我觀察到 chickenfeed也是在按了 confirm 後等網頁解析完才會執行
所以我依舊無法避開手動去按的動作

如果用 firefox 的 security policices 關掉alert或confirm的話
根據網頁敘述跟實際運作 firefox 會丟出例外並且停止接下來的 javascript 運作
這樣我工作上的網頁其他功能就無法動了 Orz
不知道有什麼方法能抓到或避開firefox丟出的例外讓接下來的code繼續運作

Analog Engineer

unread,
Dec 4, 2010, 1:04:45 AM12/4/10
to
※ 引述《Wayne <exa...@example.net>, 看板: Programming》之銘言:
: On 2010/12/1 上午 12:19, 習慣 wrote:
: > 因為這篇文章前文被吃掉了,所以我不確定目的所在。

: > 不過如果只是處理網頁點擊,關閉 alert 或 confirm , prompt 的 window
: > 在 firefox 底下其實用 chickenfoot 這支 extension 寫 script
: > 就可以模仿人手點擊網頁的操作。

: 根據網頁敘述跟實際運作 firefox 會丟出例外並且停止接下來的 javascript 運作
: 這樣我工作上的網頁其他功能就無法動了 Orz
: 不知道有什麼方法能抓到或避開firefox丟出的例外讓接下來的code繼續運作

最簡單的方法是用 autohotkey,
你可以到http://www.autohotkey.com/去下載
它可以寫程式模擬人手的操作,
可以根據視窗標題或控制項ID甚至內文來選定按鈕.
而且它還可以在螢幕上找尋特定圖像,並根據該圖像的X,Y座標,去按螢幕上的按鈕.
而且可以將你的script包裝成exe檔直接執行.
玩玩看就知道.

它是免費軟體,不用擔心版權問題.

--

Do not depend on others without effort...
當我年輕時,請教別人問題時常聽到上面那句話. 當時心裏偶而會有些小小抱怨.
當時間過去,我偶而會想到上面那句話, 心中十分感謝當初告訴我那句話的人.
當發現問題時,最有價值的不是問題的答案,
而是找到解決的方向,並在努力的過程裡具備解決問題的能力.

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.235.104

凌波微步

unread,
Dec 4, 2010, 2:49:53 AM12/4/10
to

autoit 最好用


--

小台怡情 大台興家

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.174.62

0 new messages