chen2j Posted October 20, 2012 Share Posted October 20, 2012 (edited) I write a scipt Autocad to PDF.au3.when i run it ,it always stoped here when Autocad poped-up a window "Problem". I should manually click "yes",then the script can go on.Why?ControlCommand("页面设置 - 模型","",1043,"SelectString", '范围') ;设置打印范围为“范围” ControlCommand("页面设置 - 模型","",1030,"UnCheck","") ;设置按打印样式打印为“否” ControlCommand("页面设置 - 模型","",1030,"Check","") ;设置按打印样式打印为“是”---防止没有勾上“打印对象线宽” ControlCommand("页面设置 - 模型","",1053,"Check","") ;勾上“布满图纸” ControlCommand("页面设置 - 模型","",1006,"SelectString", 'monochrome') ; ---------------It stoped here.I tryed many method ,the only one it works is to run another scipt in the same time,how can i do it in just one script?While 1 WinActivate("问题","是(&Y)") ControlClick("问题","是(&Y)",6) WEndFlickr 上 izaoki 的 55 Edited October 20, 2012 by Jos Link to comment Share on other sites More sharing options...
water Posted October 20, 2012 Share Posted October 20, 2012 Welcome to AutoIt and the forum! Somehow your example code got screwed up My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
chen2j Posted October 20, 2012 Author Share Posted October 20, 2012 (edited) preview is ok.....where can i edit it ? i can't find itControlCommand("页面设置 - 模型","",1043,"SelectString", '范围') ;设置打印范围为“范围” ControlCommand("页面设置 - 模型","",1030,"UnCheck","") ;设置按打印� �式打印为“否” ControlCommand("页面设置 - 模型","",1030,"Check","") ;设置按打印� �式打印为“是”---防止没有勾上“打印对象线宽” ControlCommand("页面设置 - 模型","",1053,"Check","") ;勾上“布满图纸” ControlCommand("页面设置 - 模型","",1006,"SelectString", 'monochrome') ; ---------------It stoped here. Edited October 20, 2012 by chen2j Link to comment Share on other sites More sharing options...
water Posted October 20, 2012 Share Posted October 20, 2012 You can't. You have to have a post count of at least 5 before you can edit a post. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
water Posted October 20, 2012 Share Posted October 20, 2012 Can you please translate the error message in the popup to english? Maybe it gives us some more information. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
chen2j Posted October 20, 2012 Author Share Posted October 20, 2012 (edited) title:Problemtext:Do you want to specify this print style sheet to all layout?I tryed many method ,the only one it works is to run another scipt in the same time,how can i do it in just one script?While 1 WinActivate("问题","是(&Y)") ControlClick("问题","是(&Y)",6) WEnd 3Q Edited October 20, 2012 by chen2j Link to comment Share on other sites More sharing options...
KaFu Posted October 20, 2012 Share Posted October 20, 2012 If you know the "Problem" dialog will pop-up, add a WinWait & ControlClick after your last Controlcommand. OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
water Posted October 20, 2012 Share Posted October 20, 2012 This window always pops up even when you do all the steps manually? If yes, then KaFu's suggestion is the way to go. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
chen2j Posted October 20, 2012 Author Share Posted October 20, 2012 If you know the "Problem" dialog will pop-up, add a WinWait & ControlClick after your last Controlcommand. I tried,the scipt just stoped here,waiting for you to click.So,no matter what i write after it ,it dosen't work.when i click "yes" or "no",the scipt gose on. is this a bug? ControlCommand("页面设置 - 模型","",1053,"Check","") ;勾上“布满图纸” ControlCommand("页面设置 - 模型","",1006,"SelectString", 'monochrome') ; stoped here................ Sleep(2000) WinWait("问题") Sleep(2000) WinActivate("问题") Sleep(2000) WinWaitActive("问题") Sleep(2000) ControlClick("问题","是(&Y)",6) ControlClick("页面设置 - 模型","",1) ;关闭页面设置 WinWaitClose("页面设置 - 模型") ;等待关闭页面设置 ControlClick("页面设置管理器","",2) ;关闭页面设置管理器 WinWaitClose("页面设置管理器") ;等待关闭页面设置 WinActivate("AutoCAD 2011","正在重生成模型") Link to comment Share on other sites More sharing options...
chen2j Posted October 20, 2012 Author Share Posted October 20, 2012 The complete script expandcollapse popup#Region ;**** 参数创建于 ACNWrapper_GUI **** #PRE_Outfile_x64=cadtopdf.exe #PRE_Res_requestedExecutionLevel=None #EndRegion ;**** 参数创建于 ACNWrapper_GUI **** #Include <Array.au3> Local $flag Local $filename,$i Global $single,$spit AutoItSetOption("SendKeyDelay",50) $flag=1 ;图纸为A3则选择flag=1;图纸为A4则选择flag=0 ;ShellExecute(@ScriptDir&"wait.au3") $filename=FileOpenDialog("请选择需要转换的CAD文件","","图形 (*.dwg)",4) ;弹出选择文件对话框 If @error Then Exit ;如果没有选择或选择错误,则退出 $spit=StringSplit($filename,"|") ;分割文件变成数组 If @error Then $single=$filename ;说明选择的是单个文件 CADtoPDF($single) Else For $i=2 To $spit[0] ;一个一个的转换PDF,直到结束。 $single=$spit[1]&""&$spit[$i] CADtoPDF($single) Next EndIf ;_ArrayDisplay($spit,"") ;可以显示数组,做检查用 ;AdlibRegister("wenti",500) Func CADtoPDF($single) ;自定义函数。 Local $PID=ProcessExists("acad.exe") ;检测CAD是否已经在运行。 If $PID Then ProcessClose($PID) ;如果存在则终止进程 ShellExecute($single) ;运行文件 MouseMove(0,0) WinWait("AutoCAD 2011","正在重生成模型") ;等待AutoCAD加载完成 WinActivate("AutoCAD 2011","正在重生成模型") WinWaitActive("AutoCAD 2011","正在重生成模型") ControlSend("AutoCAD 2011","",2,"zoom all ") ;使页面最大化并打开页面设置管理器 ControlSend("AutoCAD 2011","",2,"pagesetup ") ;使页面最大化并打开页面设置管理器 WinWait("页面设置管理器") ;暂停直到打开页面设置管理器 ControlSend("页面设置管理器","",4696,"!m") ;按“ALT+M” WinWait("页面设置 - 模型") ;暂停直到打开页面设置 - 模型 ControlCommand("页面设置 - 模型","",1020,"SetCurrentSelection", 4) ;设置打印机为“Adobe PDF” If $flag=1 Then ControlCommand("页面设置 - 模型","",1040,"SelectString", 'A3') ;设置图纸尺寸为“A3” ControlCommand("页面设置 - 模型","",1037,"Check","") ;设置图形方形为“横向”,匹配A3 Else ControlCommand("页面设置 - 模型","",1040,"SelectString", 'A4') ;设置图纸尺寸为“A4” ControlCommand("页面设置 - 模型","",1036,"Check","") ;设置图形方形为“纵向”,匹配A4 EndIf ControlCommand("页面设置 - 模型","",1043,"SelectString", '范围') ;设置打印范围为“范围” ControlCommand("页面设置 - 模型","",1030,"UnCheck","") ;设置按打印样式打印为“否” ControlCommand("页面设置 - 模型","",1030,"Check","") ;设置按打印样式打印为“是”---防止没有勾上“打印对象线宽” ControlCommand("页面设置 - 模型","",1053,"Check","") ;勾上“布满图纸” ControlCommand("页面设置 - 模型","",1006,"SelectString", 'monochrome') ;设置打印样式表为mochrome.ctb-----未解决弹窗问题 #comments-start Sleep(2000) WinWait("问题") Sleep(2000) WinActivate("问题") Sleep(2000) WinWaitActive("问题") Sleep(2000) ControlClick("问题","是(&Y)",6) #comments-end ControlClick("页面设置 - 模型","",1) ;关闭页面设置 WinWaitClose("页面设置 - 模型") ;等待关闭页面设置 ControlClick("页面设置管理器","",2) ;关闭页面设置管理器 WinWaitClose("页面设置管理器") ;等待关闭页面设置 WinActivate("AutoCAD 2011","正在重生成模型") WinWaitActive("AutoCAD 2011","正在重生成模型") ControlSend("AutoCAD 2011","",2,"^p") ;打开打印对话框 WinWait("打印 - 模型") ;暂停直到打开"打印 - 模型" ControlClick("打印 - 模型","",1) ;关闭"打印 - 模型" WinWaitClose("打印 - 模型") WinWait("另存 PDF 文件为") ;暂停直到打开“另存 PDF 文件为” Sleep(500) ControlSend("另存 PDF 文件为","",1001,@DesktopCommonDir&""[email="&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC"]&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC[/email]) ;输入文件名称为日期时间 ControlSend("另存 PDF 文件为","",1,"^s") ;ControlClick("另存 PDF 文件为","",1) ;关闭“另存 PDF 文件为” AutoItSetOption("WinTitleMatchMode",2) ;设置标题匹配模式为“任意匹配” WinWait("Adobe Acrobat Pro") ;暂停直到打开“Adobe Acrobat Pro” WinClose("Adobe Acrobat Pro") ;关闭“Adobe Acrobat Pro” WinWaitClose("Adobe Acrobat Pro") ControlSend("AutoCAD 2011","",2,"^s") ;保存CAD WinClose("AutoCAD 2011") ;关闭CAD WinWaitClose("AutoCAD 2011") EndFunc ;#comments-start Func wenti() WinActivate("问题","是(&Y)") ControlClick("问题","是(&Y)",6) WinActivate("AutoCAD","是否将改动保存到") ControlClick("AutoCAD","是否将改动保存到",6) WinActivate("AutoCAD 警告","准备重生成 -- 是否继续?") ControlClick("AutoCAD 警告","准备重生成 -- 是否继续?",1) Sleep(500) EndFunc ;#comments-end Link to comment Share on other sites More sharing options...
water Posted October 20, 2012 Share Posted October 20, 2012 Try to determine where your script halts by checking the return value of the called function:ControlCommand("页面设置 - 模型","",1053,"Check","") ;勾上“布满图纸” ControlCommand("页面设置 - 模型","",1006,"SelectString", 'monochrome') ; stoped here................ Sleep(2000) MsgBox(0, "", "Calling WinWait") $iResult = WinWait("问题") MsgBox(0, "", "Result of WinWait: " & $iresult) Sleep(2000) $iResult =WinActivate("问题") MsgBox(0, "", "Result of WinActivate: " & $iresult) Sleep(2000) $iResult =WinWaitActive("问题") MsgBox(0, "", "Result of WinWaitActive: " & $iresult) Sleep(2000) ControlClick("问题","是(&Y)",6) ControlClick("页面设置 - 模型","",1) ;关闭页面设置 WinWaitClose("页面设置 - 模型") ;等待关闭页面设置 ControlClick("页面设置管理器","",2) ;关闭页面设置管理器 WinWaitClose("页面设置管理器") ;等待关闭页面设置 WinActivate("AutoCAD 2011","正在重生成模型") My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
KaFu Posted October 20, 2012 Share Posted October 20, 2012 For debugging write the function response to console to see where exactly the process went wrong. $hWnd = WinWait("问题","",5) if not $hWnd then ConsoleWrite("!Error, Window not found") ConsoleWrite(WinActivate($hWnd) & @crlf) ConsoleWrite(ControlClick($hWnd,"","[CLASS:Button; INSTANCE:1]") & @crlf) OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2022-Nov-26) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Feb-16) HMW - Hide my Windows (2018-Sep-16) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2023-Jun-03) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now