Jump to content

this-is-me

Active Members
  • Posts

    2,337
  • Joined

  • Last visited

Profile Information

  • Member Title
    Pursuer of obscure functionality
  • WWW
    https://plus.google.com/+DavidSpivey

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

this-is-me's Achievements

  1. 🤦‍♂️Duh. Sorry.
  2. I would like to allow the Chrome instance I use to automatically update. The problem is that if Chrome updates, then the Chrome driver needs to be updated as well or otherwise it throws an error. Could a feature be added to automatically download and use the Chrome driver specific to the version of Chrome? I don't mind downloading 7-zip command line version once to allow this script to extract the latest driver, but updating the driver so often can be a pain.
  3. @UEZ, thanks for the info. Has any further review been done in the beta version relating to x64 issues besides this one function?
  4. There's also a command line app to do file type identification called TrID. http://mark0.net/soft-trid-e.html To use it, download the win32 app and the definitions. Bonus: This can help you find the type of a file that has been renamed. If you have a file with an incorrect or missing extension, you can use TrID to find out what extension to give it so you can view/edit it.
  5. Not an AutoIt solution, but you might consider Perceptual Image Diff if you are going to convert to images. http://pdiff.sourceforge.net/
  6. I just want to mention that this issue is not corrected in the include files with v3.3.12.0 The old code is still implemented, and causing the same hard crash. While I don't mind continuing to use the mod, I do have other hard crashes in AutoIt that I believe are also related to GDIPlus calls going crazy on x64. I would like to request a code review for GDIPlus on x64, since I don't have the expertise to review the calls.
  7. @binhnx, it appears that your ShellGetPathFromIDList mod is unecessary. From the help file on DllCall: WSTR a UNICODE wide character string (a minimum of 65536 chars is allocated). So the "mod" is already included in AutoIt. However, the int_ptr DID fix the crashes, so kudos to you on that one.
  8. AWESOME! Not knowing how the original scripts I was copying were malformed prevented me from seeing this! Thank you so very much. This has prevented the crash.
  9. I have just spent hours laboring over some older code that I was upgrading to AutoIt v3.3.12.0 However, I have come to realize that this does not appear to be "my" problem, but a problem with AutoIt or its includes. Now, I am not so arrogant as to admit if I made a mistake in my coding, but I have tried 4 different file system monitors on this forum, all using ShChangeNotifyMsg. All of them blow up on Windows 8.1, 64-bit. I have not tried my Windows 7, 64-bit system. When I view the event logs and use WinDBG (I am a novice with this), the error message indicates that shell32.dll reports "An unhandled exception was encountered during a user callback." After debugging, I can find that _WinAPI_ShellGetPathFromIDList is where the crash occurs. However, I can't debug further. I don't know how to solve this or if it can be solved without repairing AutoIt. This is an example code. #AutoIt3Wrapper_UseX64=y #include <WinAPI.au3> #include <WinAPIShellEx.au3> Global $fm_callback, $fm_registration _Folder_Monitor("C:\", FolderChange, BitOR($SHCNE_RENAMEFOLDER, $SHCNE_DRIVEADD, $SHCNE_DRIVEREMOVED, $SHCNE_MKDIR, $SHCNE_RMDIR)) While 1 Sleep(1000) WEnd Func _Folder_Monitor($sFolder, $fCallback, $iEvents = $SHCNE_ALLEVENTS, $hGui = GUICreate("")) Local $notify = _WinAPI_RegisterWindowMessage("shchangenotifymsg") GUIRegisterMsg($notify, _Folder_Monitor_SHNOTIFY) $fm_registration = _WinAPI_ShellChangeNotifyRegister($hGui, $notify, $iEvents, BitOR($SHCNRF_INTERRUPTLEVEL, $SHCNRF_SHELLLEVEL), $sFolder, 1) $fm_callback = $fCallback OnAutoItExitRegister(_Folder_Monitor_Exit) EndFunc Func _Folder_Monitor_Exit() _WinAPI_ShellChangeNotifyDeregister($fm_registration) EndFunc Func _Folder_Monitor_SHNOTIFY($hWnd, $Msg, $wParam, $lParam) Local $path, $dw1, $dw2 $path = DllStructCreate('dword Item1; dword Item2', $wParam) $dw1 = _WinAPI_ShellGetPathFromIDList(DllStructGetData($path, 'Item1')) $dw2 = _WinAPI_ShellGetPathFromIDList(DllStructGetData($path, 'Item2')) If IsFunc($fm_callback) Then $fm_callback($lParam, $dw1, $dw2) EndFunc Func FolderChange($iEvent, $sFolder, $sFolderNew) Switch $iEvent Case $SHCNE_RENAMEFOLDER dbg($sFolder & " is renamed to " & $sFolderNew) Case $SHCNE_MKDIR dbg($sFolder & " is newly created") Case $SHCNE_RMDIR dbg($sFolder & " has been deleted") Case $SHCNE_DRIVEADD dbg("Drive has been added: " & $sFolder) Case $SHCNE_DRIVEREMOVED dbg("Drive has been removed: " & $sFolder) EndSwitch EndFunc ;==>FolderChange Func dbg($sMsg) ConsoleWrite($sMsg & @CRLF) EndFunc After starting this script from SciTE, create or delete a folder, and watch AutoIt crash and burn. If someone can help me, I would truly appreciate it. I have pulled my hair out over this for hours and am no closer to a solution. Also, before you ask, yes - I do need to monitor the whole drive for these changes.
  10. You have some "interesting" function names in your source code. It makes one wonder what PqJBxDWwGptMVLcDZrRL() is...
  11. @DickG, You also need to know that you will need to upgrade computers soon. Windows XP will no longer be supported in less than a month. http://www.microsoft.com/windows/en-us/xp/default.aspx?SEMID=1&WT.srch=1&ocid=XPEOS_SEM_google_FAM_WINDOWS_BRAND_NULL_LEARN_windows%20xp&wt.mc_id=XPEOS_SEM_google_FAM_WINDOWS_BRAND_NULL_LEARN_windows%20xp
  12. @FireFox, nice idea, but I can also add more parameters with a CallArgArray if I use call instead of $func(). See an example: #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Outfile_type=a3x #AutoIt3Wrapper_Run_Obfuscator=y #Obfuscator_Parameters=/striponly #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** _SetTimeout(2000, MsgBox, param(0, "bugged", "hello")) Sleep(5000) Func _SetTimeout($time, $func, $param1) Sleep($time) Call($func, $param1) EndFunc Func param($1=0, $2=0, $3=0, $4=0, $5=0, $6=0, $7=0, $8=0, $9=0, $10=0, $11=0, $12=0, $13=0, $14=0, $15=0, $16=0, $17=0, $18=0, $19=0, $20=0, $21=0, $22=0, $23=0, $24=0, $25=0, $26=0, $27=0, $28=0, $29=0, $30=0, $31=0, $32=0, $33=0, $34=0, $35=0, $36=0, $37=0, $38=0, $39=0, $40=0, $41=0, $42=0, $43=0, $44=0, $45=0, $46=0, $47=0, $48=0, $49=0, $50=0, $51=0, $52=0, $53=0, $54=0, $55=0, $56=0, $57=0, $58=0, $59=0, $60=0, $61=0, $62=0, $63=0, $64=0, $65=0, $66=0, $67=0, $68=0, $69=0, $70=0, $71=0, $72=0, $73=0, $74=0, $75=0, $76=0, $77=0, $78=0, $79=0, $80=0, $81=0, $82=0, $83=0, $84=0, $85=0, $86=0, $87=0, $88=0, $89=0, $90=0, $91=0, $92=0, $93=0, $94=0, $95=0, $96=0, $97=0, $98=0, $99=0, $100=0) Local $arr[@NumParams + 1] = ["CallArgArray"] For $i = 1 To @NumParams $arr[$i] = Eval($i) Next Return $arr EndFunc EDIT: removed funcname
  13. @Jos et al, Thanks for your help. @Zedna, @Firefox, The reason I use the function name without quotes is for ease of access in SciTE4AutoIt3. If you quote the function you can't do a CTRL+J to jump to the function. Unquoted functions can be jumped to.
  14. I am sorry to say I don't know what might be wrong with the call statement. Is it formatted incorrectly, or are you simply saying that it will throw an ignorable error?
  15. For one thing, you can try turning on and adjusting cleartype. http://www.microsoft.com/typography/cleartype/tuner/step1.aspx edit: clarity
×
×
  • Create New...