KaFu Posted December 16, 2009 Share Posted December 16, 2009 (edited) Hiho, this post is just for your info and to not let my research go to waste ... since last weekend I'm running Win7 64-bit. Up to now I'm quiet satisfied with look&feel and performance (not like Vista, which I uninstalled with two week ). New OS, new questions . My progam AMT utilizes MPlayer in the background, which automatically disables the Aero effect while running... on/off/on/off/on... not nice, so I searched for a way to disable Aero on programstart and came up with this fix: ; http://msdn.microsoft.com/en-us/library/aa969510%28VS.85%29.aspx Global Const $DWM_EC_DISABLECOMPOSITION = 0 DllCall("dwmapi.dll", "hwnd", "DwmEnableComposition", "uint", $DWM_EC_DISABLECOMPOSITION) sleep(5000) exit I found another method, checking the "Disable Desktop Composition" checkbox on the Compatibility tab of the file properties, which will also disable Aero on program start. Before doing any further research I asked Jos if it would be possible to implemnt something like this into the AutoIt3Wrapper... #AutoIt3Wrapper_Compatibility_Disable_desktop_composition = ;(Y/N) Disable Aero on Vista and Win7. Default=N Guess his answer... what is being done there ? How can the properties be set? So I did some further reseach and came up with two solutions. A User context specific method by changing a registy key HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers is mentioned here http://www.experts-exchange.com/Programming/Installation/InstallShield/Q_23365314.html In that thread there's also an explanation of how to set the properties machine wide. It's not a file property as such but an entry in an OS database: "Using ACT by either adding a custom database or using the system databse (WINDOWS\AppPatch\sysmain.sdb) still applies the fixes, but does it system wide, not just in the user registry." So doing it while installing requiers the "Microsoft Application Compatibility Toolkit" located here http://www.microsoft.com/downloads/details.aspx?FamilyID=24da89e9-b581-47b0-b45e-492dd6da2971&displaylang=en to create an executable specifc .sdb file which needs to be merged to the system database during install by something like this sdbinst.exe -q maintsmart2000.sdb So sadly it seems to be no job for the AutoIt3Wrapper... Best Regards Edit: Here's an example of setting compatibility mode via the registy in the user context... expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_outfile=compatibility_test.exe #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_UseX64=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: KaFu Script Function: Setting executable compatibility mode via Regwrite() Possible values on Win7: VISTASP2|VISTASP1|VISTARTM|WINSRV08SP1|WINSRV03SP1|WINXPSP3|WINXPSP2|WIN2000|NT4SP5|WIN98|WIN95 #ce ---------------------------------------------------------------------------- #include <GUIConstantsEx.au3> If @Compiled Then If Not RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers", @ScriptFullPath) Then GUICreate("Select compatibility mode", 270, 40) $c_compatibility_mode_combo = GUICtrlCreateCombo("VISTASP2", 30, 10, 110, 20) GUICtrlSetData(-1, "VISTASP1|VISTARTM|WINSRV08SP1|WINSRV03SP1|WINXPSP3|WINXPSP2|WIN2000|NT4SP5|WIN98|WIN95", "VISTASP2") $c_compatibility_mode_button_start = GUICtrlCreateButton("Start", 150, 10, 90, 20) GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete() Exit Case $c_compatibility_mode_button_start ExitLoop EndSwitch WEnd If Not RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers", @ScriptFullPath, "REG_SZ", GUICtrlRead($c_compatibility_mode_combo)) Then MsgBox(16 + 262144, "Error", "Could not access the registry to write compatibility mode flag...") GUIDelete() Exit Else GUIDelete() Run(@ScriptFullPath) Exit EndIf EndIf Else MsgBox(16 + 262144, "Error", "Setting compatibility via registy only works for compiled scripts...") Exit EndIf ; Your code below GUICreate("My GUI", 400, 30) GUICtrlCreateLabel("Running in compatibility mode for @OSVersion: " & @OSVersion, 10, 10, 380) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd GUIDelete() ; Your code above If @Compiled Then RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers", @ScriptFullPath) Edited June 5, 2010 by KaFu OS: Win10-22H2 - 64bit - German, AutoIt Version: 3.3.16.1, AutoIt Editor: SciTE, Website: https://funk.eu AMT - Auto-Movie-Thumbnailer (2024-Oct-13) BIC - Batch-Image-Cropper (2023-Apr-01) COP - Color Picker (2009-May-21) DCS - Dynamic Cursor Selector (2024-Oct-13) HMW - Hide my Windows (2024-Oct-19) HRC - HotKey Resolution Changer (2012-May-16) ICU - Icon Configuration Utility (2018-Sep-16) SMF - Search my Files (2024-Oct-20) - THE file info and duplicates search tool SSD - Set Sound Device (2017-Sep-16) Link to comment Share on other sites More sharing options...
dekadish Posted June 15, 2010 Share Posted June 15, 2010 i still havent resloved it tryed all the codes above but my app will only work on vista, win7 on xp i just hear the faulty sound in the background and app exits. Setting manualy either disalbe themse or win compiability to win 95 it opens up just fine. Link to comment Share on other sites More sharing options...
Qwerty212 Posted September 18, 2010 Share Posted September 18, 2010 I think that your research can also be very useful for the people having problems with Pixelgetcolor func in Vista with aero on. It may be great to do at the beggining of the program something like: If @OSVersion = "WIN_7" OR "WIN_VISTA" Then Global Const $DWM_EC_DISABLECOMPOSITION = 0 DllCall("dwmapi.dll", "hwnd", "DwmEnableComposition", "uint", $DWM_EC_DISABLECOMPOSITION) Sleep (500) Endif Doesn't have any computer with windows 7 or Vista, but it would be great if someone can test that it increase performance. Here is just a motion capture script with 49 Pixelgetcolor working at time: expandcollapse popup#include <GUIConstants.au3> #include <WindowsConstants.au3> #include <Misc.au3> $WM_CAP_START = 0x400 $WM_CAP_UNICODE_START = $WM_CAP_START + 100 $WM_CAP_PAL_SAVEA = $WM_CAP_START + 81 $WM_CAP_PAL_SAVEW = $WM_CAP_UNICODE_START + 81 $WM_CAP_UNICODE_END = $WM_CAP_PAL_SAVEW $WM_CAP_ABORT = $WM_CAP_START + 69 $WM_CAP_DLG_VIDEOCOMPRESSION = $WM_CAP_START + 46 $WM_CAP_DLG_VIDEODISPLAY = $WM_CAP_START + 43 $WM_CAP_DLG_VIDEOFORMAT = $WM_CAP_START + 41 $WM_CAP_DLG_VIDEOSOURCE = $WM_CAP_START + 42 $WM_CAP_DRIVER_CONNECT = $WM_CAP_START + 10 $WM_CAP_DRIVER_DISCONNECT = $WM_CAP_START + 11 $WM_CAP_DRIVER_GET_CAPS = $WM_CAP_START + 14 $WM_CAP_DRIVER_GET_NAMEA = $WM_CAP_START + 12 $WM_CAP_DRIVER_GET_NAMEW = $WM_CAP_UNICODE_START + 12 $WM_CAP_DRIVER_GET_VERSIONA = $WM_CAP_START + 13 $WM_CAP_DRIVER_GET_VERSIONW = $WM_CAP_UNICODE_START + 13 $WM_CAP_EDIT_COPY = $WM_CAP_START + 30 $WM_CAP_END = $WM_CAP_UNICODE_END $WM_CAP_FILE_ALLOCATE = $WM_CAP_START + 22 $WM_CAP_FILE_GET_CAPTURE_FILEA = $WM_CAP_START + 21 $WM_CAP_FILE_GET_CAPTURE_FILEW = $WM_CAP_UNICODE_START + 21 $WM_CAP_FILE_SAVEASA = $WM_CAP_START + 23 $WM_CAP_FILE_SAVEASW = $WM_CAP_UNICODE_START + 23 $WM_CAP_FILE_SAVEDIBA = $WM_CAP_START + 25 $WM_CAP_FILE_SAVEDIBW = $WM_CAP_UNICODE_START + 25 $WM_CAP_FILE_SET_CAPTURE_FILEA = $WM_CAP_START + 20 $WM_CAP_FILE_SET_CAPTURE_FILEW = $WM_CAP_UNICODE_START + 20 $WM_CAP_FILE_SET_INFOCHUNK = $WM_CAP_START + 24 $WM_CAP_GET_AUDIOFORMAT = $WM_CAP_START + 36 $WM_CAP_GET_CAPSTREAMPTR = $WM_CAP_START + 1 $WM_CAP_GET_MCI_DEVICEA = $WM_CAP_START + 67 $WM_CAP_GET_MCI_DEVICEW = $WM_CAP_UNICODE_START + 67 $WM_CAP_GET_SEQUENCE_SETUP = $WM_CAP_START + 65 $WM_CAP_GET_STATUS = $WM_CAP_START + 54 $WM_CAP_GET_USER_DATA = $WM_CAP_START + 8 $WM_CAP_GET_VIDEOFORMAT = $WM_CAP_START + 44 $WM_CAP_GRAB_FRAME = $WM_CAP_START + 60 $WM_CAP_GRAB_FRAME_NOSTOP = $WM_CAP_START + 61 $WM_CAP_PAL_AUTOCREATE = $WM_CAP_START + 83 $WM_CAP_PAL_MANUALCREATE = $WM_CAP_START + 84 $WM_CAP_PAL_OPENA = $WM_CAP_START + 80 $WM_CAP_PAL_OPENW = $WM_CAP_UNICODE_START + 80 $WM_CAP_PAL_PASTE = $WM_CAP_START + 82 $WM_CAP_SEQUENCE = $WM_CAP_START + 62 $WM_CAP_SEQUENCE_NOFILE = $WM_CAP_START + 63 $WM_CAP_SET_AUDIOFORMAT = $WM_CAP_START + 35 $WM_CAP_SET_CALLBACK_CAPCONTROL = $WM_CAP_START + 85 $WM_CAP_SET_CALLBACK_ERRORA = $WM_CAP_START + 2 $WM_CAP_SET_CALLBACK_ERRORW = $WM_CAP_UNICODE_START + 2 $WM_CAP_SET_CALLBACK_FRAME = $WM_CAP_START + 5 $WM_CAP_SET_CALLBACK_STATUSA = $WM_CAP_START + 3 $WM_CAP_SET_CALLBACK_STATUSW = $WM_CAP_UNICODE_START + 3 $WM_CAP_SET_CALLBACK_VIDEOSTREAM = $WM_CAP_START + 6 $WM_CAP_SET_CALLBACK_WAVESTREAM = $WM_CAP_START + 7 $WM_CAP_SET_CALLBACK_YIELD = $WM_CAP_START + 4 $WM_CAP_SET_MCI_DEVICEA = $WM_CAP_START + 66 $WM_CAP_SET_MCI_DEVICEW = $WM_CAP_UNICODE_START + 66 $WM_CAP_SET_OVERLAY = $WM_CAP_START + 51 $WM_CAP_SET_PREVIEW = $WM_CAP_START + 50 $WM_CAP_SET_PREVIEWRATE = $WM_CAP_START + 52 $WM_CAP_SET_SCALE = $WM_CAP_START + 53 $WM_CAP_SET_SCROLL = $WM_CAP_START + 55 $WM_CAP_SET_SEQUENCE_SETUP = $WM_CAP_START + 64 $WM_CAP_SET_USER_DATA = $WM_CAP_START + 9 $WM_CAP_SET_VIDEOFORMAT = $WM_CAP_START + 45 $WM_CAP_SINGLE_FRAME = $WM_CAP_START + 72 $WM_CAP_SINGLE_FRAME_CLOSE = $WM_CAP_START + 71 $WM_CAP_SINGLE_FRAME_OPEN = $WM_CAP_START + 70 $WM_CAP_STOP = $WM_CAP_START + 68 Opt("PixelCoordMode", 2) Global $range = 2400000; Range / Sensivity( Default 2400000) Global $resolucionvertical = 640 Global $resolucionhorizontal = $resolucionvertical * 1.32 Global $posicionpantallaleft= 140 Global $posicionpantallatop= 180 Global $coordenadasX = $resolucionhorizontal / 11 Global $coordenadasY = $resolucionvertical / 11 Global $var0 = PixelGetColor($coordenadasX * 3, $coordenadasY * 3) Global $var1 = PixelGetColor($coordenadasX * 3, $coordenadasY * 4) Global $var2 = PixelGetColor($coordenadasX * 3, $coordenadasY * 5) Global $var3 = PixelGetColor($coordenadasX * 3, $coordenadasY * 6) Global $var4 = PixelGetColor($coordenadasX * 3, $coordenadasY * 7) Global $var5 = PixelGetColor($coordenadasX * 3, $coordenadasY * 8) Global $var6 = PixelGetColor($coordenadasX * 3, $coordenadasY * 9) Global $var7 = PixelGetColor($coordenadasX * 4, $coordenadasY * 3) Global $var8 = PixelGetColor($coordenadasX * 4, $coordenadasY * 4) Global $var9 = PixelGetColor($coordenadasX * 4, $coordenadasY * 5) Global $var10 = PixelGetColor($coordenadasX * 4, $coordenadasY * 6) Global $var11 = PixelGetColor($coordenadasX * 4, $coordenadasY * 7) Global $var12 = PixelGetColor($coordenadasX * 4, $coordenadasY * 8) Global $var13 = PixelGetColor($coordenadasX * 4, $coordenadasY * 9) Global $var14 = PixelGetColor($coordenadasX * 5, $coordenadasY * 3) Global $var15 = PixelGetColor($coordenadasX * 5, $coordenadasY * 4) Global $var16 = PixelGetColor($coordenadasX * 5, $coordenadasY * 5) Global $var17 = PixelGetColor($coordenadasX * 5, $coordenadasY * 6) Global $var18 = PixelGetColor($coordenadasX * 5, $coordenadasY * 7) Global $var19 = PixelGetColor($coordenadasX * 5, $coordenadasY * 8) Global $var20 = PixelGetColor($coordenadasX * 5, $coordenadasY * 9) Global $var21 = PixelGetColor($coordenadasX * 6, $coordenadasY * 3) Global $var22 = PixelGetColor($coordenadasX * 6, $coordenadasY * 4) Global $var23 = PixelGetColor($coordenadasX * 6, $coordenadasY * 5) Global $var24 = PixelGetColor($coordenadasX * 6, $coordenadasY * 6) Global $var25 = PixelGetColor($coordenadasX * 6, $coordenadasY * 7) Global $var26 = PixelGetColor($coordenadasX * 6, $coordenadasY * 8) Global $var27 = PixelGetColor($coordenadasX * 6, $coordenadasY * 9) Global $var28 = PixelGetColor($coordenadasX * 7, $coordenadasY * 3) Global $var29 = PixelGetColor($coordenadasX * 7, $coordenadasY * 4) Global $var30 = PixelGetColor($coordenadasX * 7, $coordenadasY * 5) Global $var31 = PixelGetColor($coordenadasX * 7, $coordenadasY * 6) Global $var32 = PixelGetColor($coordenadasX * 7, $coordenadasY * 7) Global $var33 = PixelGetColor($coordenadasX * 7, $coordenadasY * 8) Global $var34 = PixelGetColor($coordenadasX * 7, $coordenadasY * 9) Global $var35 = PixelGetColor($coordenadasX * 8, $coordenadasY * 3) Global $var36 = PixelGetColor($coordenadasX * 8, $coordenadasY * 4) Global $var37 = PixelGetColor($coordenadasX * 8, $coordenadasY * 5) Global $var38 = PixelGetColor($coordenadasX * 8, $coordenadasY * 6) Global $var39 = PixelGetColor($coordenadasX * 8, $coordenadasY * 7) Global $var40 = PixelGetColor($coordenadasX * 8, $coordenadasY * 8) Global $var41 = PixelGetColor($coordenadasX * 8, $coordenadasY * 9) Global $var42 = PixelGetColor($coordenadasX * 9, $coordenadasY * 3) Global $var43 = PixelGetColor($coordenadasX * 9, $coordenadasY * 4) Global $var44 = PixelGetColor($coordenadasX * 9, $coordenadasY * 5) Global $var45 = PixelGetColor($coordenadasX * 9, $coordenadasY * 6) Global $var46 = PixelGetColor($coordenadasX * 9, $coordenadasY * 7) Global $var47 = PixelGetColor($coordenadasX * 9, $coordenadasY * 8) Global $var48 = PixelGetColor($coordenadasX * 9, $coordenadasY * 9) Global $firstvar0 = $var0 + $range Global $lastvar0 = $var0 - $range Global $firstvar1 = $var1 + $range Global $lastvar1 = $var1 - $range Global $firstvar2 = $var2 + $range Global $lastvar2 = $var2 - $range Global $firstvar3 = $var3 + $range Global $lastvar3 = $var3 - $range Global $firstvar4 = $var4 + $range Global $lastvar4 = $var4 - $range Global $firstvar5 = $var5 + $range Global $lastvar5 = $var5 - $range Global $firstvar6 = $var6 + $range Global $lastvar6 = $var6 - $range Global $firstvar7 = $var7 + $range Global $lastvar7 = $var7 - $range Global $firstvar8 = $var8 + $range Global $lastvar8 = $var8 - $range Global $firstvar9 = $var9 + $range Global $lastvar9 = $var9 - $range Global $firstvar10 = $var10 + $range Global $lastvar10 = $var10 - $range Global $firstvar11 = $var11 + $range Global $lastvar11 = $var11 - $range Global $firstvar12 = $var12 + $range Global $lastvar12 = $var12 - $range Global $firstvar13 = $var13 + $range Global $lastvar13 = $var13 - $range Global $firstvar14 = $var14 + $range Global $lastvar14 = $var14 - $range Global $firstvar15 = $var15 + $range Global $lastvar15 = $var15 - $range Global $firstvar16 = $var16 + $range Global $lastvar16 = $var16 - $range Global $firstvar17 = $var17 + $range Global $lastvar17 = $var17 - $range Global $firstvar18 = $var18 + $range Global $lastvar18 = $var18 - $range Global $firstvar19 = $var19 + $range Global $lastvar19 = $var19 - $range Global $firstvar20 = $var20 + $range Global $lastvar20 = $var20 - $range Global $firstvar21 = $var21 + $range Global $lastvar21 = $var21 - $range Global $firstvar22 = $var22 + $range Global $lastvar22 = $var22 - $range Global $firstvar23 = $var23 + $range Global $lastvar23 = $var23 - $range Global $firstvar24 = $var24 + $range Global $lastvar24 = $var24 - $range Global $firstvar25 = $var25 + $range Global $lastvar25 = $var25 - $range Global $firstvar26 = $var26 + $range Global $lastvar26 = $var26 - $range Global $firstvar27 = $var27 + $range Global $lastvar27 = $var27 - $range Global $firstvar28 = $var28 + $range Global $lastvar28 = $var28 - $range Global $firstvar29 = $var29 + $range Global $lastvar29 = $var29 - $range Global $firstvar30 = $var30 + $range Global $lastvar30 = $var30 - $range Global $firstvar31 = $var31 + $range Global $lastvar31 = $var31 - $range Global $firstvar32 = $var32 + $range Global $lastvar32 = $var32 - $range Global $firstvar33 = $var33 + $range Global $lastvar33 = $var33 - $range Global $firstvar34 = $var34 + $range Global $lastvar34 = $var34 - $range Global $firstvar35 = $var35 + $range Global $lastvar35 = $var35 - $range Global $firstvar36 = $var36 + $range Global $lastvar36 = $var36 - $range Global $firstvar37 = $var37 + $range Global $lastvar37 = $var37 - $range Global $firstvar38 = $var38 + $range Global $lastvar38 = $var38 - $range Global $firstvar39 = $var39 + $range Global $lastvar39 = $var39 - $range Global $firstvar40 = $var40 + $range Global $lastvar40 = $var40 - $range Global $firstvar41 = $var41 + $range Global $lastvar41 = $var41 - $range Global $firstvar42 = $var42 + $range Global $lastvar42 = $var42 - $range Global $firstvar43 = $var43 + $range Global $lastvar43 = $var43 - $range Global $firstvar44 = $var44 + $range Global $lastvar44 = $var44 - $range Global $firstvar45 = $var45 + $range Global $lastvar45 = $var45 - $range Global $firstvar46 = $var46 + $range Global $lastvar46 = $var46 - $range Global $firstvar47 = $var47 + $range Global $lastvar47 = $var47 - $range Global $firstvar48 = $var48 + $range Global $lastvar48 = $var48 - $range $avi = DllOpen("avicap32.dll") $user = DllOpen("user32.dll") $snapfile = @ScriptDir & "\scrshot.bmp" $gui4 = GUICreate("Camera", $resolucionhorizontal, $resolucionvertical, $posicionpantallaleft, $posicionpantallatop) $cap = DllCall($avi, "int", "capCreateCaptureWindow", "str", "cap", "int", BitOR($WS_CHILD, $WS_VISIBLE), "int", 0, "int", 0, "int", $resolucionhorizontal, "int", $resolucionvertical, "hwnd", $gui4, "int", 1) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_CONNECT, "int", 0, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_SCALE, "int", 1, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_OVERLAY, "int", 1, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEW, "int", 1, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_PREVIEWRATE, "int", 1, "int", 0) GUISetState(@SW_SHOW) HotKeySet("{INSERT}", "SnapShot"); Press 'Insert' to make a SnapShot ! While 1 $msg = GUIGetMsg() UpdateActiveColors() CalculateRange() CheckForChange() If $msg = $GUI_EVENT_CLOSE Then ;DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_SET_CALLBACK_FRAME, "int", 0, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_END, "int", 0, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_DRIVER_DISCONNECT, "int", 0, "int", 0) ;DllClose($avi) DllClose($user) Exit EndIf WEnd Func SnapShot() DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_GRAB_FRAME_NOSTOP, "int", 0, "int", 0) DllCall($user, "int", "SendMessage", "hWnd", $cap[0], "int", $WM_CAP_FILE_SAVEDIBA, "int", 0, "str", $snapfile) EndFunc ;==>SnapShot Func UpdateActiveColors() Global $var0 = PixelGetColor($coordenadasX * 3, $coordenadasY * 3) Global $var1 = PixelGetColor($coordenadasX * 3, $coordenadasY * 4) Global $var2 = PixelGetColor($coordenadasX * 3, $coordenadasY * 5) Global $var3 = PixelGetColor($coordenadasX * 3, $coordenadasY * 6) Global $var4 = PixelGetColor($coordenadasX * 3, $coordenadasY * 7) Global $var5 = PixelGetColor($coordenadasX * 3, $coordenadasY * 8) Global $var6 = PixelGetColor($coordenadasX * 3, $coordenadasY * 9) Global $var7 = PixelGetColor($coordenadasX * 4, $coordenadasY * 3) Global $var8 = PixelGetColor($coordenadasX * 4, $coordenadasY * 4) Global $var9 = PixelGetColor($coordenadasX * 4, $coordenadasY * 5) Global $var10 = PixelGetColor($coordenadasX * 4, $coordenadasY * 6) Global $var11 = PixelGetColor($coordenadasX * 4, $coordenadasY * 7) Global $var12 = PixelGetColor($coordenadasX * 4, $coordenadasY * 8) Global $var13 = PixelGetColor($coordenadasX * 4, $coordenadasY * 9) Global $var14 = PixelGetColor($coordenadasX * 5, $coordenadasY * 3) Global $var15 = PixelGetColor($coordenadasX * 5, $coordenadasY * 4) Global $var16 = PixelGetColor($coordenadasX * 5, $coordenadasY * 5) Global $var17 = PixelGetColor($coordenadasX * 5, $coordenadasY * 6) Global $var18 = PixelGetColor($coordenadasX * 5, $coordenadasY * 7) Global $var19 = PixelGetColor($coordenadasX * 5, $coordenadasY * 8) Global $var20 = PixelGetColor($coordenadasX * 5, $coordenadasY * 9) Global $var21 = PixelGetColor($coordenadasX * 6, $coordenadasY * 3) Global $var22 = PixelGetColor($coordenadasX * 6, $coordenadasY * 4) Global $var23 = PixelGetColor($coordenadasX * 6, $coordenadasY * 5) Global $var24 = PixelGetColor($coordenadasX * 6, $coordenadasY * 6) Global $var25 = PixelGetColor($coordenadasX * 6, $coordenadasY * 7) Global $var26 = PixelGetColor($coordenadasX * 6, $coordenadasY * 8) Global $var27 = PixelGetColor($coordenadasX * 6, $coordenadasY * 9) Global $var28 = PixelGetColor($coordenadasX * 7, $coordenadasY * 3) Global $var29 = PixelGetColor($coordenadasX * 7, $coordenadasY * 4) Global $var30 = PixelGetColor($coordenadasX * 7, $coordenadasY * 5) Global $var31 = PixelGetColor($coordenadasX * 7, $coordenadasY * 6) Global $var32 = PixelGetColor($coordenadasX * 7, $coordenadasY * 7) Global $var33 = PixelGetColor($coordenadasX * 7, $coordenadasY * 8) Global $var34 = PixelGetColor($coordenadasX * 7, $coordenadasY * 9) Global $var35 = PixelGetColor($coordenadasX * 8, $coordenadasY * 3) Global $var36 = PixelGetColor($coordenadasX * 8, $coordenadasY * 4) Global $var37 = PixelGetColor($coordenadasX * 8, $coordenadasY * 5) Global $var38 = PixelGetColor($coordenadasX * 8, $coordenadasY * 6) Global $var39 = PixelGetColor($coordenadasX * 8, $coordenadasY * 7) Global $var40 = PixelGetColor($coordenadasX * 8, $coordenadasY * 8) Global $var41 = PixelGetColor($coordenadasX * 8, $coordenadasY * 9) Global $var42 = PixelGetColor($coordenadasX * 9, $coordenadasY * 3) Global $var43 = PixelGetColor($coordenadasX * 9, $coordenadasY * 4) Global $var44 = PixelGetColor($coordenadasX * 9, $coordenadasY * 5) Global $var45 = PixelGetColor($coordenadasX * 9, $coordenadasY * 6) Global $var46 = PixelGetColor($coordenadasX * 9, $coordenadasY * 7) Global $var47 = PixelGetColor($coordenadasX * 9, $coordenadasY * 8) Global $var48 = PixelGetColor($coordenadasX * 9, $coordenadasY * 9) EndFunc ;==>UpdateActiveColors Func CalculateRange() Global $firstvar0 = $var0 + $range Global $lastvar0 = $var0 - $range Global $firstvar1 = $var1 + $range Global $lastvar1 = $var1 - $range Global $firstvar2 = $var2 + $range Global $lastvar2 = $var2 - $range Global $firstvar3 = $var3 + $range Global $lastvar3 = $var3 - $range Global $firstvar4 = $var4 + $range Global $lastvar4 = $var4 - $range Global $firstvar5 = $var5 + $range Global $lastvar5 = $var5 - $range Global $firstvar6 = $var6 + $range Global $lastvar6 = $var6 - $range Global $firstvar7 = $var7 + $range Global $lastvar7 = $var7 - $range Global $firstvar8 = $var8 + $range Global $lastvar8 = $var8 - $range Global $firstvar9 = $var9 + $range Global $lastvar9 = $var9 - $range Global $firstvar10 = $var10 + $range Global $lastvar10 = $var10 - $range Global $firstvar11 = $var11 + $range Global $lastvar11 = $var11 - $range Global $firstvar12 = $var12 + $range Global $lastvar12 = $var12 - $range Global $firstvar13 = $var13 + $range Global $lastvar13 = $var13 - $range Global $firstvar14 = $var14 + $range Global $lastvar14 = $var14 - $range Global $firstvar15 = $var15 + $range Global $lastvar15 = $var15 - $range Global $firstvar16 = $var16 + $range Global $lastvar16 = $var16 - $range Global $firstvar17 = $var17 + $range Global $lastvar17 = $var17 - $range Global $firstvar18 = $var18 + $range Global $lastvar18 = $var18 - $range Global $firstvar19 = $var19 + $range Global $lastvar19 = $var19 - $range Global $firstvar20 = $var20 + $range Global $lastvar20 = $var20 - $range Global $firstvar21 = $var21 + $range Global $lastvar21 = $var21 - $range Global $firstvar22 = $var22 + $range Global $lastvar22 = $var22 - $range Global $firstvar23 = $var23 + $range Global $lastvar23 = $var23 - $range Global $firstvar24 = $var24 + $range Global $lastvar24 = $var24 - $range Global $firstvar25 = $var25 + $range Global $lastvar25 = $var25 - $range Global $firstvar26 = $var26 + $range Global $lastvar26 = $var26 - $range Global $firstvar27 = $var27 + $range Global $lastvar27 = $var27 - $range Global $firstvar28 = $var28 + $range Global $lastvar28 = $var28 - $range Global $firstvar29 = $var29 + $range Global $lastvar29 = $var29 - $range Global $firstvar30 = $var30 + $range Global $lastvar30 = $var30 - $range Global $firstvar31 = $var31 + $range Global $lastvar31 = $var31 - $range Global $firstvar32 = $var32 + $range Global $lastvar32 = $var32 - $range Global $firstvar33 = $var33 + $range Global $lastvar33 = $var33 - $range Global $firstvar34 = $var34 + $range Global $lastvar34 = $var34 - $range Global $firstvar35 = $var35 + $range Global $lastvar35 = $var35 - $range Global $firstvar36 = $var36 + $range Global $lastvar36 = $var36 - $range Global $firstvar37 = $var37 + $range Global $lastvar37 = $var37 - $range Global $firstvar38 = $var38 + $range Global $lastvar38 = $var38 - $range Global $firstvar39 = $var39 + $range Global $lastvar39 = $var39 - $range Global $firstvar40 = $var40 + $range Global $lastvar40 = $var40 - $range Global $firstvar41 = $var41 + $range Global $lastvar41 = $var41 - $range Global $firstvar42 = $var42 + $range Global $lastvar42 = $var42 - $range Global $firstvar43 = $var43 + $range Global $lastvar43 = $var43 - $range Global $firstvar44 = $var44 + $range Global $lastvar44 = $var44 - $range Global $firstvar45 = $var45 + $range Global $lastvar45 = $var45 - $range Global $firstvar46 = $var46 + $range Global $lastvar46 = $var46 - $range Global $firstvar47 = $var47 + $range Global $lastvar47 = $var47 - $range Global $firstvar48 = $var48 + $range Global $lastvar48 = $var48 - $range EndFunc ;==>CalculateRange Func CheckForChange() if ($var0 < $firstvar0 And $var0 > $lastvar0) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var1 < $firstvar1 And $var1 > $lastvar1) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var2 < $firstvar2 And $var2 > $lastvar2) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var3 < $firstvar3 And $var3 > $lastvar3) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var4 < $firstvar4 And $var4 > $lastvar4) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var5 < $firstvar5 And $var5 > $lastvar5) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var6 < $firstvar6 And $var6 > $lastvar6) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var7 < $firstvar7 And $var7 > $lastvar7) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var8 < $firstvar8 And $var8 > $lastvar8) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var9 < $firstvar9 And $var9 > $lastvar9) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var10 < $firstvar10 And $var10 > $lastvar10) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var11 < $firstvar11 And $var11 > $lastvar11) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var12 < $firstvar12 And $var12 > $lastvar12) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var13 < $firstvar13 And $var13 > $lastvar13) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var14 < $firstvar14 And $var14 > $lastvar14) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var15 < $firstvar15 And $var15 > $lastvar15) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var16 < $firstvar16 And $var16 > $lastvar16) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var17 < $firstvar17 And $var17 > $lastvar17) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var18 < $firstvar18 And $var18 > $lastvar18) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var19 < $firstvar19 And $var19 > $lastvar19) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var20 < $firstvar20 And $var20 > $lastvar20) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var21 < $firstvar21 And $var21 > $lastvar21) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var22 < $firstvar22 And $var22 > $lastvar22) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var23 < $firstvar23 And $var23 > $lastvar23) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var24 < $firstvar24 And $var24 > $lastvar24) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var25 < $firstvar25 And $var25 > $lastvar25) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var26 < $firstvar26 And $var26 > $lastvar26) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var27 < $firstvar27 And $var27 > $lastvar27) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var28 < $firstvar28 And $var28 > $lastvar28) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var29 < $firstvar29 And $var29 > $lastvar29) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var30 < $firstvar30 And $var30 > $lastvar30) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var31 < $firstvar31 And $var31 > $lastvar31) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var32 < $firstvar32 And $var32 > $lastvar32) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var33 < $firstvar33 And $var33 > $lastvar33) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var34 < $firstvar34 And $var34 > $lastvar34) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var35 < $firstvar35 And $var35 > $lastvar35) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var36 < $firstvar36 And $var36 > $lastvar36) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var37 < $firstvar37 And $var37 > $lastvar37) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var38 < $firstvar38 And $var38 > $lastvar38) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var39 < $firstvar39 And $var39 > $lastvar39) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var40 < $firstvar40 And $var40 > $lastvar40) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var41 < $firstvar41 And $var41 > $lastvar41) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var42 < $firstvar42 And $var42 > $lastvar42) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var43 < $firstvar43 And $var43 > $lastvar43) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var44 < $firstvar44 And $var44 > $lastvar44) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var45 < $firstvar45 And $var45 > $lastvar45) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var46 < $firstvar46 And $var46 > $lastvar46) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var47 < $firstvar47 And $var47 > $lastvar47) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf if ($var48 < $firstvar48 And $var48 > $lastvar48) Then UpdateActiveColors() Else Beep(100, 100) UpdateActiveColors() CalculateRange() EndIf EndFunc ;==>CheckForChange Greets from Barcelona Link to comment Share on other sites More sharing options...
Ascend4nt Posted September 18, 2010 Share Posted September 18, 2010 (edited) I know its a bit late, but good catch KaFu.I've found the following additional settings can be added in the Registry 'Layers' key value for each program, as long as they are separated by spaces (and the O/S value seems to always come first):256COLOR640X480DISABLETHEMESDISABLEDWMHIGHDPIAWARERUNASADMINELEVATECREATEPROCESSDISABLENXSHOWUIThe second-to-last one fixes problems with 'CreateProcess'. This is something that prevents apps requiring elevation UAC prompts from starting under UAC environments (use Run('regedit.exe') as opposed to ShellExecute('regedit.exe'), and you will see the latter one is the only one to work in Vista/2008+ O/S's with UAC active)The last one, which doesn't appear on the Compatibility tab, disables DEP protection, which *may* help certain programs work, though its very risky of course since that's one thing malware could take advantage of.I see a few extra ones -> here <- actually that may or may not work in the registry as they are listed. (for example, '256 Color' shouldn't have any spaces in the Registry setting, but might work in the compatibility modes database).(Sorry if anything is repeated - I don't have access to the experts-exchange forums)*edit: added ELEVATECREATEPROCESS (see 'Using the ElevateCreateProcess Fix' @ MSDN) Edited September 22, 2010 by Ascend4nt My contributions: Performance Counters in Windows - Measure CPU, Disk, Network etc Performance | Network Interface Info, Statistics, and Traffic | CPU Multi-Processor Usage w/o Performance Counters | Disk and Device Read/Write Statistics | Atom Table Functions | Process, Thread, & DLL Functions UDFs | Process CPU Usage Trackers | PE File Overlay Extraction | A3X Script Extract | File + Process Imports/Exports Information | Windows Desktop Dimmer Shade | Spotlight + Focus GUI - Highlight and Dim for Eyestrain Relief | CrossHairs (FullScreen) | Rubber-Band Boxes using GUI's (_GUIBox) | GUI Fun! | IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) | Magnifier (Vista+) Functions UDF | _DLLStructDisplay (Debug!) | _EnumChildWindows (controls etc) | _FileFindEx | _ClipGetHTML | _ClipPutHTML + ClipPutHyperlink | _FileGetShortcutEx | _FilePropertiesDialog | I/O Port Functions | File(s) Drag & Drop | _RunWithReducedPrivileges | _ShellExecuteWithReducedPrivileges | _WinAPI_GetSystemInfo | dotNETGetVersions | Drive(s) Power Status | _WinGetDesktopHandle | _StringParseParameters | Screensaver, Sleep, Desktop Lock Disable | Full-Screen Crash Recovery Wrappers/Modifications of others' contributions: _DOSWildcardsToPCRegEx (original code: RobSaunder's) | WinGetAltTabWinList (original: Authenticity) UDF's added support/programming to: _ExplorerWinGetSelectedItems | MIDIEx UDF (original code: eynstyne) (All personal code/wrappers centrally located at Ascend4nt's AutoIT Code) Link to comment Share on other sites More sharing options...
Ascend4nt Posted July 30, 2013 Share Posted July 30, 2013 I had forgotten about this thread, but thought it should be documented that there is a way to work around Windows' tendency to elevate executables (which are not marked as "requireAdministrator") based on one of two situations: An application manfiest specifies 'highestAvailable', and the current user is in the admin account Windows heuristics determines the file to require elevation. This happens for files that have 'setup' or 'install' in their executable name, as well as certain strings detected in the executable - whether it be known 'installer' strings (like "NSIS"), or other trigger strings found in File Descriptions or string resources.. There is an environment variable called __COMPAT_LAYER which can be used to force an application to run a certain way and to override Windows heuristics. Simply setting this to 'RunAsInvoker' will allow execution of other processes via 'Run' (or CreateProcess). As a simple example of how this can be used, try running the below code with the 'EnvSet()' line commented out: EnvSet("__COMPAT_LAYER", "RunAsInvoker") Run("regedit.exe") Without the EnvSet() command, Run silently fails. The normal workaround is to use ShellExecute(), which will then provide a UAC prompt and elevate the process. But we don't always want that behavior! Especially since Windows heuristics can falsely assume that something needs elevation. Information on this environment variable is available here: HOW TO: Script Compatibility Layers in Windows XP (and above) Note this also works in batch files, which I've been using as a workaround for false positives for a while. Set the environment variable like this: set __COMPAT_LAYER=RunAsInvoker (followed by a command to run) In case anybody is still running XP as a primary O/S, the elevation part above doesn't apply to you (its only for Vista+ operating systems with UAC). My contributions: Performance Counters in Windows - Measure CPU, Disk, Network etc Performance | Network Interface Info, Statistics, and Traffic | CPU Multi-Processor Usage w/o Performance Counters | Disk and Device Read/Write Statistics | Atom Table Functions | Process, Thread, & DLL Functions UDFs | Process CPU Usage Trackers | PE File Overlay Extraction | A3X Script Extract | File + Process Imports/Exports Information | Windows Desktop Dimmer Shade | Spotlight + Focus GUI - Highlight and Dim for Eyestrain Relief | CrossHairs (FullScreen) | Rubber-Band Boxes using GUI's (_GUIBox) | GUI Fun! | IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) | Magnifier (Vista+) Functions UDF | _DLLStructDisplay (Debug!) | _EnumChildWindows (controls etc) | _FileFindEx | _ClipGetHTML | _ClipPutHTML + ClipPutHyperlink | _FileGetShortcutEx | _FilePropertiesDialog | I/O Port Functions | File(s) Drag & Drop | _RunWithReducedPrivileges | _ShellExecuteWithReducedPrivileges | _WinAPI_GetSystemInfo | dotNETGetVersions | Drive(s) Power Status | _WinGetDesktopHandle | _StringParseParameters | Screensaver, Sleep, Desktop Lock Disable | Full-Screen Crash Recovery Wrappers/Modifications of others' contributions: _DOSWildcardsToPCRegEx (original code: RobSaunder's) | WinGetAltTabWinList (original: Authenticity) UDF's added support/programming to: _ExplorerWinGetSelectedItems | MIDIEx UDF (original code: eynstyne) (All personal code/wrappers centrally located at Ascend4nt's AutoIT Code) 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