Jump to content

poddex

Active Members
  • Posts

    20
  • Joined

  • Last visited

Everything posted by poddex

  1. Downloaded last 3.3.16.1. Still experience a problem, statement like ObjectAutoit.WinExists("",WindowHeader) works very slowly on Windows 10 20H2 when called from AutoitX COM-object. Why?
  2. I updated framework to the latest. I reinstalled AutoIt. Nothing happens. But...I found strange thing. When I try code like this ObjectAutoIt=New COMObject("AutoItX3.Control");ObjectAutoIt.AutoItSetOption("WinTextMatchMode",2); While ObjectAutoit.WinExists(WindowHeader) Cycle ObjectAutoIt.WinClose(WindowHeader); EndCycle; All is fine!!!!!! But when I change code to (for finding in a text description of window....) ObjectAutoIt=New COMObject("AutoItX3.Control");ObjectAutoIt.AutoItSetOption("WinTextMatchMode",2); While ObjectAutoit.WinExists("",WindowHeader) Cycle ObjectAutoIt.WinClose("",WindowHeader); EndCycle; The problem begins. What is that??? I want close ALL windows related to a current project's window. There is a little string (like "1234" inside window text explained what folders and windows related to the current project's window. But statement ObjectAutoit.WinExists(WindowHeader) doesn't find all window text, only ObjectAutoit.WinExists("",WindowHeader) finds. But in Windows 10 above 1807 this statement causes a delay! I put my code in Scite like this AutoItSetOption("WinTitleMatchMode",2) While WinExists("","4514") WinClose("","4514") WEnd And it works fine, no delays. Though, I thinks that it's an AutoItX problem caused by new Windows updates.
  3. Updated 20H2 today. Nothing happens. Tomorrow will reinstall AutoIt and try to update my framework worked with it. Maybe problem inside it, but I'm confused - 1807 had no problems. Fu***g amazing Windows 10 updates πŸ˜ƒ
  4. This method looks as a sledgehammer strike, I do this later, when all other methods will not help me. Haven't enough time, will update Windows soon to the latest, maybe it helps, like Confuzzled tell.
  5. ESET doesn\t affect this situation. Here is a pic (in attach), is it normal to see NAME_NOT_FOUND?
  6. How this explains that before update all was perfect. I will test with and without ESET and post result here.
  7. Same antivirus as before Windows update πŸ˜ƒ ESET Internet Secirity. I updated Windows for 1909 - nothing changes, still exprerience the issue. Yesterday evening MS didn't want update me for 2004, only for 1909 πŸ˜ƒ
  8. Still experience with 1903, When I update Windows, I post results about testing here.
  9. Installing Windows 10 is quick, no problem, but installing ALL other my programs and tools (including their settings) will take 2-3 hours waisting my time. It's easier to switch script engine πŸ˜ƒ
  10. Hmm, I see that this problem is not a mass problem πŸ˜ƒ Anyone help??? Maybe, I will try update Windows again and problem will go away?)))
  11. Here is a list of WinList[ALL] statement of AutoItX in my code. Earlier there are no problems with it. But now some window(s) causes a delay. What window can do that? Windows.xlsx
  12. Ok, I made some diag for this. And found, that I can't even sort opened windows by it's PIDs. I can't select only explorer-related folders for WinExists-condition and WinExists checked title-condition for ALL windows (by logic, yes, but I prove this one more time for me). Some of them caused WinExists function for huge delay described above. imho, it's not effective to see ALL windows, when I want to look for windows of a specific process. But I can't select it. I can get WinList habdles massive, I can get WinGetProcess PID (only one), but I can't point WinExists to look only for Windows caused by specific PID. And I can't to check which handle from WinList is for which PID to close them. And finally I want to check if this Window EXISTS. PIDs always changed, ok. But I haven't any ideas for now. Maybe I'm doing some wrong? It's possible to avoid this delay issue or I must use another script-engine? I found that WinList function has no delay. This fact shows that delay is exactly in WinExists function, when it "looks inside" a window information. I found that "While ObjectAutoit.WinExists("",WindowHeader) Cycle" loop cycles as many times as explorer-folders windows are opened. So, WinExists cycles through ALL windows inside itself (not in my code, I see only succeeded loops). So, delay-problem is in WinExists function inside AutoItX library. And I can't trace which window causes it to delay because there is no any verbose (or I didn't find it) inside AutoitX. Please, anybody, any suggestions will be appreciated.
  13. Please, any help πŸ˜ƒ Any. Maybe I can find such as verbose mode for AutoitX library? Thanks.
  14. The code from 1st post: ObjectAutoIt=New COMObject("AutoItX3.Control"); ObjectAutoIt.AutoItSetOption("WinTextMatchMode",2); While ObjectAutoit.WinExists("",WindowHeader) Cycle ObjectAutoIt.WinClose("",WindowHeader); EndCycle; does this: when Project Windows closed, it finds all related folder-windows and closes them. Only folders are affected. By testing slow-error, I found, that first iterations passes quickly, folders closes by it. But after closing last folder WinExists loop got a huge delay (~20 s) - on a line "While ObjectAutoit.WinExists("",WindowHeader) Cycle". So, delay appears at last of loop execution, only AFTER all windows matched for a condition (""",WindowHeader" ) close. Need help with further diagnostic
  15. Checked. As for me, installing BETA 3.3.15.3 has NO effect. Need help with diagnose this.
  16. Read, will check the beta. Great thanks for info.
  17. Forget a detail - option that I used: ObjectAutoIt.AutoItSetOption("WinTextMatchMode",2);
  18. Hello everyone. I always try to work with old Windows 10 versions as much as possible because I know mane compatibility issues with Windows 10 upgrading. But I couldn't do anything else (I got drivers problem), and nothing couldn't help me besides upgrading, so I upgraded from 1807 to 1903. And...get another problem πŸ˜ƒ I use AutoitX library in external project like this. ObjectAutoIt=New COMObject("AutoItX3.Control"); ObjectAutoIt.AutoItSetOption("WinTextMatchMode",2); While ObjectAutoit.WinExists("",WindowHeader) Cycle ObjectAutoIt.WinClose("",WindowHeader); EndCycle; After upgrade I get that this line code While ObjectAutoit.WinExists("",WindowHeader) become extremely low - ~ 20 seconds even if 10 windows open. But before upgrade it takes 0.5 s for a max. And every time that this code line passes through - it takes ~20s, (20.115, for example), not less, not more. Something pauses it to work. How can I diagnose, what is that? I tried reinstall whole AutoIt, but no results. Thanks to all.
  19. When I closed the door of my job cabinet, I thinking about this. And damn... I am stupid looser. In $const_process I stored the name for process to killing. And there is a line in my script - If...ProcessExists...ProcessClose($const_process). So, when I named the executable file with name, stored in $const_process, script kills itself, when running. Damn... Problem solved. Sorry for any wrongful concerns. CheckXML is a program for check XML-reports made by the PensionFund report program SPU-ORB. This script allows automatically update this program via LAN from repository. Thanks to all.
  20. Hello! Here is the script ;Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠΊΠΎΠ½ΠΊΡƒ Π² систСмном Ρ‚Ρ€Π΅Π΅ ;#NoTrayIcon ;---------------------------объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…--------------------------------------------- Dim $max_date ;объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ максимальная Π΄Π°Ρ‚Π° измСнСния Ρ„Π°ΠΉΠ»Π° Dim $strdate ;пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ строка Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹ измСнСния Ρ„Π°ΠΉΠ»Π° Dim $numdate ;пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚Ρ‹ измСнСния Ρ„Π°ΠΉΠ»Π° Dim $str_srav_date ;пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ считываСтся Π΄Π°Ρ‚Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΈΠΏ строка Dim $num_srav_date ;пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ считываСтся Π΄Π°Ρ‚Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Ρ‚ΠΈΠΏ число Dim $file_list ;список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ Dim $file_name ;Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ имя Ρ„Π°ΠΉΠ»Π° Dim $file ;ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° Dim $saved_file_name ;сохранСнноС имя Ρ„Π°ΠΉΠ»Π° с максимальной Π΄Π°Ρ‚ΠΎΠΉ измСнСния Dim Const $const_path="\\10.30.5.2\Obmen\Автоматизация\ОбновлСния\CheckXML\!update" ;path to an update folder Dim Const $const_process="checkxml.exe" ;name of a process for killing Dim Const $const_file_date="checkxml.txt" ;name of a log file with date of an last update file Dim $long_file_name ;contains the full path+name of the update file $max_date=20000101000000 ;инициализация максимальной Π΄Π°Ρ‚Ρ‹ измСнСния Ρ„Π°ΠΉΠ»Π° минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π΄Π°Ρ‚ΠΎΠΉ ;------------------поиск Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ„Π°ΠΉΠ»Π° с наибольшСй Π΄Π°Ρ‚ΠΎΠΉ измСнСния--------------------------- $file_list=FileFindFirstFile($const_path & "\*.exe") ;ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ поиск ΠΈ Π²Ρ‹Π²ΠΎΠ΄ списка всСх Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ exe If $file_list=-1 Then ;Ссли Π² ΠΏΠ°ΠΏΠΊΠ΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ *.exe Exit ;Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ EndIf While true ;бСсконСчный Ρ†ΠΈΠΊΠ» для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° всСх Π½Π°Π·Π²Π°Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² $file_name=FileFindNextFile($file_list) ;Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ присваиваСтся имя Ρ„Π°ΠΉΠ»Π° If @error Then ExitLoop ;ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ большС Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° $long_file_name=$const_path & "\" & $file_name ;conacatenation of path and name of an update file $strdate=FileGetTime($long_file_name,0,1) ;ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π°Ρ‚Ρƒ измСнСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² строку $numdate=Number($strdate) ;ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ строку Π² числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ If $max_date<$numdate Then ;Ссли максимальная Π΄Π°Ρ‚Π° Ρ„Π°ΠΉΠ»Π° мСньшС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ $max_date=$numdate ;присваиваСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ максимальной $saved_file_name=$long_file_name ;ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π° EndIf WEnd FileClose($file_list) ;ΠΊΠΎΠ½Π΅Ρ† ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ;;----------------------считываниС Π΄Π°Ρ‚Ρ‹ послСднСго обновлСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π°------------------------------ $file=FileOpen("c:\windows\pfrupdate\" & $const_file_date) ;ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для чтСния $str_srav_date=FileReadLine($file,-1) ;ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ послСднюю строку - Π² Π½Π΅ΠΉ хранится Π΄Π°Ρ‚Π° измСнСния Ρ„Π°ΠΉΠ»Π°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ послСдний Ρ€Π°Π· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ $num_srav_date=Number($str_srav_date) ;ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ число FileClose($file) ;Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ;---------------------сравнСниС максимальной Π΄Π°Ρ‚Ρ‹ измСнСния Ρ„Π°ΠΉΠ»Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ΠΈ Π΄Π°Ρ‚Ρ‹, считанной ΠΈΠ· Ρ„Π°ΠΉΠ»Π°--------------------------------------------- If $max_date<>$num_srav_date Then ;FileChangeDir("\\10.30.5.2\Obmen\Автоматизация\ОбновлСния\CheckXML\Rep") ;мСняСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для запуска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ) ;-----------------------запуск Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ--------------------------------- If ProcessExists($const_process) Then ;If checkxml is running ProcessClose($const_process) ;killing the CheckXML process EndIf RunWait($saved_file_name) ;запуск Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ;-----------------------запись Π΄Π°Ρ‚Ρ‹ измСнСния Π² Ρ„Π°ΠΉΠ»------------------------------- $file=FileOpen("c:\windows\pfrupdate\" & $const_file_date,2) ;ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для записи ΠΏΡ€ΠΈ стирании ΠΏΡ€Π΅Π»Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ содСрТимого FileWriteLine($file,$max_date) ;запись Π² Ρ„Π°ΠΉΠ» Π΄Π°Ρ‚Ρ‹ измСнСния Ρ„Π°ΠΉΠ»Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ послСдним ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΡΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ FileClose($file) ;Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° EndIf The Script file was named as Updater.au3. When I cimpiled it under name Updater.au3 (became an Updater.exe), it works. But... when I renamed it to CheckXML.au3, and compiled...it works only in SciTe editor's window, but doesn't works when compiled (CheckXML.exe not works). When I renamed my working Updater.exe to CheckXML.exe, it also not works. When I changed all "checkxml" words to "Is2002" words (inside the script), and compile the script under the name Is2002.exe, it also not works. But it works under the name 111.exe (for example). I can rename checkxml.exe to 111.exe, and script became working. I debug the script checkxml.exe for the problems and found that script stops here If $max_date<>$num_srav_date Then ;FileChangeDir("\\10.30.5.2\Obmen\Автоматизация\ОбновлСния\CheckXML\Rep") ;мСняСм Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для запуска Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ) ;-----------------------запуск Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ--------------------------------- If ProcessExists($const_process) Then ;If checkxml is running ProcessClose($const_process) ;killing the CheckXML process EndIf RunWait($saved_file_name) ;запуск Ρ„Π°ΠΉΠ»Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ ;-----------------------запись Π΄Π°Ρ‚Ρ‹ измСнСния Π² Ρ„Π°ΠΉΠ»------------------------------- $file=FileOpen("c:\windows\pfrupdate\" & $const_file_date,2) ;ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° для записи ΠΏΡ€ΠΈ стирании ΠΏΡ€Π΅Π»Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ содСрТимого FileWriteLine($file,$max_date) ;запись Π² Ρ„Π°ΠΉΠ» Π΄Π°Ρ‚Ρ‹ измСнСния Ρ„Π°ΠΉΠ»Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ послСдним ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠ»ΡΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ FileClose($file) ;Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° EndIf I solved problem (by renaming the scripts), but it is very interesting. Maybe a bug? Possibly. But very inteseting. I killed 2 hours for finding a problem:) I tried to compile scripts without UPX compression, but scripts not work again. The script itself in attachment. Sorry for russian comments here. updater.au3
Γ—
Γ—
  • Create New...