Jump to content

Search the Community

Showing results for tags 'crash'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • Forum
  • AutoIt

Calendars

  • Community Calendar

Found 8 results

  1. this is a follow-up to i sporadically and very rarely get an access violation exception. here is some simplyfied repro code: #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Change2CUI=y #AutoIt3Wrapper_Run_Tidy=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include-once #include <Array.au3> #include <security.au3> ;~ #include "ESC_Globals.au3" Global Const $WTS_CURRENT_SESSION = -1 Global Const $WTS_CURRENT_SERVER_HANDLE = 0 Global Const $WTS_CLIENTPROTOCOLTYPE = 16 Global Const $WTS_CONNECTSTATE = 8 Global Const $WTS_USERNAME = 5 Global Const $tagWTS_SESSION_INFO = _ "dword SessionId;" & _ "ptr WinStationName;" & _ "uint State" Global Const $tagWTS_PROCESS_INFO = _ "DWORD SessionId;" & _ "DWORD ProcessId;" & _ "PTR pProcessName;" & _ "PTR pUserSid" For $i = 0 To 1000 * 20 ConsoleWrite("iteration " & $i & @CRLF) _GetProcessList() Sleep(1000) Next MsgBox(0, "COMPLETED", "everything done") ;***************************************** ;# returns an array: ProcessName | ProcessID | SessionID | ProcessOwner Func _GetProcessList() Local $i, $aRet ConsoleWrite("_GetProcessList() --> " & @AutoItPID & @CRLF) Local $aProcessList = ProcessList() $aRet = DllCall("WTSApi32.dll", "int", "WTSEnumerateProcesses", "int", $WTS_CURRENT_SERVER_HANDLE, "int", 0, "int", 1, "ptr*", 0, "int*", 0) If @error Or ($aRet[0] == 0) Then MsgBox(4096 + 48, "Error", "Failed invoking WTSEnumerateProcesses") Return (SetError(1, 0, -1)) EndIf Local $array[$aRet[5]][4] Local $mem = DllStructCreate($tagWTS_PROCESS_INFO, $aRet[4]) For $i = 0 To $aRet[5] - 1 ConsoleWrite("IT: " & $i) ;# DEBUG $mem = DllStructCreate($tagWTS_PROCESS_INFO, $aRet[4] + ($i * DllStructGetSize($mem))) ConsoleWrite(" - PID: ") ;# DEBUG $array[$i][1] = Int(DllStructGetData($mem, "ProcessId"), 1) ;# convert to Int32 ConsoleWrite($array[$i][1]) ;# DEBUG ConsoleWrite("; SID: ") ;# DEBUG $array[$i][2] = Int(DllStructGetData($mem, "SessionId"), 1) ;# convert to Int32 ConsoleWrite($array[$i][2]) ;# DEBUG Local $name1 = "???" For $j = 1 To $aProcessList[0][0] If $aProcessList[$j][1] == $array[$i][1] Then $name1 = $aProcessList[$j][0] ExitLoop EndIf Next ConsoleWrite("; NAME1: " & $name1) ;# DEBUG ConsoleWrite("; NAM") ;# DEBUG Local $ret2 = DllStructGetData($mem, "pProcessName") ConsoleWrite("E") ;# DEBUG Local $ret3 = DllStructCreate("char[256]", $ret2) Local $myRet = @error ConsoleWrite(": ") ;# DEBUG If $myRet == 0 Then Local $string = "" & DllStructGetData($ret3, 1) & "" ;# <==== here it sometimes CRASHES $array[$i][0] = $string ConsoleWrite($array[$i][0]) ;# DEBUG Else MsgBox(4096 + 48, "Error", "Failed for DllStructCreate: " & $myRet) ;# i never got here $array[$i][0] = "???" ConsoleWrite($array[$i][0]) ;# DEBUG EndIf ConsoleWrite("; OWNER") ;# DEBUG Local $ret3 = _Security__LookupAccountSid(DllStructGetData($mem, "pUserSid")) ConsoleWrite(": ") ;# DEBUG If IsArray($ret3) Then $array[$i][3] = "" & $ret3[1] & "/" & $ret3[0] & "" ConsoleWrite($array[$i][3]) ;# DEBUG EndIf ConsoleWrite(@CRLF) ;# DEBUG Next ConsoleWrite("endLoop." & @CRLF) ;# DEBUG DllCall("WTSApi32.dll", "int", "WTSFreeMemory", "int", $aRet[4]) ConsoleWrite("_GetProcessList() <-- " & @AutoItPID & @CRLF) ;# DEBUG Return $array EndFunc ;==>_GetProcessList first of all i'd like to understand WHY it crashes in DllStructGetData. and then i'd like to AVOID it, of course so far i have found no way to add some try-catch logic in AutoIt. any ideas why it would crash under very rare circumstances? my script is 32bit executed on windows 64bit OS. i have seen it on both, windows 7 and windows 10. i have seen it with both, script execution and compiled exe.
  2. I am having a very unique, but repeatable problem with ImageMagick COM interface. Here are the applicable lines of code: $oIM=ObjCreate("ImageMagickObject.MagickImage.1") and then later on... $oIM.Convert(String($arFileList[$nFileIndex])&'[0]',"-alpha", "remove",@TempDir&"\temp.jpg") the array points to a pdf file with the "convert" command converting the first page of the pdf to a jpg with any alpha layer removed. Every time, without fail, the first time I run the script on a freshly booted machine it crashes on the $oIM.Convert command. It does this if it isn't compiled and says there is an error executing the command on the object. If compiled, i get an error that autoit has stopped responding. Anytime I run the script, compiled or not, after this initial crash everything works perfectly fine. I am totally at a loss as to why this is occurring and how to correct it.
  3. One web created Excel sheet is crashing when calling the _Excel_BookOpen function. "C:\Program Files (x86)\AutoIt3\Include\Excel.au3" (227) : ==> Variable must be of type "Object".: $oExcel.Windows($oWorkbook.Name).Visible = $bVisible $oExcel.Windows($oWorkbook.Name)^ ERRORLocal $oWorkbook = $oExcel.Workbooks.Open($sFilePath, $bUpdateLinks, $bReadOnly, Default, $sPassword, $sWritePassword) in line 225 seems to load the file but no error is set. Is there any way to catch those errors to avoid app crash? ObjEvent("AutoIt.Error", "ErrFunc") doesn't catch it! Tested on 3.3.14.2 and 3.3.15.0 and Office 2013.
  4. So, I'm trying to make this autoit script, and there's a function and stuff, but I can't write a function, inside a function! It's just not working. Like; Func Function_A($para1) Local $thing = 1 Func Function_B() ;Stuff here EndFunc If Function_B($thing) Then ;Stuff Else ;Stuff EndIf EndFunc ; Something like that.I'm either doing it wrong, or I can't do it in autoit. Anyway, help me please!
  5. C DLL Question

    Hi! I have a question: - Why the hell would an application crash when I launch it from windows explorer, and works all fine when I launch it from command prompt????? More details: - It's an app that uses a DLL written in pure C of mine - The app also runs well when launched from SciTE (think it's a problem with the stdout...) - The module concerned in the crash is msvcrt.dll - All parts of the dll (event external libraries) are compiled using the same GCC (no any .NET sh*t) - Not only with AutoIt, even if I try to use this DLL with FreeBasic, I have the same crash - Befor, the DLL was not crashing this way, but I made many changes (and I didn't tracked them) since the last good version, so I have no idea where it comes from Big thanks!
  6. I have a script for starting all my startup programs. But when I use the script to start skype, skype crashes immediately. When I start up skype using the shortcut on the desktop it works fine. (I'm running Windows 7 64-bit with AutoIt3.exe in compatibility mode for Windows XP.) Any ideas? Dim $answer If Not ProcessExists("wonderfl.exe") Then Run("C:\Program Files (x86)\Wonderful\wonderfl.exe") Sleep(100) EndIf $answer = MsgBox(4, "", "Run remaining startup programs?", 60) If $answer = 7 Then Exit ; if no button is selected, exit script If Not ProcessExists("PureText.exe") Then Run("C:\Program Files (x86)\Puretext\PureText.exe") Sleep(100) EndIf If Not ProcessExists("2xExplorer.exe") Then Run("C:\Program Files (x86)\2xExplorer\2xExplorer.exe") Sleep(100) EndIf If Not ProcessExists("RBTray.exe") Then Run("C:\Program Files\RBTray Minimize to Tray\64bit\RBTray.exe") Sleep(100) EndIf If Not ProcessExists("FileBX.exe") Then Run("C:\Program Files (x86)\FileBX\FileBX.exe") Sleep(100) EndIf If Not ProcessExists("FreeWheel.exe") Then Run("C:\Program Files (x86)\FreeWheel\FreeWheel.exe") Sleep(100) EndIf If Not ProcessExists("firefox.exe") Then Run("C:\Program Files (x86)\Mozilla Firefox\firefox.exe") Sleep(10000) EndIf If Not ProcessExists("thunderbird.exe") Then Run("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe") Sleep(10000) EndIf If Not ProcessExists("HprSnap7.exe") Then Run("C:\Program Files (x86)\HyperSnap 7\HprSnap7.exe") Sleep(10000) EndIf If Not ProcessExists("magicJack.exe") Then Run("C:\Users\shmuelw\AppData\Roaming\mjusbsp\magicJack.exe") Sleep(10000) EndIf If Not ProcessExists("Skype.exe") Then Run("C:\Program Files (x86)\Skype\Phone\Skype.exe") Sleep(100) EndIf WinMinimizeAll()
  7. Not familiar with "winhttp.winhttprequest.5.1" Object, Ergo: Just experimenting a bit with it. When using the 'ResponseStream' option ... AutoIt crashes. - Anything I'm doing wrong (or missed) ? (or potential issue/bug) Don't know much about a 'IStream', other than that 'ResponseStream' is supposed to return a pointer to it. msdn: WinHttpRequest Object main() Func main() Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") Local $sType = 'GET' Local $sUrl = 'http://www.autoitscript.com/site/' Local $sData = '' ;; optional parm. _HTTPRequest($oHTTP, $sType, $sUrl, $sData) EndFunc Func _HTTPRequest($oHTTP, $oMethod, $oURL, $oData = "") ;; http://msdn.microsoft.com/en-us/library/aa384106 Local $iResult = 0 ;; debug $oHTTP.Open($oMethod, $oURL, False) ;; empty -> ok. $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5") ;; empty -> ok. If $oMethod = "POST" Then $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") ;; empty -> ok. EndIf $oHTTP.Send($oData) ;; empty -> ok. ;~ ;; options: ResponseBody, ResponseStream, ResponseText, Status, StatusText ;~ $iResult = $oHTTP.StatusText ;; "OK" -> ok. ;~ $iResult = $oHTTP.Status ;; 200 -> ok. ;~ $iResult = $oHTTP.ResponseBody ;; binary(ResponseText) -> ok. ;~ $iResult = $oHTTP.ResponseText ;; html page/content -> ok. $iResult = $oHTTP.ResponseStream ;; crash with 3.3.6.1 & 3.3.7.14 (Win.Xp.32b) EndFunc
  8. Full-Screen Crash Recovery 1.0 Crashed programs or games with screens that won't go away? Ctrl-Alt-Del, Alt-F4, Alt-Tab, and the Windows Key not working for ya? Do you find that you can 'almost' just get out of a game screen, but see constant flicker and only parts of the Windows desktop or mouse pointer? Want a fix for all that crap? Here it is. This bad boy will drop that program and kick it to the curb. public/style_emoticons/autoit/laugh.gif =P So what's it all about? This program uses Yashied's 'HotKey.au3' UDF to track keypresses and looks for this combo: Shift-Alt-Del (easy enough to remember eh?) Once you press that combo, my program will kick in and start analyzing the Windows on the screen - finding at most two windows that have full-screen or maximized status (there is a difference in Window's world). If the *active* window is the one that matches those criteria, it is chosen as the 'target' (otherwise, the first found non-Explorer window will be the target). Now, I'm all about safety (preventing accidents) - but I'm also all about killing something if it's really crashed. So what my program does on each hotkey press is this: On the 1st Shift-Alt-Del press, the program determines if the 'target' Window it finds is Hung/Crashed using a quick method. If Window reports that it is - it's killed on the spot, and the cycle resets. If not, it will save the 'target' info for the proceeding hotkey presses.On the 2nd Shit-Alt-Del press, the program will look again through the Window list. If it finds the same 'target', it will again check if the program is Hung/Crashed or Suspended (if so, kill & reset). This process can take up to 5 seconds, especially for a suspended app. Now, since the app was found twice, and is responding to messages, my program will attempt to alter a window's 'Always-on-Top' status and Minimize it. Sometimes (!!) this may solve the case (other times, not-so-much). On the 3rd Shift-Alt-Del press, the program will search again as above, compare the window to the last one, and if it's the same, and still in full-screen/maximized state, it will finally say 'screw it', and just terminate the application.At each step, you'll get a speaker Beep confirmation (if you don't have an internal PC speaker, you can alter the Beeps to 'SoundPlay()' or somesuch). In any case, the Beeps are like this. (thanks montymintypie for suggesting this): low beep = no window found in maximized/full-screen statushigh beep = window found, but Windows isn't reporting it is hungdual-tone beeps (mid-then-high) = Window terminated.In addition, if the hotkey to close the app down is pressed, you'll get a reverse dual-tone-beep (high-low) meaning its shut down. By the way, that hotkey is: Shift-ALT-Q (terminate my program) The reason for this 'third-times-a-charm' thinking is that: You want to be sure that you really wanted to close that app (if for some reason Windows reports the app as crashed though, there's no 2nd or 3rd time),Sometimes minimizing actually does work, andIf you were able to close/minimize the application, and switched to another and maximized/full-screened it, the code will recognize that the screen is no longer in that maximized/full-screen state, and simply reset its internal variables (and the HotKey-press count will reset to 0)NOTES: Any window owned by Explorer.exe process will be IGNORED, with the exception that if explorer.exe itself has crashed (and pulled other windows into its vortex), it will allow it to be terminated (and then restarted). But under typical circumstances, it will differentiate the Explorer Windows from regular Application/Game windows, and by doing so, prevent accidental closure of the main Windows interface!As stated above, any time the same app is not found to be minimized, it will reset the internal count and variables, so the HotKey-press count will reset to 0.Get it now at http://sites.google.com/site/ascend4ntscode/fullscreencrashrecovery A list of the major enhancements/changes since I started (prior to v. 1.0!): Added two methods for detecting if an application is hung/crashed/suspendedRewrote a LOT of the code based on my own experiences with crashes (both in XP and Vista, applications and games)Separated functions to make it easier to understand and centralized Debug messages in case you'd like to output them to a log.Rewrote the main function AGAIN, due to certain Win..() functions in AutoIT failing to work on crashed applications (I've remarked about these functions and my experiences with them in the source code right under the header) Added better 'beep-notifications' (thanks to montymintypie for getting me to do that)Ascend4nt's Program License agreement: While I provide this program freely, if you do distribute the program, the only requirements I have are: I (Ascend4nt) must be Acknowledged as the authorThe License agreement document (in the ZIP file) must be kept bundled together with the code.A link must be provided to the page containing the program (linked above)Do *not* under any circumstances 'reverse-engineer' the code - in other words, do not pull out the source code. I may distribute the source code in the future - but if you have or find an old copy of my code, do not distribute it without my consent, which must be obtained through the 'ContactMe' page on this site.
×