iB07 Posted June 16, 2013 Share Posted June 16, 2013 (edited) Dear AutoIt community, im a hobbyscripter and got quite far with this awesome tool and its functions/tutorials already but now im stuck and dont find an answer for my problem (beside d3d drawing, which would require c++/dll injection) my goal is it to display text on top of a borderless game window which is not active and NOT ACTIVATABLE (just like i would DrawText with D3D) that means i also dont want the text/label to "activate" if i accidentaly click it, since that would open the taskbar and id loose gamecontrol until i click the game again. so is there any way to disable activating clicks for that gui? or is there even an better solution? here an example what i got so far: (press END to exit) expandcollapse popup#include <GUIConstantsEx.au3> #include <Misc.au3> Opt("GUIResizeMode",$GUI_DOCKALL) ;;VARS global $EXIT = "23";Exit Hotkey = END global $DisplayText="!!!!!!!!!!!!!!!!!!! TEXT TO DISPLAY !!!!!!!!!!!!!!!!!!! 'END' -> exit" $X=800 $Y=50 CreateDisplay() while 1 HotKeys() GuiCtrlSetData($Label,$DisplayText) WinSetOnTop($GUI4LABEL,"",1) sleep(100) wend Func CreateDisplay() Global $GUI4LABEL = GUICreate("Display", 200, 200, 800, 3, 0x80000000, 128);$WS_POPUP = 0x80000000, $WS_EX_TOOLWINDOW = 128 GUISetBkColor(0xADFF2F) ;Create Label with text Global $Label = GUICtrlCreateLabel($DisplayText, 3, 3) $cgp = ControlGetPos($GUI4LABEL, "", $Label);get label size WinMove($GUI4LABEL, "", $X, $Y, $cgp[2], $cgp[3]);form gui ;OnTop WinSetOnTop($GUI4LABEL,"",1) ;Show no activate GUISetState(@SW_SHOWNOACTIVATE) EndFunc Func HotKeys() ;;Hotkey END if _IsPressed($EXIT) = 1 Then Exit EndIf While _IsPressed ($EXIT) = 1 Sleep(1) WEnd EndFunc regards, iB07 Edited June 16, 2013 by iB07 Link to comment Share on other sites More sharing options...
TheSaint Posted June 16, 2013 Share Posted June 16, 2013 (edited) You have some errors and unnecessary elements there. For starters, all your Globals should be at the top of your script. If _IsPressed($exit) does indeed equal 1, it will never get to the While part of your Hotkeys function, because of the Exit. Perhaps you meant it to part of an Else statement and use doesn't equal (<>)? But then, your code execution would be trapped in that loop, and never return to your first While, until you pressed the END key. Not quite sure why you need to keep sending the same text to the label again (repeatedly and so frequently)? Or why you need to repetitively set the window on top, when it was made that way at creation? And I'm not sure that I completely understand your overall aim, but you could disable the Mouse while the Text GUI is showing. Perhaps, if you rethink the logic of what you are doing and correct your code, then I or another may be able to help. EDIT Welcome to the forum! Edited June 16, 2013 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) Link to comment Share on other sites More sharing options...
0xdefea7 Posted June 17, 2013 Share Posted June 17, 2013 I think maybe something like this is what you are looking for? #include <GUIConstantsEx.au3> Opt("GUIResizeMode",$GUI_DOCKALL) Global $DisplayText = " !!!!!!!!!!!!!!!!!!! TEXT TO DISPLAY !!!!!!!!!!!!!!!!!!! 'END' -> exit" HotKeySet("{END}", "Leave") $GUI4LABEL = GUICreate("GreenGui", @DesktopWidth / 2, @DesktopHeight / 2, -1, -1, 0x80000000, 128);$WS_POPUP = 0x80000000, $WS_EX_TOOLWINDOW = 128 GUISetBkColor(0xADFF2F) $Label = GUICtrlCreateLabel($DisplayText, 3, 3, @DesktopWidth / 2 - 10, 17) ; Need to set the width and height of the Label WinSetOnTop($GUI4LABEL,"",1) GUISetState(@SW_SHOWNOACTIVATE) $hWnd = WinGetHandle("GreenGui", "TEXT TO DISPLAY") while 1 If Not WinActive($hWnd) Then WinActivate($hWnd) Sleep(100) wend Func Leave() Exit EndFunc Hope this helps. Link to comment Share on other sites More sharing options...
Blue_Drache Posted June 17, 2013 Share Posted June 17, 2013 my goal is it to display text on top of a borderless game window which is not active and NOT ACTIVATABLE WOOP!!! WOOP!!!! DANGER WILL ROBINSON!!! DANGER!!! Read the rules. DW1 1 Lofting the cyberwinds on teknoleather wings, I am...The Blue Drache Link to comment Share on other sites More sharing options...
Recommended Posts