2014-05-03 25 views
1

AutoIt腳本用於控制WindowsXP應用程序DVD-lab v1.6,以自動執行製作具有類似內容的DVD的過程。 DVD-lab安裝在8.1的'兼容模式'上,因爲它被編碼以便將一些信息寫入C:\ program Files文件這個腳本通常在WindowsXP中運行,但是由於移動到Windows 8.1,我一直無法發送任何命令到目標應用程序。 8.1中是否有防止AutoIt發送命令的新安全功能?AutoIt在Window 8.1中:AutoIt無法控制目標應用程序(DVD-lab v 1.6)

我做了工作,圍繞這個問題(提示用戶點擊圖標)只碰到在哪裏我試圖文件名發送到控件,然後按OK按鈕下一個控制的問題。所以看起來Autoit ControlSend或ControlClick函數無效!我已驗證AutoIt可以看到窗口:WindowExists("DVD-lab")檢測窗口是否存在。 WinClose("DVD-lab")什麼都不做。它的行爲就像我對該窗口具有隻讀訪問權限一樣。這在WindowsXP上工作!

建議非常感謝。

這裏是我試圖發送一個鼠標點擊控制沒有成功

ControlClick("DVD-lab", "", "[ID:59392]", "left", 1, 41, 9) 
ControlClick("DVD-lab", "", "[TEXT:Asset Toolbar]", "left", 1, 41, 9) 
ControlClick("DVD-lab", "", "[TEXT:'Asset Toolbar']", "left", 1, 41, 9) 
ControlClick("DVD-lab", "", "[CLASSNN:ToolbarWindow328]", "left", 1, 41, 9) 

下面的命令是從AutoIt的信息的信息來選擇控制

>>>> Window <<<< 
Title: DVD-lab PRO 
Class: Afx:400000:0:0:0:2920de7 
Position: -1924, -4 
Size: 1928, 1048 
Style: 0x15CF0000 
ExStyle: 0x00000100 
Handle: 0x00000000005406EE 

>>>> Control <<<< 
Class: ToolbarWindow32 
Instance: 8 
ClassnameNN: ToolbarWindow328 
Name: 
Advanced (Class): [CLASS:ToolbarWindow32; INSTANCE:8] 
ID: 59392 
Text: Asset Toolbar 
Position: 18, 742 
Size: 1466, 23 
ControlClick Coords: 38, 13 
Style: 0x5600084E 
ExStyle: 0x00000000 
Handle: 0x00000000007609C0 

>>>> Mouse <<<< 
Position: -1864, 778 
Cursor ID: 0 
Color: 0xA6A64C 

>>>> StatusBar <<<< 

>>>> ToolsBar <<<< 

>>>> Visible Text <<<< 
Movie 1 
Movie Tools 
Connections 
Connection Bar 
Connection Tools 
    Links 
    Links 
Quick Tools 
Ready 
status 
Menu Bar 
Menu Bar 
Assets 
Preview 
Preview Toolbar 
Slider1 
Assets 
Asset Toolbar 
Project 
Project 
Project Toolbar 
DVD Topology 


>>>> Hidden Text <<<< 
DVD Topology 
Tab1 
Compile 
Compile Toolbar 
Progress1 
+0

我懷疑這會幫助你,但通常它更容易只是複製的'高級(類)'版本和使用,所以在這case'[CLASS:ToolbarWindow32; INSTANCE:8]'。 – Matt

回答

0

我下載了最新的DVD-LAB(2.0)的版本,我的劇本做調整到GUI的變化在2.0版本後,工作得很好。該程序的版本2.0不需要使用兼容模式進行安裝。看起來,安裝在「兼容模式」下的應用程序可以抵制自動化。我猜測這是一個Windows 8.1安全「功能」。

如果有一個線程開始使用安裝在兼容模式下的程序有關的AutoIt,我會很感激,如果有人在意見的鏈接,或備選答案。

0

我第二馬特的回答。但是這裏有一個可供選擇的解決方法。 ControlClick()只是ControlFocus()和MouseClick()的組合。

因此,像這樣:

ControlFocus("DVD-lab", "", [CLASS:ToolbarWindow32; INSTANCE:8]) 
MouseClick("left", 1, 41, 9) 

我也建議你不要因爲我認爲可以打破測試,如果你切換你的Windows鼠標按鈕設置使用「左」 /「右」參數。而是使用「主要」/「次要」。例如。

MouseClick("primary", 1, 41, 9) 
ControlClick("DVD-lab", "", "[CLASSNN:ToolbarWindow328]", "primary", 1, 41, 9) 
0

您應該以管理員身份運行腳本。用鼠標右鍵單擊該腳本性能,兼容性選項卡中勾選複選框運行該程序作爲管理員