Jump to content

Translucent Line that Follow Mouse


burners
 Share

Recommended Posts

I have an older friend that has trouble reading text and they found this program but its a paid program and after looking at it I thought that seems like something AIT could do very simply.

https://www.clarosoftware.com/screenruler

 

My friend like the underline function.
So I googled and I found exactly what I want but its for AutoHotkey and heres the catch. I know I can compile AutoHotkey and just use that script but I wanted to add a little GUI to the functions to allow the user to change the color and width of the line, maybe the hotkey that toggles it as well. I can do all of the GUI stuff no problem but drawing the translucent, click through style line that follows the mouse I think would be an issue for me because last time I made a few GUIs with moving parts the redraw was horrible on them.

 

Anyway here is the very short and simple AutoHotkey script, if someone could convert this to a simple AIT script I will share the final full code once completed.

The line height can be adjusted by changing the value of h10 before NA, i.e. h0, h1, h2 and so on

#SingleInstance force
CoordMode mouse, screen

Gui -Caption +ToolWindow +AlwaysOnTop +LastFound
Gui Color, Red
WinSet Transparent, 200
WinSet ExStyle, +0x20  ; set click through style
return

F1:: SetTimer Draw, % (switch:= !switch) ? "20" : "-20"
ESC::ExitApp

Draw:
   MouseGetPos, , y
   If switch
      Gui Show, x0 y%y% w%A_ScreenWidth% h10 NA
   else Gui Cancel
return

 

~~--Feel Free to Steal my Sigs --~~FLAT LOOK____________________________________ROUNDED LOOK

Link to comment
Share on other sites

Unbelievable that the software costs £29.00!

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global Const $aFullScreen = WinGetPos(WinGetHandle("[TITLE:Program Manager;CLASS:Progman]"))
Global $iHeight = 4
Global Const $hGUI = GUICreate("Screen Ruler Underline for free :-)", $aFullScreen[2], $iHeight, $aFullScreen[0], MouseGetPos(1), $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TRANSPARENT))
GUISetBkColor(0x000000)
WinSetTrans($hGUI, "", 0xA0)
GUISetState()

HotKeySet("{ESC}", "_Exit")

Do
    WinMove($hGUI, "", $aFullScreen[0], MouseGetPos(1))
Until Not Sleep(50)

Func _Exit()
    GUIDelete()
    Exit
EndFunc

 

The other modes should be easy to implement, too.

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Thanks UEZ, Ive read some of your other posts and you have some great code examples out there.

I will start cracking away on the GUI for this today

~~--Feel Free to Steal my Sigs --~~FLAT LOOK____________________________________ROUNDED LOOK

Link to comment
Share on other sites

OK I have the skeleton of the GUI, just need a little more tweaking on it and I will start putting the code together.

I might add some more settings like run as service and run at startup.

 

 

Form-Demo.JPG

~~--Feel Free to Steal my Sigs --~~FLAT LOOK____________________________________ROUNDED LOOK

Link to comment
Share on other sites

How hard do you think it would be to do the "Coloured reading ruler" shown on this page?

https://www.clarosoftware.com/screenruler

 

 

Not much harder than Screen Ruler Underline:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global Const $aFullScreen = WinGetPos(WinGetHandle("[TITLE:Program Manager;CLASS:Progman]"))
Global $iSpaceBetween = 150
Global Const $hGUI_Top = GUICreate("Coloured Reading Ruler for free", $aFullScreen[2], $aFullScreen[3], $aFullScreen[0], (-$aFullScreen[3] - $iSpaceBetween) / 2, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TRANSPARENT))
Global Const $hGUI_Buttom = GUICreate("", $aFullScreen[2], $aFullScreen[3], $aFullScreen[0], ($aFullScreen[3] + $iSpaceBetween) / 2, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TRANSPARENT), $hGUI_Top)
GUISetBkColor(0x000000, $hGUI_Top)
GUISetBkColor(0x000000, $hGUI_Buttom)
WinSetTrans($hGUI_Top, "", 0x80)
WinSetTrans($hGUI_Buttom, "", 0x80)
GUISetState(@SW_SHOW, $hGUI_Top)
GUISetState(@SW_SHOW, $hGUI_Buttom)

HotKeySet("{ESC}", "_Exit")

Do
    WinMove($hGUI_Top, "", $aFullScreen[0], MouseGetPos(1) - $aFullScreen[3] - $iSpaceBetween / 2)
    WinMove($hGUI_Buttom, "", $aFullScreen[0], MouseGetPos(1) + $iSpaceBetween / 2)
Until Not Sleep(50)

Func _Exit()
    GUIDelete($hGUI_Buttom)
    GUIDelete($hGUI_Top)
    Exit
EndFunc

 

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

Woot, looks like we are gonna have a complete clone application on our hands, I will also host the app on my site when done www.ittechtools.net 

All my apps are free and open as long as their not modified and offered as paid software.

OK looks like its back to the drawing board on the GUI, I will either make the GUI bigger with more functions or tabbed and have 1 tab for the underline and 1 tab for the ruler 

 

Thanks again UEZ

~~--Feel Free to Steal my Sigs --~~FLAT LOOK____________________________________ROUNDED LOOK

Link to comment
Share on other sites

  • 1 month later...

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...