Jump to content

FreeText.au3 - Place Text Anwhere


Valuater
 Share

Recommended Posts

  • 1 year later...

No lookie-loose-lately......????

Anyone make make a good use for this?

Thx

8)

This was the thread which dragged me into AutoIt a couple of years ago.

The project I had at the time involved writing a unicode overlay for a non-unicode compatible piece of software. I'm currently revisiting the project as to get my clicks through to the underlying program, I needed to hide the overlay and send the click to the original software.

If you have any suggestions for achieving clicks through your floating texts to what lies beneath, I'd be 1 very happy man.

Regards,

D

Link to comment
Share on other sites

...

If you have any suggestions for achieving clicks through your floating texts to what lies beneath, I'd be 1 very happy man.

Regards,

D

Thx

As a suggestion.... This uses "on event mode". I just threw in an event handler but you can set functions that will do what ever you want

#include <FreeText.au3> ; ver 2.5.2

Opt("GUIOnEventMode", 1)

; FreeText.au3 - Demonstration Code - Circle the Horses... lol
HotKeySet("{ESC}", "Terminate")

Dim $wait = 3000

; you can copy and paste the Functions
_FreeText_Functions()

ToolTip("Hit (ESC) to Exit", 1, 1, "FreeText", 1)

$TextGUI2 = _FreeText_CreateCubes(8, -1, -1, 50)
Sleep($wait)
_FreeText_Shape_SetText($TextGUI2, "Valuater", 30)
Sleep($wait)
_FreeText_Circle($TextGUI2, 0, 200)

For $t = 1 To UBound($TextGUI2) - 1

    _FreeText_Shape_SetOnEvent($TextGUI2, $t, "EventHandler")

Next

While 1
    Sleep(50)
WEnd

Func _FreeText_Circle($T_GUI, $Full = 1, $adjust = 200, $delay = 1)
    If Not IsArray($T_GUI) Then Return 0
    Local Const $PI = 3.1415926535897932384626433832795, $Points = UBound($T_GUI)
    Local $Width = (@DesktopWidth - $adjust), $Height = (@DesktopHeight - $adjust), $MidX = $Width / 2, $MidY = $Height / 2
    Local $Step = ($PI * (1 + $Full)) / ($Points - $Full), $Radius = $MidY - ($MidY / $Points)
    For $x = 1 To UBound($T_GUI) - 1
        WinMove($T_GUI[$x][0], "", ($MidX - (Cos($x * $Step) * $Radius)) + ($adjust / 2), ($MidY - (Sin($x * $Step) * $Radius)) + ($adjust / 2))
        Sleep($delay)
    Next
    Return 1
EndFunc   ;==>_FreeText_Circle

Func Terminate()
    Exit 0
EndFunc   ;==>Terminate

Func _FreeText_Shape_SetOnEvent($B_GUI, $Char_Number, $Function)
    If Not IsHWnd($B_GUI[$Char_Number][0]) Then Return 0
    If Not Opt("GUIOnEventMode", 1) = 1 Then Return MsgBox(262192, "ERROR", "Please set *On Event Mode*   ", 5)
    GUICtrlSetOnEvent($B_GUI[$Char_Number][1], $Function)
    Return 1
EndFunc   ;==>_FreeText_Shape_SetOnEvent

Func EventHandler()
    $EventID = @GUI_CtrlId - 2
    MsgBox(0, 0, $EventID, 5)
    Return 1
EndFunc   ;==>EventHandler

8)

Edited by Valuater

NEWHeader1.png

Link to comment
Share on other sites

  • 1 month later...

must leave the text as smooth, perhaps?

Func _GDIPlus_GraphicsSetTextRenderingHint($hGraphics, $iTextRenderingHint)


    Local $aResult = DllCall($ghGDIPDll, 'uint', 'GdipSetTextRenderingHint', 'ptr', $hGraphics, 'int', $iTextRenderingHint)

    If @error Then
        Return SetError(1, 0, 0)
    Else
        If $aResult[0] Then
            Return SetError($aResult[0], 0, 0)
        EndIf
    EndIf
    Return 1
EndFunc
Link to comment
Share on other sites

  • 3 months later...

How to make the text always on the bottom instead of always on the top?

Please be a liitle more explicit.

On the bottom or top of what? Top of the GUI?, Top of the screen Screen?

Just guessing... bottom of the screen, use the settings for the " Text Create"

_FreeText_Create($String, $Left = -1, $Top = -1, $Size = 50, $Color = "Black", $Font = "Arial", $Weight = 1000)

$Left and $Top are the locational settings

8)

NEWHeader1.png

Link to comment
Share on other sites

  • 1 month later...

Thanks for making this great text tool, Valuater!

Is there a way that I can shrink/grow the text created with your scripts?

Sorry I am so late getting back to your question.... and thanks for the kudo's!

The very First Function in FreeText.au3 is...

_FreeText_Create($String, $Left = -1, $Top = -1, $Size = 50, $Color = "Black", $Font = "Arial", $Weight = 1000)

The size is squared by the $Size ( In other words width x height ) and the letter size is automatically adjusted according to the $Size also

If you get too large, you may have to adjust the calculations in the function.

8)

NEWHeader1.png

Link to comment
Share on other sites

  • 1 year later...
  • 6 months later...

Hi Valuater,

thank you for your effort. it is very good script.

I just trying to create affirmations display in autoit. can I display text as it just like a line as below for 2 seconds or 5 seconds.

I am great

I am healthy

can you kindly help me where I should pass parameters or change things in script.

Link to comment
Share on other sites

Hi Valuater,
 
i have included your FreeText.au3 script in my .au3 file. when i supplied string, it displays but there are spaces in between letters.  i attempted to change  _FreeText_Create function, but dont know what to change and where to change. randomly changed the values but it didnt even show wrong results or errors. then stopped digging.  :shifty:
 
;********* USER INPUT **************
; Create a Background GUI?
Dim $BackGround_GUI = False
; Animation on?
Dim $Random = True
; Display your user name or ????
Dim $Title = @UserName
; seconds to wait between animations
$wMin = 1
$wMax = 10
Dim $wait = 1000;Random($wMin, $wMax, 1)
; Font Size ; -1 = random 38-50
Dim $tSize = -1
;********** END USER INPUT ***********
 
 
#include <FreeText.au3>
#include <Date.au3>
 
 _FreeText_Create("I am great. I am improving everyday. I can handle everything." , -1, -1,20, "Black", "Arial", 30000)
 
Thanks for your time.
Link to comment
Share on other sites

  • 3 years later...

@Valuater first of all congratulations for the beautiful work, I can not leave the words without space can you explain to me how to take the spaces?

 

I changed $ Space = 2 to $ Space = 0 but it still has space and I want to leave it like this:  V A L U A T E R  ==> VALUATER

Edited by Belini
Link to comment
Share on other sites

  • 4 years later...

Hi @Valuater,

you did a really great job.

I have a question, how can I move this writing to a specific position?

specifically at the bottom left. Thank you in advance

 

 

#include <FreeText.au3> ; ver 2.0.0
#include <Array.au3>


$TextGUI2 = _FreeText_Create("WINDOW ALERT", -1, -1, 30, "Black", "Bazooka", 1000)
Sleep(10)
_FreeText_ColorStrobe($TextGUI2, 45, "Red", 1)
Sleep(10)

 

Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...