Sign in to follow this  
Followers 0
HAL9000

Change the text of the Start button (Windows XP)

10 posts in this topic

How to change the Start button text?

autoit windows info

>>>> Control <<<<

Class: Button

Instance: 1

ClassnameNN: Button1

Name:

Advanced (Class): [CLASS:Button; INSTANCE:1]

ID: 304

Text: start

Position: 0, 0

Size: 99, 32

ControlClick Coords: 52, 16

Style: 0x54000D00

ExStyle: 0x00000000

Handle: 0x00030046

I tried with ControlSetText but I failed

Share this post


Link to post
Share on other sites



You will have to edit the explorer.exe binary (in C:\Windows). You can't do it from AutoIt.

If you are determined, you can read this article.

http://www.theeldergeek.com/change_text_on_xp_start_button1.htm

A little Google goes a long way.

Share this post


Link to post
Share on other sites

Explorer.exe draws the start button and would have to be modified. As the app that owns the control, it is not going to let you change it unless modified itself. Modifying Explorer.exe is possible, but is going to be resisted by every facet of malware protection and system restore functions on the machine. That makes me think you would have to "lower your shields" so much to do this it wouldn't be worth it.

Here's a quick Google'd up ref: Change Text on XP Start Button - Version II

Step 1 – Modify Explorer.exe File

In order to make the changes, the file explorer.exe located at C:\Windows needs to be edited.

;)


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

i have found this old script

If WinExists("%_StartClock_%") Then ;Checks to see if StartClock is already running
   Exit
EndIf

;//setting environment variables//
#include <GUIConstants.au3>
Opt("GuiOnEventMode", 1)
Opt("GUICoordMode", 1)
Opt ("WinTitleMatchMode", 4)
Opt ("WinTextMatchMode", 2)
;Opt ("WinWaitDelay", 300)

AutoItWinSetTitle("%_StartClock_%")
ProcessSetPriority("StartClock.exe", 0)

$Button1_pos = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") ;find and store location of button1(start button)
$tray_pos = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") ;entire task and quicklaunch area
$GetTime = FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) ;store startclock.ini last modified
$date = ""
$AMPM = ""
$hour = ""
$min = ""
$sec = ""
$display = ""

If FileExists(@ScriptDir & "\StartClock.ini") Then
   ReadINI()
Else
   MakeINI()
EndIf

Opt ("TrayIconHide", $HideTrayIcon)
If $BeginAtStartup = 1 Then
   RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock", "REG_SZ", @ScriptFullPath)
Else
   RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock")
EndIf
If $DisableHotkeys = 4 Then
   HotKeySet("^!x", "ExitScript");CTRL+ALT+X
   HotKeySet("^!z", "Config");CTRL+ALT+Z
   HotKeySet("^!+d", "Debug");CTRL+ALT+D
EndIf
;//end//

ResizBtn()
AdlibRegister( "Watch", 250)
;AdlibEnable( "Watch", 250)

Do
   $timer = Timerinit()
   $HOUR = @HOUR
   $MIN = @MIN
   ;//wait for changes in startclock.ini//
   If FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1) <> $GetTime Then
      ReadINI()
      If $HideTrayIcon = 4 Then
         $HideTrayIcon = 1;hide tray icon
      Else
         $HideTrayIcon = 0;show tray icon
      EndIf
      Opt ("TrayIconHide", $HideTrayIcon)
      If $BeginAtStartup = 1 Then
         RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock", "REG_SZ", @ScriptFullPath)
      Else
         RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "StartClock")
      EndIf
      If $DisableHotkeys = 4 Then
         HotKeySet("^!x", "ExitScript");CTRL+ALT+X
         HotKeySet("^!c", "Config");CTRL+ALT+C
         HotKeySet("^!+d", "Debug");CTRL+ALT+D
      Else
         HotKeySet("^!x")
         HotKeySet("^!c")
         HotKeySet("^!+d")
      EndIf
      $GetTime = FileGetTime(@ScriptDir & "\StartClock.ini", 0, 1)
   EndIf
   ;//end//
   
   ;//define seconds//
   If $ShowSeconds = 1 Then
      $SEC = ":" & @SEC
   Else
      $SEC = ""
   EndIf
   ;//end//
   
   ;//define date//
   If $Showdate = 1 Then
      Calldate()
   Else
      $date = ""
   EndIf
   ;//end//
   
   ;//define hours//
   If $ClockType = 1 Then
      If $HOUR <= 11 And Not $HOUR = 00 Then
         $HOUR = 24 + $HOUR - 24
         $AMPM = " AM"
      ElseIf $HOUR > 12 Then
         $HOUR = $HOUR - 12
         $AMPM = " PM"
      ElseIf $HOUR = 12 Then
         $HOUR = $HOUR
         $AMPM = " PM"
      ElseIf $HOUR = 00 Then
         $HOUR = "12"
         $AMPM = " AM"
      EndIf
   Else
      $AMPM = ""
   EndIf
   ;//end//
   
   $test = Timerinit()
   ;;MsgBox(0, "Debug - Calculation Time", TimerDiff($timer))
   If TimerDiff($timer) > 1 Then
      ;;MsgBox(0, "Debug - Verify Run", "Time Lag corrected")
      $sec = @SEC
      $display = $HOUR & ":" & $MIN & $SEC & $AMPM & $date
   Else
      $display = $HOUR & ":" & $MIN & $SEC & $AMPM & $date
      Sleep(1000 - TimerDiff($timer))
   EndIf
Until 1 <> 1

;//begin functions//
Func Watch()
  If ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") <> $Pre_Watch Then
     ResizBtn()
  EndIf
EndFunc

;//note: x, y, width, height//
Func ResizBtn()
   $thin_siz = StringSplit($hour & ":" & $min & $sec & $ampm & $date, "fijl :-")
   $med_siz = StringSplit($hour & ":" & $min & $sec & $ampm & $date, "abcdeghknopqrstuvxyz")
   $wide_siz = StringSplit($hour & ":" & $min & $sec & $ampm & $date, "0123456789mwABCDEFGHIJKLMNOPQRSTUVWXYZ")
   $resize = ($thin_siz[0]-1) * ($button1_pos[3] * 0.125) + ($med_siz[0]-1) * ($button1_pos[3] * 0.3125) + ($wide_siz[0]-1) * ($button1_pos[3] * 0.40625)
   $tray_current = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321")
   If $tray_pos[3] <> $tray_current[3] Then RefreshTray();drastic theme changes
   If $tray_pos[2] > $tray_pos[3] Then;entire tray width greater than height
      ControlMove("classname=Shell_TrayWnd", "", "ReBarWindow321", $tray_pos[0] - $Button1_pos[2] + ($Button1_pos[2] * 0.58 + $resize), $tray_pos[1], $tray_pos[2] + $Button1_pos[2] - ($Button1_pos[2] * 0.58 + $resize), $tray_pos[3]);resizes tray
   EndIf
   ControlMove("classname=Shell_TrayWnd", "", "Button1", $Button1_pos[0], $Button1_pos[1], ($Button1_pos[2] * 0.58 + $resize), $Button1_pos[3]);resizes start button
   ControlSetText("classname=Shell_TrayWnd", "", "Button1", $display)
   GUISetFont(8.5, 100,"","","classname=Shell_TrayWnd") 
   GLOBAL $Pre_Watch = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1")
EndFunc

Func Debug()
   $thin_siz = StringSplit($hour & ":" & $min & $sec & $ampm & $date, "fijl :-")
   $med_siz = StringSplit($hour & ":" & $min & $sec & $ampm & $date, "abcdeghknopqrstuvxyz")
   $wide_siz = StringSplit($hour & ":" & $min & $sec & $ampm & $date, "0123456789mwABCDEFGHIJKLMNOPQRSTUVWXYZ")
   $posrefill = ControlGetPos("classname=Shell_TrayWnd", "", "Button1")
   $resize = ($thin_siz[0]-1) * ($button1_pos[3] * 0.125) + ($med_siz[0]-1) * ($button1_pos[3] * 0.3125) + ($wide_siz[0]-1) * ($button1_pos[3] * 0.375) ;0.40625)
   MsgBox(0, "Debug - Characters", "Start Height: " & $button1_pos[3] & @LF & "Start Width: " & $button1_pos[2] & @LF & @LF & "Thin Char: " & $thin_siz[0]-1 & @LF & "Med Char: " & $med_siz[0]-1 & @LF & "Wide Char: " & $wide_siz[0]-1 & @LF & "Char Space: " & $resize & @LF & @LF &"Actual space taken: " & $posrefill[2])
EndFunc

Func Calldate()
   If @MON = 1 Then
      $mon = "Jan"
   ElseIf @MON = 2 Then
      $mon = "Feb"
   ElseIf @MON = 3 Then
      $mon = "Mar"
   ElseIf @MON = 4 Then
      $mon = "Apr"
   ElseIf @MON = 5 Then
      $mon = "May"
   ElseIf @MON = 6 Then
      $mon = "June"
   ElseIf @MON = 7 Then
      $mon = "July"
   ElseIf @MON = 8 Then
      $mon = "Aug"
   ElseIf @MON = 9 Then
      $mon = "Sept"
   ElseIf @MON = 10 Then
      $mon = "Oct"
   ElseIf @MON = 11 Then
      $mon = "Nov"
   ElseIf @MON = 12 Then
      $mon = "Dec"
   EndIf
   $date = " - " & $mon & " " & @MDAY
EndFunc

Func RefreshTray()
   ProcessWaitClose( "net.exe" )
   Sleep(250)
   Opt ("TrayIconHide", 0)
   Opt ("TrayIconHide", 1)
   Opt ("TrayIconHide", $HideTrayIcon)
   $Button1TXT = ControlGetText("classname=Shell_TrayWnd", "", "Button1") ;Start Button
   $Button1_pos = ControlGetPos( "classname=Shell_TrayWnd", "", "Button1") ;Start Button NEW replace $Button1_pos eventually
   $tray_pos = ControlGetPos("classname=Shell_TrayWnd", "", "ReBarWindow321") ;entire runningApp and quicklaunch area
EndFunc

Func ReadINI()
   GLOBAL $ShowSeconds = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "ShowSeconds", "4")
   GLOBAL $ClockType = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "ClockType", "1")
   GLOBAL $Showdate = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "ShowDate", "4")
   GLOBAL $HideTrayIcon = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "HideTrayIcon", "4")
   GLOBAL $BeginAtStartup = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "BeginAtStartup", "4")
   GLOBAL $DisableHotkeys = IniRead(@ScriptDir & "\StartClock.ini", "Settings", "DisableHotkeys", "4")
EndFunc

;//note: x, y, width, height//
Func MakeINI()
   GuiCreate("StartClock Configuration", 248, 155,(@DesktopWidth-248)/2, (@DesktopHeight-155)/2 , 0x12CA0000)
   GUISetState (@SW_SHOW)
   $about_menu = GUICtrlCreateMenuitem ("&About", -1)
   $Label_Options = GuiCtrlCreateLabel("Options:", 15, 5, 60, 20, 0x08000000)
   GLOBAL $Radio_12Hour = GuiCtrlCreateRadio("12 Hour Clock", 15, 23, 100, 20)
   GLOBAL $Radio_24Hour = GuiCtrlCreateRadio("24 Hour Clock", 15, 43, 90, 20)
   GLOBAL $Checkbox_ShowSeconds = GuiCtrlCreateCheckbox("Show Seconds", 15, 63, 90, 20)
   GLOBAL $Checkbox_Showdate = GuiCtrlCreateCheckbox("Show date", 15, 83, 70, 20)
   GLOBAL $Checkbox_Tray = GuiCtrlCreateCheckbox("Show Tray Icon", 140, 23, 100, 20)
   GLOBAL $Checkbox_Startup = GuiCtrlCreateCheckbox("Begin at Startup", 140, 43, 100, 20)
   GLOBAL $Checkbox_Hotkeys = GuiCtrlCreateCheckbox("Disable Hotkeys", 140, 63, 100, 20)
   GLOBAL $Exit1 = GuiCtrlCreateButton("Exit", 78, 110, 90, 20)
   
   If FileExists (@ScriptDir & "\StartClock.ini") Then
      ReadINI()
      If $ClockType = 4 Then
         GUICtrlSetState($Radio_24Hour, 1)
      Else
         GUICtrlSetState($Radio_12Hour, 1)
      EndIf
      GUICtrlSetState ( $Checkbox_ShowSeconds, $ShowSeconds )
      GUICtrlSetState ( $Checkbox_Showdate, $Showdate )
      GUICtrlSetState ( $Checkbox_Tray, $HideTrayIcon )
      GUICtrlSetState ( $Checkbox_Startup, $BeginAtStartup )
      GUICtrlSetState ( $Checkbox_Hotkeys, $DisableHotkeys )
   Else
      GUICtrlSetState ( $Checkbox_ShowSeconds, 4)
      GUICtrlSetState ( $Radio_12Hour, 1 )
      GUICtrlSetState ( $Checkbox_Showdate, 4)
      GUICtrlSetState ( $Checkbox_Tray, 4)
      GUICtrlSetState ( $Checkbox_Startup, 4)
      GUICtrlSetState ( $Checkbox_Hotkeys, 4)
      IniWrite ( "StartClock.ini", "Settings", "ShowSeconds", 4 )
      IniWrite ( "StartClock.ini", "Settings", "ClockType", 1 )
      IniWrite ( "StartClock.ini", "Settings", "Showdate", 4 )
      IniWrite ( "StartClock.ini", "Settings", "HideTrayIcon", 4 )
      IniWrite ( "StartClock.ini", "Settings", "BeginAtStartup", 4 )
      IniWrite ( "StartClock.ini", "Settings", "DisableHotkeys", 4 )
      ReadINI()
   EndIf
   
   GUICtrlSetOnEvent($about_menu, "AboutPressed")
   GUICtrlSetOnEvent($Radio_12Hour, "ButtonPressed")
   GUICtrlSetOnEvent($Radio_24Hour, "ButtonPressed")
   GUICtrlSetOnEvent($Checkbox_ShowSeconds, "ButtonPressed")
   GUICtrlSetOnEvent($Checkbox_Showdate, "ButtonPressed")
   GUICtrlSetOnEvent($Checkbox_Tray, "ButtonPressed")
   GUICtrlSetOnEvent($Checkbox_Startup, "ButtonPressed")
   GUICtrlSetOnEvent($Checkbox_Hotkeys, "ButtonPressed")
   GUICtrlSetOnEvent($GUI_EVENT_CLOSE, "ExitPressed")
   GuiSetOnEvent($GUI_EVENT_CLOSE, "ExitPressed")
EndFunc

Func AboutPressed()
   MsgBox(0, "About", "StartClock" & @CRLF & "Version 1.13" & @CRLF & @CRLF & "By chaos945@msn.com" & @CRLF & "Created with AutoIt v3")
EndFunc

Func ButtonPressed()
   IniWrite ( "StartClock.ini", "Settings", "ShowSeconds", GUICtrlRead( $Checkbox_ShowSeconds ) )
   IniWrite ( "StartClock.ini", "Settings", "ClockType", GUICtrlRead( $Radio_12Hour ) )
   IniWrite ( "StartClock.ini", "Settings", "Showdate", GUICtrlRead( $Checkbox_Showdate ) )
   IniWrite ( "StartClock.ini", "Settings", "HideTrayIcon", GUICtrlRead( $Checkbox_Tray ) )
   IniWrite ( "StartClock.ini", "Settings", "BeginAtStartup", GUICtrlRead( $Checkbox_Startup ) )
   IniWrite ( "StartClock.ini", "Settings", "DisableHotkeys", GUICtrlRead( $Checkbox_Hotkeys ) )
EndFunc

Func ExitPressed()
   GUIDelete()
EndFunc

Func Config()
   GUIDelete()
   MakeINI()
EndFunc

Func ExitScript()
  AdlibUnRegister()
   Opt ( "TrayIconHide", 0)
   Opt ("TrayIconHide", 1)
   Opt ("TrayIconHide", $HideTrayIcon)
   Exit
EndFunc

;//end functions//

Share this post


Link to post
Share on other sites

There was a post about changing the start button with autoit - you may have to do a search via the forums for it, but i thought there was more than one


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

Try this link http://www.autoitscript.com/forum/index.php?showtopic=37037&st=0&p=276662&hl=changing%20start%20button&fromsearch=1&#entry276662


All by me:

"Sometimes you have to go back to where you started, to get to where you want to go." 

"Everybody catches up with everyone, eventually" 

"As you teach others, you are really teaching yourself."

From my dad

"Do not worry about yesterday, as the only thing that you can control is tomorrow."

 

WindowsError.gif

WIKI | Tabs; | Arrays; | Strings | Wiki Arrays | How to ask a Question | Forum Search | FAQ | Tutorials | Original FAQ | ONLINE HELP | UDF's Wiki | AutoIt PDF

AutoIt Snippets | Multple Guis | Interrupting a running function | Another Send

StringRegExp | StringRegExp Help | RegEXTester | REG TUTOR | Reg TUTOT 2

AutoItSetOption | Macros | AutoIt Snippets | Wrapper | Autoit  Docs

SCITE | SciteJump | BB | MyTopics | Programming | UDFs | AutoIt 123 | UDFs Form | UDF

Learning to script | Tutorials | Documentation | IE.AU3 | Games? | FreeSoftware | Path_Online | Core Language

Programming Tips

Excel Changes

ControlHover.UDF

GDI_Plus

Draw_On_Screen

GDI Basics

GDI_More_Basics

GDI Rotate

GDI Graph

GDI  CheckExistingItems

GDI Trajectory

Replace $ghGDIPDll with $__g_hGDIPDll

DLL 101?

Array via Object

GDI Swimlane

GDI Plus French 101 Site

GDI Examples UEZ

GDI Basic Clock

GDI Detection

Ternary operator

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

I stand corrected. That does appear to work, but there are three drawbacks to this method:

1 - you are limited to what will fit in the 5 letter space

2 - your start button will flicker

3 - eats up a lot of processor time (between 20-25% for my system

Edited by willichan

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

I stand corrected. That does appear to work, but there are three drawbacks to this method:

1 - you are limited to what will fit in the 5 letter space

2 - your start button will flicker

3 - eats up a lot of processor time (between 20-25% for my system

Of method for changing the start button text? ;)

$hHandle = ControlGetHandle("[CLASS:Shell_TrayWnd]", "", "Button1")
WinSetTitle($hHandle, 0, "end")
; Win...

MsgBox(32 + 262144, "", "Changed?" & @CRLF & "Don't worry, it's only temporary.")
Edited by trancexx

♡♡♡

.

eMyvnE

Share this post


Link to post
Share on other sites

Of method for changing the start button text? ;)

Sorry. Seriously lacking sleep right now.

Ignore 2 and 3. They apply to the example script, not the method of changing the text.

Number 1 still applies.

Share this post


Link to post
Share on other sites

Without your space helmet, Dave, you're going to find that rather difficult.

Dave, this conversation can serve no purpose anymore. Goodbye.


♡♡♡

.

eMyvnE

Share this post


Link to post
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
Sign in to follow this  
Followers 0