Jump to content

Recommended Posts

Posted

Hi all

Im thinking of writing a program in autoit with hyperlinks. These instructions will have hyperlinks to varies components in windows. ie computer management, dns , active directory users and computers. Can anyone help me out ? I've searched the forums and they all link to websites.

thanks in advance

Posted (edited)

Maybe...

#include <GUIConstants.au3>

GUICreate("My GUI")  ; will create a dialog box that when displayed is centered

$label = GUICtrlCreateLabel ("Hyper-Link notepad",  10, 30, 170, 20) 
GUICtrlSetColor( $label, 0xff)
GUICtrlSetFont( $label, 10, 500, 4) 

GUISetState ()      ; will display an empty dialog box

; Run the GUI until the dialog is closed
Do
    $msg = GUIGetMsg()
    
    If $msg = $label Then Run("notepad.exe")
    
Until $msg = $GUI_EVENT_CLOSE

8)

Edited by Valuater

NEWHeader1.png

Posted

Hi, If you want that links will "act" like links in browser, then try like this:

(I always use this method in the "About program" window)

#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1)

Global $CurIsOnCtrlArr[1]

$Title = "Link Imitation"
$Link1 = "Notepad"
$Link2 = "MSPaint"
$Link3 = "Cmd"
$LinkColor1 = 0x0000FF
$LinkColor2 = 0x0000FF
$LinkColor3 = 0x0000FF

$GUI = GUICreate($Title, 320, 240)
GUISetOnEvent($GUI_EVENT_CLOSE, "Closed")
GUISetBkColor(0xFFFFFF)

$LinkLabel1 = GUICtrlCreateLabel($Link1, 10, 10, 50)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, $LinkColor1)
GUICtrlSetFont(-1, 9, 400, 0)
GUICtrlSetOnEvent(-1, "LinkEvent1")

$LinkLabel2 = GUICtrlCreateLabel($Link2, 10, 50, 50)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, $LinkColor2)
GUICtrlSetFont(-1, 9, 400, 0)
GUICtrlSetOnEvent(-1, "LinkEvent2")

$LinkLabel3 = GUICtrlCreateLabel($Link3, 10, 90, 33)
GUICtrlSetCursor(-1, 0)
GUICtrlSetColor(-1, $LinkColor3)
GUICtrlSetFont(-1, 9, 400, 0)
GUICtrlSetOnEvent(-1, "LinkEvent3")

For $i = 1 To 3
    LinkHover($GUI, Eval("LinkLabel" & $i), $i)
Next

GUISetState()

While 1
    Sleep(100)
    If WinActive($GUI) Then
        For $i = 1 To 3
            LinkHover($GUI, Eval("LinkLabel" & $i), $i, 0xFF0000, Eval("LinkColor" & $i))
        Next
    EndIf
WEnd

Func LinkHover($hWnd, $CtrlID, $CtrlNum, $HoverColor=0xFF0000, $LinkColor=0x0000FF)
    Local $CursorCtrl = GUIGetCursorInfo($hWnd)
    ReDim $CurIsOnCtrlArr[UBound($CurIsOnCtrlArr)+1]
    If $CursorCtrl[4] = $CtrlID And $CurIsOnCtrlArr[$CtrlNum] = 1 Then
        GUICtrlSetFont($CtrlID, 9, 400, 6)
        GUICtrlSetColor($CtrlID, $HoverColor)
        $CurIsOnCtrlArr[$CtrlNum] = 0
    ElseIf $CursorCtrl[4] <> $CtrlID And $CurIsOnCtrlArr[$CtrlNum] = 0 Then
        GUICtrlSetFont($CtrlID, 9, 400, 0)
        GUICtrlSetColor($CtrlID, $LinkColor)
        $CurIsOnCtrlArr[$CtrlNum] = 1
    EndIf
EndFunc

Func Closed()
    Exit
EndFunc

Func LinkEvent1()
    $LinkColor1 = 0xAC00A9
    GUICtrlSetColor(@GUI_CtrlId, $LinkColor1)
    ShellExecute(GUICtrlRead(@GUI_CtrlId, 1))
EndFunc

Func LinkEvent2()
    $LinkColor2 = 0xAC00A9
    GUICtrlSetColor(@GUI_CtrlId, $LinkColor2)
    ShellExecute(GUICtrlRead(@GUI_CtrlId, 1))
EndFunc

Func LinkEvent3()
    $LinkColor3 = 0xAC00A9
    GUICtrlSetColor(@GUI_CtrlId, $LinkColor3)
    ShellExecute(GUICtrlRead(@GUI_CtrlId, 1))
EndFunc

 

  Reveal hidden contents

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Posted

  MsCreatoR said:

Hi, If you want that links will "act" like links in browser, then try like this:

(I always use this method in the "About program" window)

Another piece in the puzzle, thanks MsCreatoR

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
  • Recently Browsing   0 members

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