Jump to content

Recommended Posts

Posted
1 minute ago, argumentum said:

True. Did the needless update and it solved it ( not so needless after all ! ) :) 

Oh sorry it's my fault, i thought every one had that. I'll update the requirements.

Posted

<rant>
I hate ( hate is a strong word, should not use that word ) that unless ... grrr !! :mad2:
...unless you install the latest the developer can not work and to support lesser/older versions becomes a problem :wacko2:

..then everyone needs a setup compatible with the developer's setup so stuff work. Is not the developer's fault but ... is like you'd have to code in Win95 to make sure that stuff is cross-MS-versions, but then again may not work in newer setups, .... so ... .
What I love, just love, about AutoIt is that I never have to worry about any of that.
</rant>

Can this be compiled with less requirements ? Like the lowest DirectX and WinXP ?
This you put together is beautiful. Plain beautiful. ❤️
But unless drop and run, is a possible problem for a "user level" environment, where to reach an admin to do anything is a problem.

Also, do add a Sleep(10) in your example's main loop and a #include-once in the UDF

And again, thanks for all this you put together :) 

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Posted (edited)
#include-once
; author:   thedemons

#include <WinAPI.au3>
#include <WinAPIDiag.au3>

Global $__imgui_created = False
Global $__imgui_dllpath = @ScriptDir & "\imgui.dll"
If @AutoItX64 Then $__imgui_dllpath = @ScriptDir & "\dll_64\imgui.dll"

#cs
If @AutoItX64 Then $__imgui_dllpath = "imgui_x64.dll" ; <--- this would be better
so that the DLL can be anywhere in a searchable path, say, @SystemDir or what not
#ce

If Not FileGetSize($__imgui_dllpath) Then
    MsgBox(16, "Error", "Cannot find imgui.dll" & @CRLF & "Please update to the latest version of DirectX")
    Exit
EndIf

Global $IMGUI_DLL = DllOpen($__imgui_dllpath)
If $IMGUI_DLL = -1 Then
    MsgBox(16, "Error", "Cannot load imgui.dll" & @CRLF & "Please update to the latest version of DirectX")
    Exit
EndIf

OnAutoItExitRegister(Shutdown_)
Func Shutdown_()
    If $__imgui_created Then _ImGui_ShutDown()
    DllClose($IMGUI_DLL)
;~  FileDelete($__imgui_dllpath)
EndFunc

..this too can make it easier on the user. ( just an idea )

Edit: add a FileVersion to the DLL

Edited by argumentum

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

  • 1 year later...
Posted

The dxdiag 10.00.17763 version cannot be started. Can you match earlier versions of DLL files? Thank you very much, if you can, I'm sure there will be more devices available.

  • 4 weeks later...
Posted (edited)

I have no problems with the dlls and compiled exes in my computer. But when i compiled a source, the compiled exe doesn't work on other computers which is same as mine. Eventhough directx requirements you mentioned was installed. I checked imgui.ini and i don't see anything related to Viewports. But in my computer i see viewports id.

Edited by Wisok
  • 3 years later...
Posted

sorry i try to use for first time imgui ,  i want create a simple menu  for attach over other  program, i not use a autoit gui , because fliker so much , therfore i want test imgui , i have created this code

#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include "imgui.au3"

Global $sIniPath = @ScriptDir & "\Config.ini"
Global $sCommandsPath = IniRead($sIniPath, "MT5_path_exchange", "MT5Pth", "")
Global $sToolboxFile = $sCommandsPath & "\toolbox.txt"
Global $lastLoadTime = TimerInit()
Global $tradeList[1][3] = [[0, "", ""]]

_ImGui_EnableViewports()

Local $hwnd = _ImGui_GUICreate("", 1, 1, -100, -100, 0, $WS_EX_TOOLWINDOW)
_WinAPI_ShowWindow($hwnd)

_ImGui_StyleColorsLight()

Local $io = _ImGui_GetIO()
$io.ConfigWindowsMoveFromTitleBarOnly = True

Local $is_first_run = True

While 1

    If Not _ImGui_PeekMsg() Then Exit

    _ImGui_BeginFrame()

If Not _ImGui_Begin("", True, BitOR( _
    $ImGuiWindowFlags_NoTitleBar, _
    $ImGuiWindowFlags_NoResize, _
    $ImGuiWindowFlags_NoCollapse, _
    $ImGuiWindowFlags_NoScrollbar, _
    $ImGuiWindowFlags_NoScrollWithMouse _
)) Then Exit

If $is_first_run Then
    $is_first_run = False
   Local $win_size[] = [800, 30]
Local $win_pos_x = 1118 ; PROVA con 10 o qualunque valore
Local $win_pos_y = 43

        _ImGui_SetWindowPos($win_pos_x, $win_pos_y)
        _ImGui_SetWindowSize($win_size[0], $win_size[1])

EndIf

    ; Ricarica dati ogni 150ms
    If TimerDiff($lastLoadTime) > 150 Then
        ReloadTrades()
        $lastLoadTime = TimerInit()
    EndIf

    ; Mostra le righe dei trade
    For $i = 1 To $tradeList[0][0]
        Local $symbol = $tradeList[$i][0]
        Local $ticket = $tradeList[$i][1]
        Local $net = $tradeList[$i][2]
        Local $text = $symbol & " | " & $net
        Local $color = (Number($net) < 0) ? 0xFF0000 : 0x009900

    ;_ImGui_Text("Hello")
        if $net < 0 Then
            _ImGui_TextColored($text,0xFFEB5757)
        EndIf
        if $net > 0 Then
            _ImGui_TextColored($text,0xFF3CA69B)
        EndIf
        if $net = 0 Then
            _ImGui_TextColored($text,0xFF000000)
        EndIf
        _ImGui_SameLine()
        If _ImGui_Button($ticket) Then
            SendCloseTrade($ticket)
        EndIf
        _ImGui_SameLine()
    Next

    ; Pulsante "Chiudi tutto"
    _ImGui_SameLine()
    If _ImGui_Button("X") Then
        MsgBox(64, "Chiudi Tutto", "Chiudi tutti i trade.") ; oppure SendCloseAll()
    EndIf

    _ImGui_End()
    _ImGui_EndFrame()
WEnd



Func ReloadTrades()
    If Not FileExists($sToolboxFile) Then Return

    Local $lines = FileReadToArray($sToolboxFile)
    If @error Then Return

    ReDim $tradeList[UBound($lines) + 1][3]
    $tradeList[0][0] = 0

    For $i = 0 To UBound($lines) - 1
        Local $parts = StringSplit($lines[$i], ",")
        If $parts[0] <> 3 Then ContinueLoop
        $tradeList[0][0] += 1
        $tradeList[$tradeList[0][0]][0] = $parts[1]
        $tradeList[$tradeList[0][0]][1] = $parts[2]
        $tradeList[$tradeList[0][0]][2] = $parts[3]
    Next
EndFunc

Func SendCloseTrade($ticket)
    Local $cmd = "CLOSE," & $ticket
    Local $cmdFile = $sCommandsPath & "\commands.txt"
    Local $hFile = FileOpen($cmdFile, 2 + 8)
    If $hFile <> -1 Then
        FileWriteLine($hFile, $cmd)
        FileClose($hFile)
        MsgBox(64, "Comando inviato", "Chiudi trade #" & $ticket)
    Else
        MsgBox(16, "Errore", "Impossibile scrivere nel file di comando.")
    EndIf
EndFunc

but  when i try to push button  X  not work , anyone  have idea?  thanks

Posted (edited)

@thedemons Nice seeming project, that I have just discovered ... seems (seemed) quite promising.

So for what it is worth, and although it now seems abandoned, I have added it to the following, in the first post.

AutoIt GUI Creators (Designers)

Thanks for sharing.

Edited by TheSaint

Make sure brain is in gear before opening mouth!
Remember, what is not said, can be just as important as what is said.

Spoiler

What is the Secret Key? Life is like a Donut

If I put effort into communication, I expect you to read properly & fully, or just not comment.
Ignoring those who try to divert conversation with irrelevancies.
If I'm intent on insulting you or being rude, I will be obvious, not ambiguous about it.
I'm only big and bad, to those who have an over-active imagination.

I may have the Artistic Liesense ;) to disagree with you. TheSaint's Toolbox (be advised many downloads are not working due to ISP screwup with my storage)

userbar.png

Posted
On 5/30/2025 at 9:32 AM, MoriceGrene said:

because fliker so much

You should consider creating a runnable script that we can actually test.  I am sure we could help reducing the flicker, but without complete code, there is limits of what we can do...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...