Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/11/2022 in all areas

  1. water

    AD - Active Directory UDF

    Version 1.6.3.0

    17,282 downloads

    Extensive library to control and manipulate Microsoft Active Directory. Threads: Development - General Help & Support - Example Scripts - Wiki Previous downloads: 30467 Known Bugs: (last changed: 2020-10-05) None Things to come: (last changed: 2020-07-21) None BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort
    1 point
  2. water

    OutlookEX

    Version 1.7.0.1

    10,047 downloads

    Extensive library to control and manipulate Microsoft Outlook. This UDF holds the functions to automate items (folders, mails, contacts ...) in the background. Can be seen like an API. There are other UDFs available to automate Outlook: OutlookEX_GUI: This UDF holds the functions to automate the Outlook GUI. OutlookTools: Allows to import/export contacts and events to VCF/ICS files and much more. Threads: Development - General Help & Support - Example Scripts - Wiki BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort KNOWN BUGS (last changed: 2020-02-09) None
    1 point
  3. Still do not understand why to use AutoIt with tools like DBeaver , which can be compared to Microsoft SQL Management Studio. Such tools should be used manually with huge attention.
    1 point
  4. I've always had the feeling that I don't have an advanced example here that clearly shows how to formulate KEYS to achieve the desired JSON structure. Hopefully this example below will make things clearer for other users of this UDF, I mean those who haven't fully understood it yet. #include "Json.au3" test7() Func test7() Local $Obj Json_Put($Obj, ".Primitive_1", "Test") ; JSON_PRIMITE "Primitive_1" Json_Put($Obj, ".Primitive_2", True) ; JSON_PRIMITE "Primitive_2" Json_Put($Obj, ".Primitive_3", False) ; JSON_PRIMITE "Primitive_3" Json_Put($Obj, ".Primitive_4", Null) ; JSON_PRIMITE "Primitive_4" Json_Put($Obj, ".List_A[0]", "Test") ; JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[1]", True) ; JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[2]", False) ; JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[3]", Null) ; JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4]", "value_A=100") ; JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4].Object_1", "{}") ; JSON_OBJECT "Object_1" as subelement of JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4].Object_1.List_A_B[0]", "Test") ; JSON_ARRAY "List_A_B" as subelement of JSON_OBJECT "Object_1" which is subelement of JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4].Object_1.List_A_B[1]", True) ; JSON_ARRAY "List_A_B" as subelement of JSON_OBJECT "Object_1" which is subelement of JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4].Object_1.List_A_B[2]", False) ; JSON_ARRAY "List_A_B" as subelement of JSON_OBJECT "Object_1" which is subelement of JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4].Object_1.List_A_B[3]", Null) ; JSON_ARRAY "List_A_B" as subelement of JSON_OBJECT "Object_1" which is subelement of JSON_ARRAY "List_A" Json_Put($Obj, ".List_A[4].Object_1.List_A_B[4]", "value_A_B=100") ; JSON_OBJECT Json_Put($Obj, ".List_C[0]", "Test") ; JSON_CRRAY "List_C" Json_Put($Obj, ".List_C[1]", True) ; JSON_CRRAY "List_C" Json_Put($Obj, ".List_C[2]", False) ; JSON_CRRAY "List_C" Json_Put($Obj, ".List_C[3]", Null) ; JSON_CRRAY "List_C" Json_Put($Obj, ".List_C[4]", "value_C=100") ; JSON_CRRAY "List_C" Json_Put($Obj, ".List_D[0].Object_2.List_D_E[0]", "Test") ; JSON_DRRAY "List_D_E" as subelement of JSON_OBJECT "Object_2" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_2.List_D_E[1]", True) ; JSON_DRRAY "List_D_E" as subelement of JSON_OBJECT "Object_2" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_2.List_D_E[2]", False) ; JSON_DRRAY "List_D_E" as subelement of JSON_OBJECT "Object_2" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_2.List_D_E[3]", Null) ; JSON_DRRAY "List_D_E" as subelement of JSON_OBJECT "Object_2" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_2.List_D_E[4]", "value_D_E=100") ; JSON_OBJECT Json_Put($Obj, ".List_D[0].Object_3.List_D_F[0]", "Test") ; JSON_DRRAY "List_D_F" as subelement of JSON_OBJECT "Object_3" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_3.List_D_F[1]", True) ; JSON_DRRAY "List_D_F" as subelement of JSON_OBJECT "Object_3" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_3.List_D_F[2]", False) ; JSON_DRRAY "List_D_F" as subelement of JSON_OBJECT "Object_3" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_3.List_D_F[3]", Null) ; JSON_DRRAY "List_D_F" as subelement of JSON_OBJECT "Object_3" which is subelement of JSON_DRRAY "List_D" Json_Put($Obj, ".List_D[0].Object_3.List_D_F[4]", "value_D_F=100") ; JSON_OBJECT Json_Put($Obj, ".Empty_object", "{}") ; JSON_OBJECT "Empty_object" with out any elements ConsoleWrite("JSON structure: " & Json_Encode($Obj) & @LF) ConsoleWrite("JSON structure PRETTY PRINT: " & @LF & Json_Encode($Obj, $JSON_PRETTY_PRINT) & @LF) EndFunc ;==>test7 it produce: { "Primitive_1": "Test", "Primitive_2": true, "Primitive_3": false, "Primitive_4": null, "List_A": [ "Test", true, false, null, { "Object_1": { "List_A_B": [ "Test", true, false, null, "value_A_B=100" ] } } ], "List_C": [ "Test", true, false, null, "value_C=100" ], "List_D": [ { "Object_2": { "List_D_E": [ "Test", true, false, null, "value_D_E=100" ] }, "Object_3": { "List_D_F": [ "Test", true, false, null, "value_D_F=100" ] } } ], "Empty_object": "{}" }
    1 point
  5. Nine

    Date Range Picker

    @SkysLastChance I figured something I am pleased with. Clicking the month label, selects it. You can now drag the window using any place in the GUI background. Thanks for the suggestion. New version available
    1 point
  6. Hi @kurtykurtyboy. You're welcome! I'm always happy to know people enjoy my projects You don't need to call the __destructor method manually, it is all handled by AutoIt with the exception on script exit. The object destructor function and object memory cleanup is invoked when no more references to the object exists. So for example if you overwrite your $oColors variable after your ConsoleWrite with something else, the object cleanup will run. I see no issues with creating and assigning the objects within the loop, except you could end up allocating a lot of memory, if your ini file gets a lot bigger.
    1 point
  7. When you got skillz you don't need luck son.
    1 point
  8. Maybe: https://www.autoitscript.com/wiki/FAQ#Why_does_the_Ctrl_key_get_stuck_down_after_I_run_my_script.3F Jos
    1 point
  9. First of all thank you for your answer. I tried it and it works great! If I want the script to Press Enter, then sleep for 500ms and then Press the "A"-Key - where am I supposed to place the Sleep then? Thank you
    1 point
  10. UEZ

    image compare 99% identical

    Here a script which displays the difference between 2 images: #include <GDIPlus.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() _WinAPI_BitmapsGetDiff(@ScriptDir & "\Filled.bmp", @ScriptDir & "\Logo4.bmp", @ScriptDir & "\Diff.png") ;change the file names here! ShellExecute(@ScriptDir & "\Diff.png") _GDIPlus_Shutdown() Func _WinAPI_BitmapsGetDiff($sFile1, $sFile2, $sSave, $iROP = $MERGEPAINT) ;coded by UEZ 2014-02-10 Local Const $hBitmap1 = _GDIPlus_BitmapCreateFromFile($sFile1) If @error Then Return SetError(1, 0, 0) Local Const $hBitmap2 = _GDIPlus_BitmapCreateFromFile($sFile2) If @error Then _GDIPlus_BitmapDispose($hBitmap1) Return SetError(2, 0, 0) EndIf Local Const $iW = _GDIPlus_ImageGetWidth($hBitmap1), $iH = _GDIPlus_ImageGetHeight($hBitmap1) If _GDIPlus_ImageGetWidth($hBitmap2) <> $iW Or _GDIPlus_ImageGetHeight($hBitmap2) <> $iH Then _GDIPlus_BitmapDispose($hBitmap1) _GDIPlus_BitmapDispose($hBitmap2) Return SetError(3, 0, 0) EndIf Local Const $hHBitmap1 = _WinAPI_CreateDIB($iW, $iH) Local Const $hD1 = _WinAPI_GetWindowDC(0) Local Const $hDC_backbuffer1 = _WinAPI_CreateCompatibleDC($hD1) Local Const $DC_obj1 = _WinAPI_SelectObject($hDC_backbuffer1, $hHBitmap1) Local Const $hGraphic1 = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer1) _GDIPlus_GraphicsSetInterpolationMode($hGraphic1, 5) _GDIPlus_GraphicsDrawImageRect($hGraphic1, $hBitmap1, 0, 0, $iW, $iH) Local Const $hHBitmap2 = _WinAPI_CreateDIB($iW, $iH) Local Const $hD2 = _WinAPI_GetWindowDC(0) Local Const $hDC_backbuffer2 = _WinAPI_CreateCompatibleDC($hD2) Local Const $DC_obj2 = _WinAPI_SelectObject($hDC_backbuffer2, $hHBitmap2) Local Const $hGraphic2 = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer2) _GDIPlus_GraphicsSetInterpolationMode($hGraphic2, 5) _GDIPlus_GraphicsDrawImageRect($hGraphic2, $hBitmap2, 0, 0, $iW, $iH) Local Const $hHBitmap3 = _WinAPI_CreateDIB($iW, $iH) Local Const $hD3 = _WinAPI_GetWindowDC(0) Local Const $hDC_backbuffer3 = _WinAPI_CreateCompatibleDC($hD3) Local Const $DC_obj3 = _WinAPI_SelectObject($hDC_backbuffer3, $hHBitmap3) _WinAPI_BitBlt($hDC_backbuffer3, 0, 0, $iW, $iH, $hDC_backbuffer1, 0, 0, $SRCCOPY) _WinAPI_BitBlt($hDC_backbuffer3, 0, 0, $iW, $iH, $hDC_backbuffer2, 0, 0, $iROP) _GDIPlus_BitmapDispose($hBitmap1) _GDIPlus_BitmapDispose($hBitmap2) $hBitmap3 = _GDIPlus_BitmapCreateFromHBITMAP($hHBitmap3) _GDIPlus_ImageSaveToFile($hBitmap3, $sSave) _GDIPlus_BitmapDispose($hBitmap3) _GDIPlus_GraphicsDispose($hGraphic1) _WinAPI_SelectObject($hD1, $DC_obj1) _WinAPI_DeleteDC($hDC_backbuffer1) _WinAPI_DeleteObject($hHBitmap1) _WinAPI_ReleaseDC(0, $hD1) _GDIPlus_GraphicsDispose($hGraphic2) _WinAPI_SelectObject($hD2, $DC_obj2) _WinAPI_DeleteDC($hDC_backbuffer2) _WinAPI_DeleteObject($hHBitmap2) _WinAPI_ReleaseDC(0, $hD2) _WinAPI_SelectObject($hD3, $DC_obj3) _WinAPI_DeleteDC($hDC_backbuffer3) _WinAPI_DeleteObject($hHBitmap3) _WinAPI_ReleaseDC(0, $hD3) Return 1 EndFunc Result: Edit: visually the images are the same and the question is how to recognize this.... Br, UEZ
    1 point
×
×
  • Create New...