Jump to content

luckyluke

Active Members
  • Posts

    74
  • Joined

  • Last visited

Everything posted by luckyluke

  1. That is great, i was not clear about the pattern. thank you very much.
  2. $t = '... 1-347-318-9643 1-347-318-9647 1-347-318-9648 1-347-318-9650 1-347-318-9651 1-347-318-9652 1-347-318-9653 1-347-318-9655 1-347-318- ...' $pattern = '347.*?318.*?9655' $tmp = StringRegExpReplace($t, $pattern, "|||", 1) ConsoleWrite($tmp & @CRLF) However i got this output: ... 1-||| 1-347-318- ... Why i got only that, where is the other string, i thought the output should be this: ... 1-347-318-9643 1-347-318-9647 1-347-318-9648 1-347-318-9650 1-347-318-9651 1-347-318-9652 1-347-318-9653 1-||| 1-347-318- ...
  3. This code will get the output when the program ends. But i want to get the status when the program is running. Yes, i found it and tried it before. But the code actually get the output after the program exit. I want to get the console while the program is running. this is my code: the code will open the CMD and run "python ui.py" then get the output from console. #include 'array.au3' ;#include "UIAWrappers.au3" Global $DOS, $timer, $whd $live_file = IniRead(@ScriptDir & '\config.ini', 'py_run', 'live_file', '') $prediction_file = IniRead(@ScriptDir & '\config.ini', 'py_run', 'prediction_file', '') $training_file = IniRead(@ScriptDir & '\config.ini', 'py_run', 'training_file', '') $wait_time = IniRead(@ScriptDir & '\config.ini', 'py_run', 'wait_time', 6) FileDelete(@ScriptDir & '\pyConsole.txt') startPY() Sleep(1000) $checker = 1 $i = 1 While 1 $tmp = ControlGetText('python.exe', '', 'Button1') if StringInStr($tmp, 'check online for a solution') Then WinClose('python.exe') Sleep(3000) startPY() EndIf ;~ Sleep(50) ;; no need to go at full speed here. ;~ $sOutput='' ;~ While 1 ;~ $sOutput &= StdoutRead($DOS, False, False) ;~ If @error Then ;~ ExitLoop ;~ EndIf ;~ Sleep(10) ;~ ConsoleWrite($sOutput) ;~ WEnd $Message = StdoutRead($DOS) ;; ditched peek parameter + changed "=" to "&=" ... No more endless loop. if @error Then restartPY() startPY() EndIf ;$sOutput = StderrRead($DOS) ;ConsoleWrite($i & ':' & $sOutput & ',' & StringLen($sOutput) & @CRLF) ConsoleWrite($i & ':' & $Message & ',' & StringLen($Message) & @CRLF) $i=$i+1 if StringLen($Message)>2 and StringInStr($Message, @CRLF) Then ConsoleWrite('i:' & $i & ',' & $Message & @CRLF) ;$i=$i+1 if StringInStr($Message, ',') Then $tmp = StringSplit($Message, @CRLF) ;_ArrayDisplay($tmp) if not @error Then for $j = 1 to UBound($tmp)-1 if StringInStr($tmp[$j], ',') Then $file = FileOpen(@ScriptDir & '\pyConsole.txt', 1) FileWrite($file, $tmp[$j] & @CRLF) FileClose($file) EndIf Next EndIf EndIf $checker=1 Else $checker = $checker+1 ;ConsoleWrite('checker:' & $checker & @CRLF) if $checker=10 Then $timer = TimerInit() EndIf EndIf if $checker>=10000 Then $atime = TimerDiff($timer)/1000 if not @error Then if $atime>Number($wait_time) Then restartPY() startPY() EndIf EndIf EndIf if @error then exitloop WEnd Func restartPY() Do if WinExists('C:\Windows\system32\cmd.exe') then WinClose('C:\Windows\system32\cmd.exe') Else ExitLoop EndIf Until WinExists('C:\Windows\system32\cmd.exe')=0 WinActivate('Predictive model 1.0') Sleep(500) WinClose('Predictive model 1.0') WinWait('Confirm Exit', '', 3) WinActivate('Confirm Exit') WinMove('Confirm Exit', '', 0, 0) Sleep(500) if WinExists('Confirm Exit') then MouseClick('left', 109,94) Sleep(4000) EndFunc Func startPY() $CMD = 'cd ' & @DesktopDir & '\Predictive_model && ' & _ 'python ui.py' $DOS = Run(@ComSpec & ' /C ' & $CMD, @ScriptDir, @SW_SHOW, $STDOUT_CHILD+$RUN_CREATE_NEW_CONSOLE) ;$DOS = Run(@ComSpec & ' /C ' & $CMD, @ScriptDir, @SW_SHOW, $STDIN_CHILD + $STDERR_MERGED) ConsoleWrite($DOS & @CRLF) $mtitle = 'Predictive model 1.0' WinWait($mtitle, '', 5000) ;Sleep(5000) WinMove($mtitle, '', 0, 0) Sleep(1000) ;=====================================set value to GUI================================================= ;live file ;_UIA_Action("Title:=;controltype:=UIA_EditControlTypeId;class:=","setfocus") ;_UIA_Action("Title:=;controltype:=UIA_EditControlTypeId;class:=","setValue using keys", "C:\Users\Administrator\Desktop\Sabrina Betting\LV1.txt") WinActivate($mtitle) Sleep(1000) MouseClick('left', 345,87) Send("^a") Sleep(500) Send($live_file & '11') ;prediction file WinActivate($mtitle) Sleep(1000) MouseClick('left', 345,200) Send("^a") Sleep(500) Send($prediction_file) ;use control click WinActivate($mtitle) Sleep(1000) MouseClick('left', 345,234) Send("^a") Sleep(500) Send($training_file) ;click start button ;~ Local $oP1=_UIA_getObjectByFindAll($UIA_oDesktop, "Title:=Predictive model 1.0;controltype:=UIA_WindowControlTypeId;class:=QWidget", $treescope_children) ;~ Local $oP0=_UIA_getObjectByFindAll($oP1, "Title:=;controltype:=UIA_CustomControlTypeId;class:=", $treescope_children) ;~ Local $oUIElement=_UIA_getObjectByFindAll($oP0, "title:=Start;ControlType:=UIA_ButtonControlTypeId", $treescope_subtree) ;~ _UIA_action($oUIElement,"focus") ;~ _UIA_action($oUIElement,"click") WinActivate($mtitle) Sleep(1000) MouseClick('left', 593,301) Sleep(3000) EndFunc
  4. yes, i tried, but not work. I see that if i close the program then it will show the message in the output. but if i run it from cmd, the message appears even when program is running.
  5. Do you mean read from cmd.exe using StdoutRead, yes it can read output from cmd but not all things. I have an other program run using CMD, it will out the result to CMD, then i used StdoutRead to read from cmd, but can not get all result from there.
  6. Yes, that is the common way, i tried it, but it does not capture all output from the cmd. That why i want to try with console attach Your code is using the Stdreadout, i tried it before but it did not work.
  7. Hello, Im trying to read the output from CMD using Dllcall, here is my code: #include <WinAPI.au3> #include <array.au3> Global Const $STD_OUTPUT_HANDLE = -11 Global Const $_CONSOLE_SCREEN_BUFFER_INFO = _ "struct;int dwSizeX;" & _ "short dwSizeY;" & _ "short dwCursorPositionX;" & _ "short dwCursorPositionY;" & _ "short wAttributes;" & _ "short Left;" & _ "short Top;" & _ "short Right;" & _ "short Bottom;" & _ "short dwMaximumWindowSizeX;" & _ "short dwMaximumWindowSizeY;endstruct" $pCmd = Run( "cmd.exe" ) Sleep(1000) $hCmd = WinGetHandle("") ConsoleWrite('handle:' & $hCmd & @CRLF) $aRet = DllCall("kernel32.dll", "int", "AttachConsole", "dword", $pCmd) ;_ArrayDisplay($aRet) If $aRet[0] <> 0 Then $vHandle_data='' $vHandle='' $vHandle_data = DllStructCreate($_CONSOLE_SCREEN_BUFFER_INFO) ; Screen Buffer structure $aRet1 = DllCall("kernel32.dll", "hwnd", "GetStdHandle", "dword", $STD_OUTPUT_HANDLE) if not @error Then $vHandle = $aRet1[0] $aRet = DllCall("kernel32.dll", "int", "GetConsoleScreenBufferInfo", "hwnd", $vHandle, _ "ptr", $vHandle_data) MsgBox(0, '1',DllStructGetData($vHandle_data, 'dwSizeX') & _WinAPI_GetLastErrorMessage()) EndIf It did not work, i got the message 'The handle is invalid'. Please help? Thank you in advance!
  8. Thank you. Actually, i am trying to use http request in VBA and it does not work, so i come to autoit and try it but it does not work too. So, how can i make it work if i only want to use http request?
  9. that is strange, i am using wins7 64bit, not sure what is the problem
  10. hi all, i tried to access to the website https://www.auction.com/residential/ with http request. here is the code: Global $oHTTP = ObjCreate("winhttp.winhttprequest.5.1"), $date, $limit, $rdir, $wpdir $agent ='Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Mobile Safari/537.36' $url = 'https://www.auction.com/residential/' ConsoleWrite($url & @CRLF) $oHTTP.Open("GET", $url, False) $oHTTP.setRequestHeader ("User-Agent", $agent) ;$oHTTP.Option(4) = 13056 $oHTTP.Send() $srcHTML = ($oHTTP.ResponseText) ConsoleWrite($srcHTML & @CRLF) But when i run it, i always get the error: ==> The requested action with this object has failed.: $oHTTP.Send() $oHTTP^ ERROR for other website, it is working well, but this one does not. Pls help me
  11. Hi, i tested the code with other computer, and it did not work. Do you get the result or blank message box? I dont know why is that.
  12. Hello all, Im trying to get the information from https website, but it does not return any thing, here is the code: Global $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $agent ='Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36' $url = "https://www.sportinglife.com/racing/results" $oHTTP.Open("GET", $url, False) $oHTTP.setRequestHeader ("User-Agent", $agent) $oHTTP.Option(4) = 13056 $oHTTP.Send() $src = ($oHTTP.ResponseText) ConsoleWrite($url & @CRLF) MsgBox(0, '$src', $src) when i tried with other website, it is working, but this code does not works with this website. Pls help me thank you.
  13. Juvigy check the careca 's code, it worked for me.
  14. The point is i want to get text from CMD which is run by other program. so we cant start CMD using autoit.
  15. Hi, here is the steps: 1. i start cmd in windows. open task manager to get the process ID of CMD 2. I run autoit script, then put the ID i got from step 1, then the script will need to read output from cmd. for example in cmd i type "help", then the script will read the output from cmd. Is that ok?
  16. #include <Constants.au3> Local $iPID = InputBox("Input process id of CMD", "Input process id of CMD") Local $sStdOut = "" While 1 $sStdOut &= StdoutRead($iPID) ConsoleWrite(StdoutRead($iPID) & @CRLF) If @error Then ExitLoop Wend Here is the code
  17. Hello, I have process id of CMD and i want to read output from it. i have used StdoutRead but it does not work. for example: i start CMD without using Autoit, then i get the process ID, then i use Autoit to read the output using pID, but it does not work. Pls help thanks
  18. Hi, im using XP SP3. I've searched for UIAutomationCore.dll and found it in system32 folder, so i think it's installed
  19. Hi i've check in UIAWrappers.au3 and found that the script can not create object func _UIA_Init() ;~ consolewrite("initializing") ;~ The main object with acces to the windows automation api 3.0 $objUIAutomation = ObjCreateInterface($sCLSID_CUIAutomation, $sIID_IUIAutomation, $dtagIUIAutomation) If IsObj($objUIAutomation) = 0 Then msgbox(1,"UI automation failed", "UI Automation failed",10) Return SetError(1, 0, 0) EndIf $objUIAutomation = 0 so it's not a object. Im using Autoit version 3.3.10.2. What should i do now?
  20. Hi all Im working with sample code from this page: '?do=embed' frameborder='0' data-embedContent>> The example code is Example 4 that demonstrates the calculator ​The error i get when run this code is: --> Press Ctrl+Alt+F5 to Restart or Ctrl+Break to Stop matched: class30012 Matching: 30012 for CalcFrame "C:\Program Files\AutoIt3\Include\UIAWrappers.au3" (553) : ==> Variable must be of type "Object".: $objUIAutomation.createPropertyCondition($PropertyId, $tVal, $pCondition) $objUIAutomation^ ERROR ->21:51:53 AutoIt3.exe ended.rc:1 +>21:51:53 AutoIt3Wrapper Finished.. Please help Thanks
  21. Thanks for your idea, i will try it.
×
×
  • Create New...