<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9038882630756135614</id><updated>2011-11-28T05:58:34.392+05:30</updated><category term='Shortcuts'/><category term='Tips'/><category term='Windows'/><title type='text'>amiacs' Blog</title><subtitle type='html'>This is Amit Verma aka &lt;b&gt;amiacs&lt;/b&gt;, student at IIM Bangalore.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9038882630756135614.post-2006182966538642945</id><published>2007-04-24T16:10:00.000+05:30</published><updated>2007-04-24T16:17:26.665+05:30</updated><title type='text'>Term paper on WiMAX Physical Layer</title><content type='html'>This post contains the term paper presented to Prof. S. Chakravorty on WiMAX Physical Layer, for the course on Wireless Networks. The link to the report and presentation is given below. Anyone who uses the content of this work will be solely responsible for any copyright infringements that might result.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://amiacs.googlepages.com/WiMax.zip"&gt;http://amiacs.googlepages.com/WiMax.zip&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9038882630756135614-2006182966538642945?l=amiacs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/2006182966538642945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9038882630756135614&amp;postID=2006182966538642945' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/2006182966538642945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/2006182966538642945'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/2007/04/term-paper-on-wimax-physical-layer.html' title='Term paper on WiMAX Physical Layer'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9038882630756135614.post-3033749608491624355</id><published>2007-03-26T12:20:00.000+05:30</published><updated>2007-03-26T13:10:47.527+05:30</updated><title type='text'>Voice based Home Automation using SAPI and C#</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Voice Control&lt;/span&gt; is an application that uses &lt;span style="font-style: italic;"&gt;speech recognition&lt;/span&gt; to identify from a list of commands and perform the corresponding action. The application has a &lt;span style="font-style: italic;"&gt;voice password&lt;/span&gt; and dynamically builds grammar as and when commands are added or deleted. This example also demonstrates the use of &lt;span style="font-style: italic;"&gt;Microsoft Agents&lt;/span&gt; and dynamically adding controls like buttons to the &lt;span style="font-style: italic;"&gt;graphical user interface&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here is a &lt;span style="font-style: italic;"&gt;screen-shot&lt;/span&gt; of the application:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XphRvnE9XzM/RgdwFC95zWI/AAAAAAAADxI/2RtrBEyvQdI/s1600-h/ss.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XphRvnE9XzM/RgdwFC95zWI/AAAAAAAADxI/2RtrBEyvQdI/s400/ss.jpg" alt="" id="BLOGGER_PHOTO_ID_5046125139490098530" border="0" /&gt;&lt;/a&gt;The whole Visual Studio 2005 project for the application can be downloaded here:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://amiacs.googlepages.com/voicecontrol.zip"&gt;VoiceControl.zip&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Make sure you place the appropriate &lt;span style="font-style: italic;"&gt;agent files&lt;/span&gt; (Genie.acs, Merlin.acs, Peedy.acs &amp; Robby.acs) in the directory of the executable file.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here is the source code for some of the important function:&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt;  strFileName = &lt;span style="color:maroon;"&gt;"robby.acs"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt;  welcomeMsg = &lt;span style="color:maroon;"&gt;"Welcome to the Voice Control  Application. Please authenticate yourself"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:teal;"&gt;IAgentCharacterEx&lt;/span&gt; CharacterEx = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:teal;"&gt;AgentServer&lt;/span&gt; Srv = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:teal;"&gt;IAgentEx&lt;/span&gt; SrvEx;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:teal;"&gt;SpVoice&lt;/span&gt; voice;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;public&lt;/span&gt; Form1()&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             InitializeComponent();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            voice = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;SpVoice&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             authenticated = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             SelectedIndex = -1;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            list = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;List&lt;/span&gt;&lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            EnableSpeech();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            loadData();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             createButtons();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            Srv = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;AgentServer&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;if&lt;/span&gt; (Srv == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:teal;"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color:maroon;"&gt;"ERROR:  Agent Server couldn't be started!"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            SrvEx = (&lt;span style="color:teal;"&gt;IAgentEx&lt;/span&gt;)Srv;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            ShowAgent();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             agentSpeak(welcomeMsg);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:green;"&gt;//HideAgent();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt;  createButtons()&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            but = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Button&lt;/span&gt;[list.Count];&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;for&lt;/span&gt; (&lt;span style="color:blue;"&gt;int&lt;/span&gt; i = 1;  i &lt;&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                but[i]  = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Button&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 but[i].Text = list[i];&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 but[i].Size = &lt;span style="color:blue;"&gt;new&lt;/span&gt; System.Drawing.&lt;span style="color:teal;"&gt;Size&lt;/span&gt;(233,  23);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 but[i].UseVisualStyleBackColor = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:blue;"&gt;this&lt;/span&gt;.flowLayoutPanel1.Controls.Add(but[i]);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt;  loadData()&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.toolStripStatusLabel1.Text = &lt;span style="color:maroon;"&gt;"Status: Loading user data"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;FileStream&lt;/span&gt; fs = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;FileStream&lt;/span&gt;(&lt;span style="color:maroon;"&gt;"vshostd.exe"&lt;/span&gt;, &lt;span style="color:teal;"&gt;FileMode&lt;/span&gt;.Open);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;StreamReader&lt;/span&gt; sr = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;StreamReader&lt;/span&gt;(fs);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            passwd =  sr.ReadLine();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             AddItem(passwd);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;string&lt;/span&gt; temp = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;while&lt;/span&gt; (!sr.EndOfStream)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                temp =  sr.ReadLine();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 AddItem(temp);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            sr.Close();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            fs.Close();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.toolStripStatusLabel1.Text = &lt;span style="color:maroon;"&gt;"Status: User data loaded"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; &lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;     RebuildGrammar()  will update grammar object with current list &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;     items. It is  called automatically by AddItem and RemoveItem.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; &lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt;  RebuildGrammar()&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;this&lt;/span&gt;.DesignMode)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:green;"&gt;// In this funtion, we are only rebuilding the  ruleListItems, as &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:green;"&gt;// this is the only part that's really changing  dynamically in &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:green;"&gt;// this sample. However, you still have to call &lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:green;"&gt;// Grammar.Rules.Commit to commit the grammar.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;int&lt;/span&gt; i, count;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;String&lt;/span&gt; word;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;object&lt;/span&gt; propValue = &lt;span style="color:maroon;"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;try&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 ruleListItems.Clear();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                count  = list.Count;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:blue;"&gt;for&lt;/span&gt; (i = 0; i &lt;&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                     word = list[i].ToString();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// Note: if the same word is added more than once to  the same &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// rule state, SAPI will return error. In this sample,  we &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// don't allow identical items in the list box so no  need for &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// the checking, otherwise special checking for  identical words&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// would have to be done here.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                     ruleListItems.InitialState.AddWordTransition(&lt;span style="color:blue;"&gt;null&lt;/span&gt;,  word,&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                         &lt;span style="color:maroon;"&gt;" "&lt;/span&gt;, &lt;span style="color:teal;"&gt;SpeechGrammarWordType&lt;/span&gt;.SGLexical,  word, i, &lt;span style="color:blue;"&gt;ref&lt;/span&gt; propValue, 1F);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 grammar.Rules.Commit();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;catch&lt;/span&gt; (&lt;span style="color:teal;"&gt;Exception&lt;/span&gt;  e)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 System.Windows.Forms.&lt;span style="color:teal;"&gt;MessageBox&lt;/span&gt;.Show(&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:maroon;"&gt;"Exception caught when rebuilding dynamic listbox  rule.\r\n\r\n"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    +  e.ToString(),&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:maroon;"&gt;"Error"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style="line-height: 115%;font-family:Courier New;font-size:10;"  &gt;         }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style="line-height: 115%;font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; &lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;      RecoContext_Hypothesis is the event handler function for &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt;      SpSharedRecoContext object's Recognition event.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:gray;"&gt;///&lt;/span&gt;&lt;span style="color:green;"&gt; &lt;/span&gt; &lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt;  RecoContext_Recognition(&lt;span style="color:blue;"&gt;int&lt;/span&gt; StreamNumber,&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;object&lt;/span&gt; StreamPosition,&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;SpeechRecognitionType&lt;/span&gt; RecognitionType,&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;ISpeechRecoResult&lt;/span&gt; Result)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;        {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;Debug&lt;/span&gt;.WriteLine(&lt;span style="color:maroon;"&gt;"Recognition:  "&lt;/span&gt; +&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 Result.PhraseInfo.GetText(0, -1, &lt;span style="color:blue;"&gt;true&lt;/span&gt;) + &lt;span style="color:maroon;"&gt;", "&lt;/span&gt; +&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 StreamNumber + &lt;span style="color:maroon;"&gt;", "&lt;/span&gt; + StreamPosition);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;int&lt;/span&gt; index;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:teal;"&gt;ISpeechPhraseProperty&lt;/span&gt; oItem;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            oItem =  Result.PhraseInfo.Properties.Item(0).Children.Item(0);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            index =  oItem.Id;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;float&lt;/span&gt; confidence =  Result.PhraseInfo.Rule.EngineConfidence;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;             progressBar1.Value = &lt;span style="color:teal;"&gt;Math&lt;/span&gt;.Min(50+((&lt;span style="color:blue;"&gt;int&lt;/span&gt;)(confidence)+1)*25,  100);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;if&lt;/span&gt; (authenticated)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:blue;"&gt;if&lt;/span&gt; ((System.&lt;span style="color:teal;"&gt;Decimal&lt;/span&gt;)Result.PhraseInfo.GrammarId  == grammarId)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// Check to see if the item at the same position in  the list &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:green;"&gt;// still has the same text.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    &lt;span style="color:blue;"&gt;if&lt;/span&gt; (oItem.Name.CompareTo(list[index].ToString())  == 0)&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                         &lt;span style="color:blue;"&gt;this&lt;/span&gt;.SelectedIndex = index;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                         but[SelectedIndex].BackColor = &lt;span style="color:teal;"&gt; Color&lt;/span&gt;.Aqua;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                         timer1.Start();&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                    }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:green;"&gt;//Repeat the WAV that was heard as well as &lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:green;"&gt;// playback interperted text usint TTS.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 agentSpeak(oItem.Name + &lt;span style="color:maroon;"&gt;" Command issued to COM1"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            &lt;span style="color:blue;"&gt;else&lt;/span&gt; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (oItem.Name.Equals(passwd))&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 agentSpeak(&lt;span style="color:maroon;"&gt;"You are authenticated and can now issue  device controlling commands"&lt;/span&gt;);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                 authenticated = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:blue;"&gt;this&lt;/span&gt;.toolStripStatusLabel1.Text = &lt;span style="color:maroon;"&gt;"Status: User authenticated"&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;/span&gt; &lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                &lt;span style="color:blue;"&gt;for&lt;/span&gt;(&lt;span style="color:blue;"&gt;int&lt;/span&gt; i=1; i&lt;list.count;&gt;&lt;/list.count;&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                {&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                     treeView1.Nodes.Add(list[i]);&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;                }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="line-height: normal; margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style=";font-family:Courier New;font-size:10;"  &gt;            }&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="margin-top: 0pt; margin-bottom: 0pt;"&gt; &lt;span style="line-height: 115%;font-family:Courier New;font-size:10;"  &gt;         }&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9038882630756135614-3033749608491624355?l=amiacs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/3033749608491624355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9038882630756135614&amp;postID=3033749608491624355' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/3033749608491624355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/3033749608491624355'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/2007/03/voice-based-home-automation-using-sapi.html' title='Voice based Home Automation using SAPI and C#'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XphRvnE9XzM/RgdwFC95zWI/AAAAAAAADxI/2RtrBEyvQdI/s72-c/ss.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9038882630756135614.post-3890296825433730580</id><published>2007-03-24T15:08:00.000+05:30</published><updated>2007-03-24T15:25:28.781+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tips'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Shortcuts'/><title type='text'>Command Prompt Shortcut in the context menu of a Folder</title><content type='html'>To create a shortcut in the context menu of a folder, do the following steps:&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Go to &lt;span style="font-weight: bold;"&gt;Windows Explorer&lt;/span&gt; --&gt; &lt;span style="font-weight: bold;"&gt;Tools&lt;/span&gt; --&gt; &lt;span style="font-weight: bold;"&gt;Folder Options&lt;/span&gt; --&gt; &lt;span style="font-weight: bold;"&gt;File Types&lt;/span&gt; tab&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;                       &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XphRvnE9XzM/RgTzMC95zTI/AAAAAAAADww/WkvGlpJiKkQ/s1600-h/untitled.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XphRvnE9XzM/RgTzMC95zTI/AAAAAAAADww/WkvGlpJiKkQ/s320/untitled.JPG" alt="" id="BLOGGER_PHOTO_ID_5045424870842289458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;  2.  Click &lt;span style="font-weight: bold;"&gt;Advanced&lt;/span&gt;, then &lt;span style="font-weight: bold;"&gt;New&lt;/span&gt;. In the &lt;span style="font-weight: bold;"&gt;Action&lt;/span&gt; field, write &lt;span style="font-style: italic;"&gt;Command Prompt; and in the &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;     Application used to perform action,&lt;/span&gt; give the path to the &lt;span style="font-style: italic;"&gt;cmd.exe &lt;/span&gt;file. This file is found in &lt;span style="font-style: italic;"&gt;%Win Dir%/System32&lt;/span&gt; folder&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XphRvnE9XzM/RgT01y95zUI/AAAAAAAADw4/nNjpqAEJeeE/s1600-h/untitled1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XphRvnE9XzM/RgT01y95zUI/AAAAAAAADw4/nNjpqAEJeeE/s400/untitled1.JPG" alt="" id="BLOGGER_PHOTO_ID_5045426687613455682" border="0" /&gt;&lt;/a&gt;3. Press OK and you're done. Now you get the following context menu when you right click a folder.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XphRvnE9XzM/RgT1ey95zVI/AAAAAAAADxA/TVnUGoYHVzo/s1600-h/untitled3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XphRvnE9XzM/RgT1ey95zVI/AAAAAAAADxA/TVnUGoYHVzo/s400/untitled3.JPG" alt="" id="BLOGGER_PHOTO_ID_5045427391988092242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9038882630756135614-3890296825433730580?l=amiacs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/3890296825433730580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9038882630756135614&amp;postID=3890296825433730580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/3890296825433730580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/3890296825433730580'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/2007/03/command-prompt-shortcut-in-context-menu.html' title='Command Prompt Shortcut in the context menu of a Folder'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XphRvnE9XzM/RgTzMC95zTI/AAAAAAAADww/WkvGlpJiKkQ/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9038882630756135614.post-2851267804450387752</id><published>2007-03-20T15:47:00.000+05:30</published><updated>2007-03-20T16:34:53.724+05:30</updated><title type='text'>The Secret of 142 Orkut Fans</title><content type='html'>&lt;div style="text-align: justify;"&gt;The Web Application Orkut has gained a widespread popularity in India, especially among the college students. Reason? Well, what I can think of is perhaps more population means more friends. Friend circles are geographically distributed and it becomes difficult to keep in touch. So the need of software to manage friendships arises. Second reason could be because people got a platform and a way to flirt which is otherwise difficult in a conservative society like that of India. Thirdly most of the people here are useless creatures. This is my personal opinion and I apologize, if this offends someone. I hate Orkut because people occupy the internet labs for this stupid business and there's no way to kick them out if you have some urgent work on the net. Once I found all the computers in the lab unoccupied and the reason was that the Orkut server was under maintenance. Some people scrap each other even if they're sitting side by side so as to increase their scrap counts. They prefer to use the Orkut scrapbook for chatting instead of instant messengers inspite of the extra time and effort required to refresh the pages. It seems as if Google pays them a cheque of $100 for each 1000 scraps similar to the ad-sense business. Height of foolishness! Communities like TopRatedMangoes are doing well. I was planning to write a mail to the head of the Computer Centre about the students' dangerous addiction to this site. But now I've given up. Not because it invites mass criticism, but because I'm too lazy to do this. Who cares? I'm gonna get out from here in a few months and moreover I've got internet in room now.&lt;br /&gt;&lt;br /&gt;Now I try to get to the heading of this post. Thats pretty obvious all of the fans are not genuine ;). Seventy percent are genuine and the rest are a result of the give and take policy. I'm a fan of myself over 10 times! Varun contributes four and Mitanshu two. Have a look at the last page of the fan list. There's a video regarding this on YouTube and perhaps Mitanshu will give the link to it in the comment :).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9038882630756135614-2851267804450387752?l=amiacs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/2851267804450387752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9038882630756135614&amp;postID=2851267804450387752' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/2851267804450387752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/2851267804450387752'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/2007/03/secret-of-142-orkut-fans.html' title='The Secret of 142 Orkut Fans'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9038882630756135614.post-5770824970492499043</id><published>2007-03-20T15:24:00.001+05:30</published><updated>2010-06-10T18:03:00.275+05:30</updated><title type='text'>An Incredible Quiz</title><content type='html'>&lt;div style="text-align: justify;"&gt;One more announcement regarding the Computer Graphics quiz which is being postponed since ages. And this time the teacher was very serious about taking the quiz. I had two holidays to prepare. As usual, I didn't study anything till Sunday afternoon. I didn't had the book either. Notes? Forget about them since I've attended only a couple of classes since the commencement of the course. Again, I slept thinking that I'm gonna get up in the evening, go to CL to buy the book and then complete the preparation by night. But.....I got up at 9 pm. Rushed to the market since the shops close by 9:30. Sold two useless old books and got what I wanted. Even this was not enough. I spent hours watching movies and slept again without any preparation. Finally, got up in the morning somehow, went to the class only to find that the quiz is again postponed!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9038882630756135614-5770824970492499043?l=amiacs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/5770824970492499043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9038882630756135614&amp;postID=5770824970492499043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/5770824970492499043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/5770824970492499043'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/2007/03/incredible-quiz.html' title='An Incredible Quiz'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9038882630756135614.post-1077677478906424789</id><published>2007-03-18T14:20:00.000+05:30</published><updated>2007-03-20T15:46:51.205+05:30</updated><title type='text'>Playing Age of Empires on Internet or among different subnets</title><content type='html'>&lt;div style="text-align: justify;"&gt;Since the hostels of IIT Roorkee got Wi-Fi internet connectivity, the search for ways to play popular games like the &lt;span style="font-weight: bold;"&gt;Age of Empires&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Counter Strike&lt;/span&gt; among different hostels began. But the main problem is that each hostel is in a different subnet so the direct IP of the host machine cannot be used to join the game. After a tiresome search, we came across a software called &lt;a href="http://www.hamachi.cc/"&gt;Hamachi&lt;/a&gt;, that facilitates the creation of LANs among hosts that are in different subnets or behind a NAT (Network Address Translater). Using it is also quite simple - just install it and create a network that others can join.&lt;br /&gt;&lt;br /&gt;What I'm most impressed with is the technology that goes behind it. It assigns a private IP in the range 5.x.x.x to each node when the node first communicates with the Hamachi server. Consequently, the other members of the virtual Hamachi LAN can use this IP to access the machine. It uses UDP hole punching (similar to peer-to-peer funda) to establish direct communication between the various virtual LAN nodes. I tried finding some research paper or patent by Hamachi, but couldn't. If someone knows more about this, please mail me at amiacs[at]gmail.com .&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9038882630756135614-1077677478906424789?l=amiacs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://amiacs.blogspot.com/feeds/1077677478906424789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9038882630756135614&amp;postID=1077677478906424789' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/1077677478906424789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9038882630756135614/posts/default/1077677478906424789'/><link rel='alternate' type='text/html' href='http://amiacs.blogspot.com/2007/03/playing-age-of-empires-on-internet-or.html' title='Playing Age of Empires on Internet or among different subnets'/><author><name>amiacs</name><uri>http://www.blogger.com/profile/04648117058756390321</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry></feed>
