# Can AutoIt Do this?

## Recommended Posts

hey guys

basically i thought of this

```Day You Were Born:

Jan 1               Sunday 1
Feb 4               Monday 2
March 4         Tuesday 4
April 0             Wednesday 5
May 2               Thursday 7
June 5              Friday 8
July 0              Saturday (No Decimal)
August 3
September 6
October 1
November 4
December 6

Examples

January 4th, 1995

Step 1 - 95
Step 2  95 x 5 = 475
Step 3  475/4 = 118.75
Step 4  118.75  118 (If there is a decimal, erase it so there is only an integer remaining)
Step 5  Add Month Code 118 + 1 = 119 + 4 (the Day) = 123
Step 6  Divide by 7 123/7 = 17.[u]5[/u]7142 (First Number to the right of the decimal is the day)```

I want it to ask you for the Date you were born

like February 25, 1993. And then it'll run through all those steps

and tell you the day you were born...

I have no clue how to do that though

cuz iono how to do step 5 lolol thats tuff

btw feb 25, 1993 is a thursday

##### Share on other sites

step 5, can you show the problem ?

[quote]Don't expect for a perfect life ... Expect a least troubles ones[/quote]Contact me : ass@kiss.toWhat I Have Done :Favorites Manager Mangage your favorite's folder, that's coolPC Waker For those who want to save stickersWebScipts Supporter For those who've just started with Web and WebScriptsTemporary Looker Simple but powerful to manage your Temporary folder, you know what you downloaded[UDF] _NumberFormat() Better performance on number display[UDF] _DirGet() What a folder contain [how many (hidden,normal,...) files], with one line of code[UDF] _IsPressEs() Just like _IsPress() but for a group of keys

##### Share on other sites

I have made a program that shows this if you search the forums for keywords like Birthday (Or Age) Calculator.

##### Share on other sites

CODE
\$daysofweek = StringSplit("Sun,Mon,,Tue,Wed,,Thu,Fri", ",")

\$Year=95

\$Month=01

\$Day=04

\$result=\$Year*5

ConsoleWrite(\$result & @CRLF)

\$result=Int(\$result/4)

ConsoleWrite(\$result & @CRLF)

\$result=(\$result+\$Month+\$Day)/7

ConsoleWrite(\$result & @CRLF)

\$point=StringInStr(\$result,".",2)+1

\$result=StringMid(\$result,\$point,1)

\$result=\$daysofweek[\$result]

ConsoleWrite(\$result & @CRLF)

MsgBox(0+64+4096,"You Born...","... in day " & \$result)

Look this code... you need to define me the saturday

##### Share on other sites

```#include <UnixTime.au3>

Global \$weekdays[7] = [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ]

\$ts = _TimeMakeStamp(0, 0, 0, 2, 11, 1982) ; _TimeMakeStamp( [ second [, minute [, hour [, day [, month [, year [, isDST ]]]]]]] )
MsgBox(0, '', 'This date is a: ' & \$weekdays[_StringFormatTime('%w', \$ts)])```

UnixTime.au3

##### Share on other sites

sry guys

that was a typo

i meant step 6

because i dont know how autoit can take the first number to the right of the decimal and then match it with the day of the week code...

##### Share on other sites

Straight out of the help file...

```#include <Date.au3>

; Week day number for a  given date
\$iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)
; Should be equal to @Wday
MsgBox(4096, "",  "Todays WeekdayNumber is: "  & \$iWeekDay)
MsgBox(4096, "", "Today is a :  " &  _DateDayOfWeek(\$iWeekDay))oÝ÷ Ù«­¢+Ø¥¹±Õ±ÐíÑ¹ÔÌÐì((ìIÑÉ¥ÙÑ¡±½¹¹µ(ÀÌØíÍ1½¹å9µô}Ñå=]¬ ]d¤((ìIÑÉ¥ÙÑ¡ÉÙ¥Ñ¹µ(ÀÌØíÍM¡½ÉÑå9µô}Ñå=]¬ ]d°Ä¤()5Í   ½à ÐÀäØ°ÅÕ½Ðíä½]¬ÅÕ½Ðì°ÅÕ½ÐíQ½ä¥ÌèÅÕ½ÐìµÀìÀÌØíÍ1½¹å9µµÀìÅÕ½Ðì ÅÕ½ÐìµÀìÀÌØíÍM¡½ÉÑå9µµÀìÅÕ½Ðì¤ÅÕ½Ðì¤```

##### Share on other sites

```#include <GuiConstants.au3>
#Include <GuiEdit.au3>
#include <date.au3>

opt("GUIOnEventMode", 1)

Demo()

;------------------------------------------------------------------------------------------------------
;-                                      C O N S O L E   D E M O
;------------------------------------------------------------------------------------------------------
Func Demo()
Global \$ConsoleID=0
\$ConsoleID = ConsoleWinCreate(-1, -1, 638, 326, "Age Demo...", "Starting demo..." & @CRLF, True)
ConsoleWinWrite(\$ConsoleID, "OK.. " & @CRLF, 30, 1)
\$answer2 = ConsoleWinInput(\$ConsoleID, "Please input your Month of Birth (example.. 3 = March) ?", 45, 1 )
ConsoleWinWrite(\$ConsoleID, "Good.. " & @CRLF, 60, 1)
ConsoleWinWrite(\$ConsoleID, "Great!.. Please wait while i calculate your age..." & @CRLF, 90, 1)
Sleep(1000)
ConsoleWinWrite(\$ConsoleID, " You have been alive " & _DateDiff( 'd',\$Vanswer1 &"/"& \$Vanswer2 &"/"& \$Vanswer3,_NowCalc()) & " days!" & @CRLF, 100, 1)
Sleep(5000)
ConsoleWinWrite(\$ConsoleID, "Example: Clearing console in five seconds...Thanks Valuater 8) ")
Sleep(5000)
ConsoleWinClear(\$ConsoleID)
ConsoleWinWrite(\$ConsoleID, "Demo finished! Exiting in five seconds...")
Sleep(5000)
Exit
EndFunc

;------------------------------------------------------------------------------------------------------
;-                                      C O N S O L E   L I B R A R Y
;------------------------------------------------------------------------------------------------------

;===============================================================================
; Description:      Create a Window console to display status text information with history
; Parameter(s):     \$x                - x position of the window
;                    \$y                - y position of the window
;                    \$width            - Optional - Window width
;                    \$height            - Optional - Window height
;                    \$Title            - Optional - Console Window title
;                    \$text            - Optional - Initial text to display.
;                    \$CreateProgress    - Optional - Create Progress (True/False)
;                    \$BgColor        - Optional - background color
;                    \$FgColor        - Optional - Foreground color
;                    \$Transparency    - Optional - Transparency (0=Invisible, 255=Visible)
; Requirement(s):   None
; Return Value(s):  The Console ID
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):            None
;===============================================================================
Func ConsoleWinCreate(\$x, \$y, \$width=638, \$height=126, \$Title="Console", \$Text="", \$CreateProgress=False, \$BgColor=0xFFFFFF, \$FgColor=0xFF0000, \$Transparency=255)
Dim \$Console[3]
\$Console[0] = GuiCreate(\$Title, \$width, \$height, \$x, \$y, BitOR(\$WS_OVERLAPPEDWINDOW, \$WS_CLIPSIBLINGS), \$WS_EX_TOOLWINDOW)
GUISetOnEvent(\$GUI_EVENT_CLOSE, "ConsoleWinExitEvent")
If \$CreateProgress Then \$height -= 20
\$Console[1] = GuiCtrlCreateEdit(\$Text & @CRLF, 0, 0, \$width-1, \$height-1, BitOR(\$ES_MULTILINE, \$ES_READONLY, \$ES_AUTOVSCROLL,\$WS_HSCROLL,\$WS_VSCROLL))
GUICtrlSetBkColor(\$Console[1],    \$BgColor)
GUICtrlSetColor(\$Console[1],    \$FgColor)
GUICtrlSetResizing(\$Console[1],    \$GUI_DOCKBORDERS)
GUICtrlSetFont(\$Console[1], 12, 400, 0, "Courrier New")
\$Console[2] =0
If \$CreateProgress Then \$Console[2] = GUICtrlCreateProgress(0, \$height+5, \$width-1, 12)
WinSetTrans(\$Console[0], "", \$Transparency)
GuiSetState()
Return \$Console
EndFunc

Func ConsoleWinExitEvent()
GUIDelete(@GUI_WinHandle)
Exit
EndFunc

;===============================================================================
; Description:      Write a message to the console
; Parameter(s):     \$ConsoleID        - Console ID returned by ConsoleWinCreate
;                    \$text            - Text to display.
;                    \$Progress        - Optional - Progress value (0-100)
;                    \$NoCRLF            - Optional - Don't add CRLF and the end of text
;                    \$Replace        - Optional - Replace last line
; Requirement(s):   ConsoleWinCreate called first
; Return Value(s):  None
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):            None
;===============================================================================
Func ConsoleWinWrite(\$ConsoleID, \$Text, \$Progress=-1, \$Speak=False, \$NoCRLF=False, \$Replace=False)
If \$Replace Then
\$pos = StringInStr(\$string, @CRLF, 0, -1)
If \$pos > 0 Then \$pos += 1
\$end = StringLen(\$string)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$end)
Else
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
EndIf
If \$NoCRLF = False Then \$Text = \$Text & @CRLF
GUICtrlSetData (\$ConsoleID[1], \$Text, 1)
If \$Speak Then ConsoleSpeak(\$Text)
If \$ConsoleID[2] >0 And \$Progress>=0 Then GUICtrlSetData(\$ConsoleID[2], \$Progress)
EndFunc

;===============================================================================
; Description:      Ask for the user to input something
; Parameter(s):     \$ConsoleID        - Console ID returned by ConsoleWinCreate
;                    \$text            - Text to display, the question.
;                    \$Progress        - Optional - Progress value (0-100)
; Requirement(s):   ConsoleWinCreate called first
; Return Value(s):  What user have typed.
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):            \$text could be an empty string
;===============================================================================
Func ConsoleWinInput(\$ConsoleID, \$Text, \$Progress=-1, \$Speak = 0)
WinSetOnTop(\$ConsoleID[0], "", 1)
WinActivate(\$ConsoleID[0])
\$pos = StringLen(\$string)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
GUICtrlSetData (\$ConsoleID[1], \$Text, 1)
GUICtrlSetStyle(\$ConsoleID[1], BitOR(\$ES_MULTILINE, \$ES_AUTOVSCROLL, \$WS_HSCROLL, \$WS_VSCROLL, \$ES_WANTRETURN))
If \$Speak Then ConsoleSpeak(\$Text)
If \$Text <> "" Then
; Wait for the user to input something
While 1
Sleep(100)
If StringRight(\$string, 2) = @CRLF Then ExitLoop
; Ensure that everything is typed at the end of edit control
\$pos = StringLen(\$String)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
WEnd
\$pos = StringInStr(\$string, \$Text, 0, -1)
If \$pos >0 Then \$pos += StringLen(\$Text)
Else
\$str = \$string
; Wait for the user to input something
While 1
Sleep(100)
If StringRight(\$string, 2) = @CRLF And \$string <> \$str Then ExitLoop
; Ensure that everything is typed at the end of edit control
\$pos = StringLen(\$String)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
WEnd
\$pos = StringInStr(StringLeft(\$string, StringLen(\$string)-2), @CRLF, 0, -1)
If \$pos > 0 Then \$pos += 1
EndIf
\$string = StringMid(\$string, \$pos)
\$string = StringLeft(\$string, StringLen(\$string)-2)
If \$ConsoleID[2] >0 And \$Progress>=0 Then GUICtrlSetData(\$ConsoleID[2], \$Progress)
Return \$string
WinSetOnTop(\$ConsoleID[0], "", 0)
EndFunc

;===============================================================================
; Description:      Clear the console
; Parameter(s):     \$ConsoleID    - The console ID
; Requirement(s):   None
; Return Value(s):  None
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):            None
;===============================================================================
Func ConsoleWinClear(\$ConsoleID)
GUICtrlSetData (\$ConsoleID[1], "")
If \$ConsoleID[2] >0 Then GUICtrlSetData(\$ConsoleID[2], 0)
EndFunc

;===============================================================================
; Description:      Save the content of the console to a file
; Parameter(s):     \$ConsoleID    - The console ID
;                    \$FileName    - The filename used to save
; Requirement(s):   None
; Return Value(s):  Write status, same as FileWrite
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):            None
;===============================================================================
Func ConsoleWinSave(\$ConsoleID, \$FileName)
Return FileWrite(\$FileName, \$string)
EndFunc

;===============================================================================
; Description:      Ask for the user to verify input something
; Parameter(s):     \$ConsoleID      - Console ID returned by ConsoleWinCreate
;                   \$VAns            - info to verify
;                    \$Text           - Text to display, the question.
;                   \$VNum            - Optional - to verify an Intreger
;                     \$VMin           - Optional - Minimum length of string
;                    \$VMax            - Otional - Maximum length of string
; Requirement(s):   ConsoleWinCreate available and ConsoleWinInput called first
; Return Value(s):  What user has typed.
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Co - Author        Valuater
; Note(s):          \$Text may not be an empty string
;===============================================================================
Func ConsoleWinVerify(\$ConsoleID, \$VAns, \$Text, \$VNum = False, \$VMin = 1, \$VMax = 1000)
While 1
ConsoleWinWrite(\$ConsoleID, "You have answered: " & \$VAns)
\$VLen = StringLen(\$VAns)
If \$VNum And Int(\$VAns) > 0 And \$VLen >= \$VMin And \$VLen <= \$VMax Then
If ConsoleWinInput(\$ConsoleID, 'Is this Correct? "Y" or "N" ') = "y" Then Return \$VAns
ElseIf Not \$VNum And \$VLen >= \$VMin And \$VLen <= \$VMax Then
If ConsoleWinInput(\$ConsoleID, 'Is this Correct? "Y" or "N" ') = "y" Then Return \$VAns
EndIf
\$VAns = ConsoleWinInput(\$ConsoleID, \$Text)
Sleep(10)
WEnd
EndFunc

Func ConsoleSpeak(\$S_text)
Local \$oi_speech = ObjCreate("SAPI.SpVoice")
If IsObj(\$oi_speech) Then \$oi_speech.Speak (\$S_text); use speech if wanted
\$oi_speech = ""
EndFunc```

8)

##### Share on other sites

Here's one that will do it alll for you.

```Opt ("GuiCoordMode", 2)
#Include <date.au3>

\$mData = ""
For \$I = 1 To 12
\$mData &= "|" & StringFormat("%02u", \$I)
Next
\$Gw = 500
\$Gh = 200
\$Comb_Style = BitOr(0x00200000, 0x0003)
GUICreate("What day was I born?", \$Gw, \$Gh)
GUICtrlCreateLabel("Enter the year..", 10,10, 80, 20)
\$Yr = GUICtrlCreateInput("", 0,-1, 35)
GUICtrlCreateLabel("Select the Month", 20, -1, 90)
\$mth = GUICtrlCreateCombo("", 0,-1, 60, -1, \$Comb_Style)
GUICtrlSetState(-1, 144)
GUICtrlCreateLabel("Select the Day", 20, -1, 90)
\$day = GUICtrlCreateCombo("", 0,-1, 40, -1, \$Comb_Style)
GUICtrlSetState(-1, 144)
GUICtrlSetData(\$Mth, \$mData)
GUISetCoord(20, 50)
\$Lbl_Data = GUICtrlCreateLabel("", -1, -1, \$Gw - 40, 90)
\$Btn_Clr = GUICtrlCreateButton("Reset", - (\$Gw/2), 20, 60, 30)
GUISetState()
While 1
Do
Sleep(2)
If GUIGetMsg() = -3 Then Exit
GUICtrlSetState(\$mth, 336)
EndIf
Switch GUIGetMsg()
Case - 3
Exit
Case \$mth
\$dData = ""
\$dData &= "|" & StringFormat("%02u", \$I)
Next
GUICtrlSetData(\$day, \$dData)
GUICtrlSetState(\$day, 336)
Case \$day
Local \$dY = GUICtrlRead(\$Yr), \$dM = GUICtrlRead(\$mth), \$dD = GUICtrlRead(\$day), \$oData = @CRLF & "You were born "
\$astData = _Date_GetAstroSign(\$dM, \$dD)
\$oData &= _DateDayofWeek(_DateToDayOfWeek (\$dY, \$dM, \$dD)) & ", " & _DateMonthOfYear(\$dM, 0) & " " & \$dD & ", " & \$dY; & @CRLF
If _DateIsLeapYear(\$dY) Then \$oData &= "  (Leap Year)"
\$oData &= @CRLF & @CRLF & "Your astrological sign is " & \$astData[0] & @CRLF & "Your element is " & \$astData[1]
GUICtrlSetData(\$Lbl_Data, \$oData)
GUICtrlSetState(\$Btn_Clr, 256)
Case \$Btn_Clr
GUICtrlSetState(\$mth, 144)
GUICtrlSetState(\$day, 144)
GUICtrlSetState(\$Yr, 256)
GUICtrlSetData(\$Yr, "")
GUICtrlSetData(\$day,"")
GUICtrlSetData(\$Mth, \$mData, "")
GUICtrlSetData(\$Lbl_Data, "")
EndSwitch
Wend

Func _Date_GetAstroSign(\$iMth, \$iDay);;Return Astrological Data
local \$aData[2][13] = [ ["","Capricorn", "Aquarius", "Pisces", "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius"] _
, ["","Earth", "Air", "Water", "Fire", "Earth", "Air", "Water", "Fire", "Earth", "Air", "Water", "Fire"]]
\$rSign = \$iMth
Switch \$iMth
Case 1, 3; Capricorn
If \$iDay > 19 Then \$rSign += 1
Case 2; Aquarius
If \$iDay > 17 Then \$rSign += 1
Case 4, 5, 11; Aries
If \$iDay > 20 Then \$rSign += 1
Case 6;Gemini
If \$iDay > 22 Then \$rSign += 1
Case 12; Sagittarius
If \$iDay > 21 Then \$rSign = 1
Case Else
If \$iDay > 21 Then \$rSign += 1
EndSwitch
Return \$Rtn
EndFunc  ;<==> _Date_GetAstroSign(\$iMth, \$iDay)```

George

Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.

Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.***

The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number.

Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else.

"Old age and treachery will always overcome youth and skill!"

##### Share on other sites

god damn how do you know all this stuff

##### Share on other sites

;------------------------------------------------------------------------------------------------------

;- C O N S O L E D E M O

;------------------------------------------------------------------------------------------------------

I like your console demo Valuater, but not so keen that when you input you can delete back too far, so I added a bit to stop that. You might not like the way I did it but I think it works.

```#include <GuiConstants.au3>
#include <GuiEdit.au3>
#include <date.au3>

Opt("GUIOnEventMode", 1)

Demo()

;------------------------------------------------------------------------------------------------------
;-                                    C O N S O L E   D E M O
;------------------------------------------------------------------------------------------------------
Func Demo()
Global \$ConsoleID = 0, \$endstop = 0
\$ConsoleID = ConsoleWinCreate(-1, -1, 638, 326, "Age Demo...", "Starting demo..." & @CRLF, True)
GUIRegisterMsg(\$WM_COMMAND, "StopOverDelete")
ConsoleWinWrite(\$ConsoleID, "OK.. " & @CRLF, 30, 1)
ConsoleWinWrite(\$ConsoleID, "Good.. " & @CRLF, 60, 1)
ConsoleWinWrite(\$ConsoleID, "Great!.. Please wait while i calculate your age..." & @CRLF, 90, 1)
Sleep(1000)
ConsoleWinWrite(\$ConsoleID, " You have been alive " & _DateDiff('d', \$Vanswer1 & "/" & \$Vanswer2 & "/" & \$Vanswer3, _NowCalc()) & " days!" & @CRLF, 100, 1)
Sleep(5000)
ConsoleWinWrite(\$ConsoleID, "Example: Clearing console in five seconds...Thanks Valuater 8) ")
Sleep(5000)
ConsoleWinClear(\$ConsoleID)
ConsoleWinWrite(\$ConsoleID, "Demo finished! Exiting in five seconds...")
Sleep(5000)
Exit
EndFunc ;==>Demo

;------------------------------------------------------------------------------------------------------
;-                                    C O N S O L E   L I B R A R Y
;------------------------------------------------------------------------------------------------------

;===============================================================================
; Description:    Create a Window console to display status text information with history
; Parameter(s):  \$x             - x position of the window
;                   \$y              - y position of the window
;                   \$width          - Optional - Window width
;                   \$height         - Optional - Window height
;                   \$Title          - Optional - Console Window title
;                   \$text           - Optional - Initial text to display.
;                   \$CreateProgress - Optional - Create Progress (True/False)
;                   \$BgColor        - Optional - background color
;                   \$FgColor        - Optional - Foreground color
;                   \$Transparency   - Optional - Transparency (0=Invisible, 255=Visible)
; Requirement(s):   None
; Return Value(s):  The Console ID
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):          None
;===============================================================================
Func ConsoleWinCreate(\$x, \$y, \$width = 638, \$height = 126, \$Title = "Console", \$Text = "", \$CreateProgress = False, \$BgColor = 0xFFFFFF, \$FgColor = 0xFF0000, \$Transparency = 255)
Dim \$Console[3]
\$Console[0] = GUICreate(\$Title, \$width, \$height, \$x, \$y, BitOR(\$WS_OVERLAPPEDWINDOW, \$WS_CLIPSIBLINGS), \$WS_EX_TOOLWINDOW)
GUISetOnEvent(\$GUI_EVENT_CLOSE, "ConsoleWinExitEvent")
If \$CreateProgress Then \$height -= 20
\$Console[1] = GUICtrlCreateEdit(\$Text & @CRLF, 0, 0, \$width - 1, \$height - 1, BitOR(\$ES_MULTILINE, \$ES_READONLY, \$ES_AUTOVSCROLL, \$WS_HSCROLL, \$WS_VSCROLL))
GUICtrlSetBkColor(\$Console[1], \$BgColor)
GUICtrlSetColor(\$Console[1], \$FgColor)
GUICtrlSetResizing(\$Console[1], \$GUI_DOCKBORDERS)
GUICtrlSetFont(\$Console[1], 12, 400, 0, "Courrier New")
\$Console[2] = 0
If \$CreateProgress Then \$Console[2] = GUICtrlCreateProgress(0, \$height + 5, \$width - 1, 12)
WinSetTrans(\$Console[0], "", \$Transparency)
GUISetState()
Return \$Console
EndFunc ;==>ConsoleWinCreate

Func ConsoleWinExitEvent()
GUIDelete(@GUI_WinHandle)
Exit
EndFunc ;==>ConsoleWinExitEvent

;===============================================================================
; Description:    Write a message to the console
; Parameter(s):  \$ConsoleID     - Console ID returned by ConsoleWinCreate
;                   \$text           - Text to display.
;                   \$Progress       - Optional - Progress value (0-100)
;                   \$NoCRLF         - Optional - Don't add CRLF and the end of text
;                   \$Replace        - Optional - Replace last line
; Requirement(s):   ConsoleWinCreate called first
; Return Value(s):  None
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):          None
;===============================================================================
Func ConsoleWinWrite(\$ConsoleID, \$Text, \$Progress = -1, \$Speak = False, \$NoCRLF = False, \$Replace = False)
If \$Replace Then
\$pos = StringInStr(\$string, @CRLF, 0, -1)
If \$pos > 0 Then \$pos += 1
\$end = StringLen(\$string)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$end)
Else
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
EndIf
If \$NoCRLF = False Then \$Text = \$Text & @CRLF
GUICtrlSetData(\$ConsoleID[1], \$Text, 1)
If \$Speak Then ConsoleSpeak(\$Text)
If \$ConsoleID[2] > 0 And \$Progress >= 0 Then GUICtrlSetData(\$ConsoleID[2], \$Progress)
EndFunc ;==>ConsoleWinWrite

;===============================================================================
; Description:    Ask for the user to input something
; Parameter(s):  \$ConsoleID     - Console ID returned by ConsoleWinCreate
;                   \$text           - Text to display, the question.
;                   \$Progress       - Optional - Progress value (0-100)
; Requirement(s):   ConsoleWinCreate called first
; Return Value(s):  What user have typed.
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):          \$text could be an empty string
;===============================================================================
Func ConsoleWinInput(\$ConsoleID, \$Text, \$Progress = -1, \$Speak = 0)
WinSetOnTop(\$ConsoleID[0], "", 1)
WinActivate(\$ConsoleID[0])
\$pos = StringLen(\$string)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
GUICtrlSetData(\$ConsoleID[1], \$Text, 1)
GUICtrlSetStyle(\$ConsoleID[1], BitOR(\$ES_MULTILINE, \$ES_AUTOVSCROLL, \$WS_HSCROLL, \$WS_VSCROLL, \$ES_WANTRETURN))
If \$Speak Then ConsoleSpeak(\$Text)
If \$Text <> "" Then
; Wait for the user to input something
While 1
Sleep(100)
If StringRight(\$string, 2) = @CRLF Then ExitLoop
; Ensure that everything is typed at the end of edit control
\$pos = StringLen(\$string)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
WEnd
\$pos = StringInStr(\$string, \$Text, 0, -1)
If \$pos > 0 Then \$pos += StringLen(\$Text)
Else
\$str = \$string
; Wait for the user to input something
While 1
Sleep(100)
If StringRight(\$string, 2) = @CRLF And \$string <> \$str Then ExitLoop
; Ensure that everything is typed at the end of edit control
\$pos = StringLen(\$string)
_GUICtrlEdit_SetSel(\$ConsoleID[1], \$pos, \$pos)
WEnd
\$pos = StringInStr(StringLeft(\$string, StringLen(\$string) - 2), @CRLF, 0, -1)
If \$pos > 0 Then \$pos += 1
EndIf
\$string = StringMid(\$string, \$pos)
\$string = StringLeft(\$string, StringLen(\$string) - 2)
GUICtrlSetStyle(\$ConsoleID[1], BitOR(\$ES_MULTILINE, \$ES_READONLY, \$ES_AUTOVSCROLL, \$WS_HSCROLL, \$WS_VSCROLL))
If \$ConsoleID[2] > 0 And \$Progress >= 0 Then GUICtrlSetData(\$ConsoleID[2], \$Progress)

Return \$string
WinSetOnTop(\$ConsoleID[0], "", 0)
EndFunc ;==>ConsoleWinInput

;===============================================================================
; Description:    Clear the console
; Parameter(s):  \$ConsoleID - The console ID
; Requirement(s):   None
; Return Value(s):  None
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):          None
;===============================================================================
Func ConsoleWinClear(\$ConsoleID)
GUICtrlSetData(\$ConsoleID[1], "")
\$endstop = ''
If \$ConsoleID[2] > 0 Then GUICtrlSetData(\$ConsoleID[2], 0)
EndFunc ;==>ConsoleWinClear

;===============================================================================
; Description:    Save the content of the console to a file
; Parameter(s):  \$ConsoleID - The console ID
;                   \$FileName   - The filename used to save
; Requirement(s):   None
; Return Value(s):  Write status, same as FileWrite
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Note(s):          None
;===============================================================================
Func ConsoleWinSave(\$ConsoleID, \$FileName)
Return FileWrite(\$FileName, \$string)
EndFunc ;==>ConsoleWinSave

;===============================================================================
; Description:    Ask for the user to verify input something
; Parameter(s):  \$ConsoleID   - Console ID returned by ConsoleWinCreate
;                  \$VAns            - info to verify
;                   \$Text          - Text to display, the question.
;                  \$VNum            - Optional - to verify an Intreger
;                    \$VMin         - Optional - Minimum length of string
;                   \$VMax           - Otional - Maximum length of string
; Requirement(s):   ConsoleWinCreate available and ConsoleWinInput called first
; Return Value(s):  What user has typed.
; Author(s):        Jerome DERN  (jdern "at" free "dot" fr)
; Co - Author       Valuater
; Note(s):        \$Text may not be an empty string
;===============================================================================
Func ConsoleWinVerify(\$ConsoleID, \$VAns, \$Text, \$VNum = False, \$VMin = 1, \$VMax = 1000)
While 1
ConsoleWinWrite(\$ConsoleID, "You have answered: " & \$VAns)
\$VLen = StringLen(\$VAns)
If \$VNum And Int(\$VAns) > 0 And \$VLen >= \$VMin And \$VLen <= \$VMax Then
If ConsoleWinInput(\$ConsoleID, 'Is this Correct? "Y" or "N" ') = "y" Then Return \$VAns
ElseIf Not \$VNum And \$VLen >= \$VMin And \$VLen <= \$VMax Then
If ConsoleWinInput(\$ConsoleID, 'Is this Correct? "Y" or "N" ') = "y" Then Return \$VAns
EndIf
\$VAns = ConsoleWinInput(\$ConsoleID, \$Text)
Sleep(10)
WEnd
EndFunc ;==>ConsoleWinVerify

Func ConsoleSpeak(\$S_text)
Local \$oi_speech = ObjCreate("SAPI.SpVoice")
If IsObj(\$oi_speech) Then \$oi_speech.Speak(\$S_text); use speech if wanted
\$oi_speech = ""
EndFunc ;==>ConsoleSpeak

Func StopOverDelete(\$hWnd, \$iMsg, \$iwParam, \$ilParam)
Local \$hWndFrom, \$iIDFrom, \$iCode, \$hWndEdit
If Not IsHWnd(\$ConsoleID[1]) Then \$hWndEdit = GUICtrlGetHandle(\$ConsoleID[1])
\$hWndFrom = \$ilParam
\$iIDFrom = _WinAPI_LoWord(\$iwParam)
\$iCode = _WinAPI_HiWord(\$iwParam)
Switch \$hWndFrom
Case \$ConsoleID[1], \$hWndEdit
Switch \$iCode

Case \$EN_CHANGE
If StringLen(\$Text) < StringLen(\$endstop) Then
GUICtrlSetData(\$ConsoleID[1], \$endstop)
EndIf
; no return value
EndSwitch
EndSwitch
Return \$GUI_RUNDEFMSG
EndFunc ;==>StopOverDelete```
Edited by martin

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.

##### Share on other sites

god damn how do you know all this stuff

The functionality for most is already in AutoIt, minly in date.au3. The only function I had to write was the one to get the astrological sign and that was fairly easy to do by looking everything up via Google. I now have the formula for calculating biorhythms so that will be next along with a re-design of the GUI. Note that I have been informed this script does not run on older versions of AutoIt but I'm not sure why yet. I'll look at that sometime in the future.

George

Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.

Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.***

The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number.

Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else.

"Old age and treachery will always overcome youth and skill!"

## Create an account

Register a new account