<?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:blogger='http://schemas.google.com/blogger/2008' 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-868679675076553456</id><updated>2024-09-02T09:46:38.079+05:30</updated><category term="Tips"/><category term="Python"/><category term="Linux"/><category term="FAQ&#39;s"/><category term="Microsoft SoftGrid Application Virtualization"/><category term="Windows"/><category term="Microsoft Application Virtualization"/><category term="Development"/><category term="MSI"/><category term="Application Virtualization"/><category term="Interview Questions"/><category term="Packaging"/><category term="PitHole"/><category term="App-V"/><category term="AppV"/><category term="ffmpeg"/><category term="ruby"/><category term="wx.Python"/><category term="Error"/><category term="GEM"/><category term="GRUB"/><category term="Howto"/><category term="Installation"/><category term="MAC OS"/><category term="Microsoft"/><category term="Opsware API"/><category term="Pascal"/><category term="Portable Apps"/><category term="Python: Tips"/><category term="Softgrid"/><category term="SubVersion"/><category term="VBScript"/><category term="WinXP"/><category term="audio books"/><category term="avi"/><category term="clone"/><category term="code"/><category term="compile"/><category term="dbus"/><category term="download"/><category term="dpkg error"/><category term="faq"/><category term="free"/><category term="freebasic"/><category term="interview question"/><category term="mov"/><category term="portable skype"/><category term="rpm"/><category term="skype"/><category term="soft"/><category term="sqlite"/><category term="video conversion"/><category term="virtualbox"/><category term="vmware"/><category term="wise"/><category term="wix"/><category term="wx"/><category term="wxformbuilder"/><category term="wxpython"/><category term="wxwidgets"/><title type='text'>Playing with Computers</title><subtitle type='html'>My 2cent tips &amp;amp; tricks on computer technology &amp;amp; Application Virtualization ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>125</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-8516255855161812040</id><published>2014-10-29T12:59:00.000+05:30</published><updated>2014-10-29T12:59:01.291+05:30</updated><title type='text'>TIPS: Selenium popup handling</title><content type='html'>    alert = driver.switch_to_alert()
    print(alert.text)
    alert.accept()</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/8516255855161812040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/8516255855161812040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8516255855161812040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8516255855161812040'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2014/10/tips-selenium-popup-handling.html' title='TIPS: Selenium popup handling'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-4653870119954923815</id><published>2014-10-25T14:03:00.000+05:30</published><updated>2014-10-25T14:03:42.620+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Opsware API"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Tips: Opsware API : Creating a Policy</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;import sys&lt;br /&gt;import getopt&lt;br /&gt;import string&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;sys.path.append(&#39;/opt/opsware/smopylibs2&#39;)&lt;br /&gt;sys.path.append(&#39;/opt/opsware/agent_tools/&#39;) &lt;br /&gt;import agenttools_common&lt;br /&gt;from pytwist import *&lt;br /&gt;from pytwist.com.opsware.search import Filter&lt;br /&gt;from pytwist.com.opsware.server import ServerRef&lt;br /&gt;import pytwist.com.opsware.script&amp;nbsp; &lt;br /&gt;from pytwist.com.opsware.script import ScriptVersion&lt;br /&gt;&lt;br /&gt;try:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; opts, args = getopt.getopt(sys.argv[1:], &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;u:p:s:d:&#39; ,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&#39;username=&#39;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;password=&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;srcpolicy=&#39;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#39;destination=&#39;])&lt;br /&gt;except getopt.GetoptError:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&quot;command line error&quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit(2)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;dest = []&lt;br /&gt;dstPath= []&lt;br /&gt;for o, a in opts:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if o in (&#39;-u&#39;, &#39;--username&#39;):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; username = a&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if o in (&#39;-p&#39;, &#39;--password&#39;):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password = a&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if o in (&#39;-s&#39;, &#39;--srcpolicy&#39;):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srcPolicy = string.split(a, &#39;/&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if srcPolicy ==[&#39;&#39;, &#39;&#39;]:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srcPolicy = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; srcPath = srcPolicy[1:-1]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if o in (&#39;-d&#39;, &#39;--destination&#39;):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dest = string.split(a,&#39;/&#39;)[1:]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dest ==[&#39;&#39;, &#39;&#39;]:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dstPath = []&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dstPath = dest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;print dstPath&lt;br /&gt;ts = twistserver.TwistServer()&lt;br /&gt;ts.authenticate(username, password)&lt;br /&gt;folderservice = ts.folder.FolderService&lt;br /&gt;&lt;br /&gt;src_folder_ref = folderservice.getFNode(srcPath)&lt;br /&gt;dst_folder_ref =&amp;nbsp; folderservice.getFNode(dstPath)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/4653870119954923815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/4653870119954923815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4653870119954923815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4653870119954923815'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2014/10/tips-opsware-api-creating-policy.html' title='Tips: Opsware API : Creating a Policy'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-6071933404374408348</id><published>2014-10-25T13:42:00.000+05:30</published><updated>2014-10-25T14:13:07.416+05:30</updated><title type='text'>Tips: Python: Calculate Contrast Ratio of html text using Python and Selenium</title><content type='html'>
&lt;style&gt;
pre .hll { background-color: #ffffcc }
pre  { background: #f0f0f0; }
pre .c { color: #60a0b0; font-style: italic } /* Comment */
pre .err { border: 1px solid #FF0000 } /* Error */
pre .k { color: #007020; font-weight: bold } /* Keyword */
pre .o { color: #666666 } /* Operator */
pre .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
pre .cp { color: #007020 } /* Comment.Preproc */
pre .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
pre .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
pre .gd { color: #A00000 } /* Generic.Deleted */
pre .ge { font-style: italic } /* Generic.Emph */
pre .gr { color: #FF0000 } /* Generic.Error */
pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
pre .gi { color: #00A000 } /* Generic.Inserted */
pre .go { color: #888888 } /* Generic.Output */
pre .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
pre .gs { font-weight: bold } /* Generic.Strong */
pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
pre .gt { color: #0044DD } /* Generic.Traceback */
pre .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
pre .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
pre .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
pre .kp { color: #007020 } /* Keyword.Pseudo */
pre .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
pre .kt { color: #902000 } /* Keyword.Type */
pre .m { color: #40a070 } /* Literal.Number */
pre .s { color: #4070a0 } /* Literal.String */
pre .na { color: #4070a0 } /* Name.Attribute */
pre .nb { color: #007020 } /* Name.Builtin */
pre .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
pre .no { color: #60add5 } /* Name.Constant */
pre .nd { color: #555555; font-weight: bold } /* Name.Decorator */
pre .ni { color: #d55537; font-weight: bold } /* Name.Entity */
pre .ne { color: #007020 } /* Name.Exception */
pre .nf { color: #06287e } /* Name.Function */
pre .nl { color: #002070; font-weight: bold } /* Name.Label */
pre .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
pre .nt { color: #062873; font-weight: bold } /* Name.Tag */
pre .nv { color: #bb60d5 } /* Name.Variable */
pre .ow { color: #007020; font-weight: bold } /* Operator.Word */
pre .w { color: #bbbbbb } /* Text.Whitespace */
pre .mb { color: #40a070 } /* Literal.Number.Bin */
pre .mf { color: #40a070 } /* Literal.Number.Float */
pre .mh { color: #40a070 } /* Literal.Number.Hex */
pre .mi { color: #40a070 } /* Literal.Number.Integer */
pre .mo { color: #40a070 } /* Literal.Number.Oct */
pre .sb { color: #4070a0 } /* Literal.String.Backtick */
pre .sc { color: #4070a0 } /* Literal.String.Char */
pre .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
pre .s2 { color: #4070a0 } /* Literal.String.Double */
pre .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
pre .sh { color: #4070a0 } /* Literal.String.Heredoc */
pre .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
pre .sx { color: #c65d09 } /* Literal.String.Other */
pre .sr { color: #235388 } /* Literal.String.Regex */
pre .s1 { color: #4070a0 } /* Literal.String.Single */
pre .ss { color: #517918 } /* Literal.String.Symbol */
pre .bp { color: #007020 } /* Name.Builtin.Pseudo */
pre .vc { color: #bb60d5 } /* Name.Variable.Class */
pre .vg { color: #bb60d5 } /* Name.Variable.Global */
pre .vi { color: #bb60d5 } /* Name.Variable.Instance */
pre .il { color: #40a070 } /* Literal.Number.Integer.Long */.syntax pre .hll { background-color: #333333 }
.syntax pre  { background: #111111; color: #ffffff }
.syntax pre .c { color: #008800; font-style: italic; background-color: #0f140f } /* Comment */
.syntax pre .err { color: #ffffff } /* Error */
.syntax pre .esc { color: #ffffff } /* Escape */
.syntax pre .g { color: #ffffff } /* Generic */
.syntax pre .k { color: #fb660a; font-weight: bold } /* Keyword */
.syntax pre .l { color: #ffffff } /* Literal */
.syntax pre .n { color: #ffffff } /* Name */
.syntax pre .o { color: #ffffff } /* Operator */
.syntax pre .x { color: #ffffff } /* Other */
.syntax pre .p { color: #ffffff } /* Punctuation */
.syntax pre .cm { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Multiline */
.syntax pre .cp { color: #ff0007; font-weight: bold; font-style: italic; background-color: #0f140f } /* Comment.Preproc */
.syntax pre .c1 { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Single */
.syntax pre .cs { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Special */
.syntax pre .gd { color: #ffffff } /* Generic.Deleted */
.syntax pre .ge { color: #ffffff } /* Generic.Emph */
.syntax pre .gr { color: #ffffff } /* Generic.Error */
.syntax pre .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
.syntax pre .gi { color: #ffffff } /* Generic.Inserted */
.syntax pre .go { color: #444444; background-color: #222222 } /* Generic.Output */
.syntax pre .gp { color: #ffffff } /* Generic.Prompt */
.syntax pre .gs { color: #ffffff } /* Generic.Strong */
.syntax pre .gu { color: #ffffff; font-weight: bold } /* Generic.Subheading */
.syntax pre .gt { color: #ffffff } /* Generic.Traceback */
.syntax pre .kc { color: #fb660a; font-weight: bold } /* Keyword.Constant */
.syntax pre .kd { color: #fb660a; font-weight: bold } /* Keyword.Declaration */
.syntax pre .kn { color: #fb660a; font-weight: bold } /* Keyword.Namespace */
.syntax pre .kp { color: #fb660a } /* Keyword.Pseudo */
.syntax pre .kr { color: #fb660a; font-weight: bold } /* Keyword.Reserved */
.syntax pre .kt { color: #cdcaa9; font-weight: bold } /* Keyword.Type */
.syntax pre .ld { color: #ffffff } /* Literal.Date */
.syntax pre .m { color: #0086f7; font-weight: bold } /* Literal.Number */
.syntax pre .s { color: #0086d2 } /* Literal.String */
.syntax pre .na { color: #ff0086; font-weight: bold } /* Name.Attribute */
.syntax pre .nb { color: #ffffff } /* Name.Builtin */
.syntax pre .nc { color: #ffffff } /* Name.Class */
.syntax pre .no { color: #0086d2 } /* Name.Constant */
.syntax pre .nd { color: #ffffff } /* Name.Decorator */
.syntax pre .ni { color: #ffffff } /* Name.Entity */
.syntax pre .ne { color: #ffffff } /* Name.Exception */
.syntax pre .nf { color: #ff0086; font-weight: bold } /* Name.Function */
.syntax pre .nl { color: #ffffff } /* Name.Label */
.syntax pre .nn { color: #ffffff } /* Name.Namespace */
.syntax pre .nx { color: #ffffff } /* Name.Other */
.syntax pre .py { color: #ffffff } /* Name.Property */
.syntax pre .nt { color: #fb660a; font-weight: bold } /* Name.Tag */
.syntax pre .nv { color: #fb660a } /* Name.Variable */
.syntax pre .ow { color: #ffffff } /* Operator.Word */
.syntax pre .w { color: #888888 } /* Text.Whitespace */
.syntax pre .mb { color: #0086f7; font-weight: bold } /* Literal.Number.Bin */
.syntax pre .mf { color: #0086f7; font-weight: bold } /* Literal.Number.Float */
.syntax pre .mh { color: #0086f7; font-weight: bold } /* Literal.Number.Hex */
.syntax pre .mi { color: #0086f7; font-weight: bold } /* Literal.Number.Integer */
.syntax pre .mo { color: #0086f7; font-weight: bold } /* Literal.Number.Oct */
.syntax pre .sb { color: #0086d2 } /* Literal.String.Backtick */
.syntax pre .sc { color: #0086d2 } /* Literal.String.Char */
.syntax pre .sd { color: #0086d2 } /* Literal.String.Doc */
.syntax pre .s2 { color: #0086d2 } /* Literal.String.Double */
.syntax pre .se { color: #0086d2 } /* Literal.String.Escape */
.syntax pre .sh { color: #0086d2 } /* Literal.String.Heredoc */
.syntax pre .si { color: #0086d2 } /* Literal.String.Interpol */
.syntax pre .sx { color: #0086d2 } /* Literal.String.Other */
.syntax pre .sr { color: #0086d2 } /* Literal.String.Regex */
.syntax pre .s1 { color: #0086d2 } /* Literal.String.Single */
.syntax pre .ss { color: #0086d2 } /* Literal.String.Symbol */
.syntax pre .bp { color: #ffffff } /* Name.Builtin.Pseudo */
.syntax pre .vc { color: #fb660a } /* Name.Variable.Class */
.syntax pre .vg { color: #fb660a } /* Name.Variable.Global */
.syntax pre .vi { color: #fb660a } /* Name.Variable.Instance */
.syntax pre .il { color: #0086f7; font-weight: bold } /* Literal.Number.Integer.Long */
&lt;/style&gt;
&lt;div class=&quot;hlcode&quot;&gt;
&lt;div class=&quot;syntax&quot;&gt;&lt;pre&gt;&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;__future__&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;division&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;selenium.webdriver.common.by&lt;/span&gt; &lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;
&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;re&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;calculate_luminance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;RsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;GsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;g&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;BsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;b&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;255&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;R&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RsRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;12.92&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.03928&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;RsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.055&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.055&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;2.4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;G&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;GsRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;12.92&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;GsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.03928&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;GsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.055&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.055&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;2.4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;B&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BsRGB&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;12.92&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.03928&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;BsRGB&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.055&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;1.055&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;**&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;2.4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mf&quot;&gt;0.2126&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;R&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.7152&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;G&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.0722&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;B&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getcolor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;colorcode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;sd&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sd&quot;&gt;    provide the colorcode in rgba format&lt;/span&gt;
&lt;span class=&quot;sd&quot;&gt;    &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;re&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;compile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d+)\)&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;re&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;IGNORECASE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;findall&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;colorcode&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;get_contrast_ratio&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;front_col&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;backend_color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;bkg_colors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getcolor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;backend_color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;l1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;calculate_luminance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bkg_colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
        &lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bkg_colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;bkg_colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;frd_colors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getcolor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;front_col&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;l2&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;calculate_luminance&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;frd_colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt;
                             &lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;frd_colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]),&lt;/span&gt; 
                             &lt;span class=&quot;nb&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;frd_colors&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]))&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;L1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;L2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.05&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;L1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;L2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mf&quot;&gt;0.05&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;


&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;__name__&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;c&quot;&gt;#for testing and how to use itonly&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;#39;http://www.w3.org/Talks/2012/0416-CSS-WWW2012/Demos/transitions/demo-transitions-1.html#no_transition&amp;#39;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;webdriver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Firefox&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;implicitly_wait&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;we1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;find_element&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;By&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;XPATH&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;//li[@id=&amp;#39;no_transition&amp;#39;]&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;get_contrast_ratio&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;we1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_of_css_property&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;color&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
                             &lt;span class=&quot;n&quot;&gt;we1&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_of_css_property&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&amp;quot;background-color&amp;quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/6071933404374408348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/6071933404374408348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6071933404374408348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6071933404374408348'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2014/10/tips-python-calcuate-contrast-ration.html' title='Tips: Python: Calculate Contrast Ratio of html text using Python and Selenium'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-4588244018587693172</id><published>2011-09-16T10:03:00.000+05:30</published><updated>2011-09-16T10:04:03.262+05:30</updated><title type='text'>FAQ: MSI: While installing a bunch of msi files I am getting the following error after few msi installation. &quot;The installation can not continue because a system reboot is pending.:. What might be the issue and how to resolve the issue.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;Cause&lt;/b&gt;&lt;br /&gt;
Any application can set a pending reboot flag in the operating system  through a registry key.&amp;nbsp; Sometimes a reboot does not clear the flag.&amp;nbsp;  This is what the setup is detecting.&lt;br /&gt;
&lt;b&gt;Resolution     &lt;/b&gt;    &lt;br /&gt;
&lt;b&gt;For XP:&lt;/b&gt;&lt;b&gt;     &lt;/b&gt;&lt;b&gt;1.&lt;/b&gt; Open Registry Editor    &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.1 Click the Start Menu &amp;gt; Run    &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.2 Type &quot;regedit&quot; without quotes.     &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.3 Click OK    &lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt; Find the key &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager&quot;    &lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt; Rename the &quot;PendingFileRenameOperations&quot; value to &quot;PendingFileRenameOperations2&quot;&lt;br /&gt;
&lt;b&gt;For Vista:&lt;/b&gt;    &lt;br /&gt;
&lt;b&gt;1.&lt;/b&gt; Open Registry Editor    &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.1 Click the Start Menu    &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.2 Type &quot;regedit&quot; without quotes.    &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.3 Right click on RUN and select Run as administrator    &lt;br /&gt;
&lt;b&gt;2.&lt;/b&gt; Find the key &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager&quot;    &lt;br /&gt;
&lt;b&gt;3.&lt;/b&gt; Rename the &quot;PendingFileRenameOperations&quot; value to &quot;PendingFileRenameOperations2&quot;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/4588244018587693172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/4588244018587693172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4588244018587693172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4588244018587693172'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2011/09/faq-msi-while-installing-bunch-of-msi.html' title='FAQ: MSI: While installing a bunch of msi files I am getting the following error after few msi installation. &quot;The installation can not continue because a system reboot is pending.:. What might be the issue and how to resolve the issue.'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-4166135314176098107</id><published>2011-05-04T10:52:00.000+05:30</published><updated>2011-05-04T10:52:59.076+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview Questions"/><category scheme="http://www.blogger.com/atom/ns#" term="MSI"/><title type='text'>MSI FAQ: 11. How do you install 2 MSI packages, after installation of 1st MSI the machine has to reboot and upon start of the machine 2nd MSI installation has to be triggered? Once installation of 2nd MSI is completed the User has to notify with a Message that 2 MSI Installation has been completed. How do you perform the Task? ( If 1st MSI installation has failed then 2nd MSI installation shouldn’t happen)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:TrackMoves/&gt;   &lt;w:TrackFormatting/&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:DoNotPromoteQF/&gt;   &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:SplitPgBreakAndParaMark/&gt;    &lt;w:DontVertAlignCellWithSp/&gt;    &lt;w:DontBreakConstrainedForcedTables/&gt;    &lt;w:DontVertAlignInTxbx/&gt;    &lt;w:Word11KerningPairs/&gt;    &lt;w:CachedColBalance/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:DoNotOptimizeForBrowser/&gt;   &lt;m:mathPr&gt;    &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;    &lt;m:brkBin m:val=&quot;before&quot;/&gt;    &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;    &lt;m:smallFrac m:val=&quot;off&quot;/&gt;    &lt;m:dispDef/&gt;    &lt;m:lMargin m:val=&quot;0&quot;/&gt;    &lt;m:rMargin m:val=&quot;0&quot;/&gt;    &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;    &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;    &lt;m:intLim m:val=&quot;subSup&quot;/&gt;    &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;true&quot;
  DefSemiHidden=&quot;true&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;267&quot;&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 7&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 8&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;toc 9&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; Name=&quot;Default Paragraph Font&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;59&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Table Grid&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Placeholder Text&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; UnhideWhenUsed=&quot;false&quot; Name=&quot;Revision&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;List Paragraph&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Quote&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light List Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Dark List Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Emphasis&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Emphasis&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Subtle Reference&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Intense Reference&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; SemiHidden=&quot;false&quot;
   UnhideWhenUsed=&quot;false&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; Name=&quot;Bibliography&quot;/&gt;   &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-qformat:yes;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin:0in;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:none;
 mso-hyphenate:none;
 text-autospace:ideograph-other;
 font-size:12.0pt;
 font-family:&quot;Arial&quot;,&quot;sans-serif&quot;;
 mso-bidi-font-family:Tahoma;
 mso-font-kerning:1.5pt;}
&lt;/style&gt; &lt;![endif]--&gt;  &lt;br /&gt;
&lt;div class=&quot;Answers&quot;&gt;There are multiple ways to achieve the above task. I will list two methods and I will recommend the first method as its easy, simple, less error prone and has more changes of compliance with company policy.&lt;/div&gt;&lt;div class=&quot;Answers&quot;&gt;&lt;b&gt;&lt;u&gt;Method 1&lt;/u&gt;&lt;/b&gt;: &lt;b&gt;&lt;u&gt;Use Corporate Package Distribution System such as CA DSM (not sure about SCCM)&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;span style=&quot;font-family: StarSymbol;&quot;&gt;&lt;span&gt;•&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Create two normal packages and then import them in CA DSM, Set the reboot after installation on the install procedure of the first package. &lt;b&gt;&lt;span style=&quot;background: none repeat scroll 0% 0% rgb(255, 255, 153); color: red;&quot;&gt;(DO NOT LET MSI reboot itself)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;span style=&quot;font-family: StarSymbol;&quot;&gt;&lt;span&gt;•&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;In CA DSM create a policy with install procedures of both the packages.&lt;/div&gt;&lt;div class=&quot;Answers&quot;&gt;Isn’t is simple. What happens that when the procedure is deployed on the package first package is installed and then CA DSM reboots the machine, once the machine comes back online then the second package is installed. If the installation of first package fails then CA DSM will not install the second package. :)&lt;/div&gt;&lt;div class=&quot;Answers&quot;&gt;&lt;b&gt;&lt;u&gt;Method 2&lt;/u&gt;&lt;/b&gt;: &lt;b&gt;&lt;u&gt;Use of Active Setup&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;span style=&quot;font-family: StarSymbol;&quot;&gt;&lt;span&gt;•&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Create package B, add the created package in the files section of package A. Set REBOOT property to &lt;span style=&quot;color: black; font-size: 9.5pt;&quot;&gt;Force.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;span style=&quot;font-family: StarSymbol;&quot;&gt;&lt;span&gt;•&lt;span style=&quot;font: 7pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Set active setup in package A, in the stub section add the details to silently install package B.&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;b style=&quot;color: #cc0000;&quot;&gt;NOTE: PLEASE FOR GOD SAKE,&lt;span style=&quot;color: #3d85c6;&quot;&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #3d85c6;&quot;&gt;&lt;b&gt;do not create a nested msi or create a script which will install the msi files&lt;/b&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Answers&quot; style=&quot;margin-left: 0in; text-indent: 0in;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/4166135314176098107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/4166135314176098107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4166135314176098107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4166135314176098107'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2011/05/msi-faq-11-how-do-you-install-2-msi.html' title='MSI FAQ: 11. How do you install 2 MSI packages, after installation of 1st MSI the machine has to reboot and upon start of the machine 2nd MSI installation has to be triggered? Once installation of 2nd MSI is completed the User has to notify with a Message that 2 MSI Installation has been completed. How do you perform the Task? ( If 1st MSI installation has failed then 2nd MSI installation shouldn’t happen)'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-5774372120962860208</id><published>2011-04-14T12:43:00.025+05:30</published><updated>2011-04-15T18:06:09.900+05:30</updated><title type='text'>FAQS 1 : MSI  Packaging &amp; Re-packaging.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;background-color: #6aa84f; color: white; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Custom Actions&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; font-size: small;&quot;&gt;1. How to add custom actions to run only during patching&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;Add &quot;PATCH&quot; To condition in custom action&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #0b5394; font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; font-size: small;&quot;&gt;2. Name few best practices for creating a Custom Actions&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: white;&quot;&gt;* Do not use custom actions             in your package that require elevated privileges to run.&lt;/div&gt;&lt;div style=&quot;background-color: white;&quot;&gt;*&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: white;&quot;&gt;&lt;/div&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; font-size: small;&quot;&gt;3.&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: white; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #0b5394; font-size: small;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6aa84f; color: white; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;MISC&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #0b5394; font-size: small;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;1. Which runs first &quot;Run&quot; key or Active Setup&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;Applications launched by Active Setup will run first. Activesetup &lt;/b&gt;is using to configure the userprofile settings if no  entry points exists in the package and this will be running only once  for a specific user.&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;Where as RUN key will execute everytime when user login the machine. These settings are configured with different sequence , in order to  speedup to get access to windows desktop\user level settings.&lt;br /&gt;
&lt;div style=&quot;background-color: #cfe2f3; color: black;&quot;&gt;&lt;b&gt;2. If you extract a COM information through registering the dll or OCX file which tables will it be reflected&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #cfe2f3; font-size: small;&quot;&gt;3 &lt;/span&gt;Can you elaborate the driver handling via device driver?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;4 Apart from APP search what tables you use to find whether the particular application is installed via MSI tables?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;5. What is the meaning of Launch condition Office2007&lt;office2003&gt;&lt;/office2003&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;Only proceed the installation if value of &quot;Office2007&quot; property is less then &quot;office2003&quot; property&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;6. What are the attributes you set for files going under c:\Winnt\System?&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;Nothing, we will let Windows default file setting to be propagated to the newly added files also.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;7. What happens if non-keypath file is deleted and a shortcut is launched.&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Nothing Happens,&lt;br /&gt;
&lt;div style=&quot;background-color: #6aa84f; color: white; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;MSI SDK&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;1. How many tables can control the flow of Installer. Name them&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;6 tables,Names of them are InstallExecuteSequence, InstallUISequence, AdminExecuteSequence, AdminUISequence, AdvtExecuteSequence, AdvtUISequence&lt;br /&gt;
&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;2. During typical execution how many of them are used.&lt;/b&gt; &lt;/div&gt;Only 2 tables are used during any typical execution&lt;br /&gt;
&lt;div style=&quot;background-color: #6aa84f; color: white; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;MSI Sequence&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;1. Can we control Uninstall GUI &lt;/b&gt;&lt;/div&gt;No.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #0b5394; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;background-color: #cfe2f3; color: #0b5394; font-size: small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #6aa84f; color: white; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif; text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;MSI &amp;gt;=4.5&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;1. What is Per User Application (PUA)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;/span&gt;An application capable of being installed, updated, run and removed by a standard user without elevation is called a PUA&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;2. What is the minimum OS on which MSI 5.0 will get installed&lt;/b&gt;&lt;/div&gt;Windows 2008 and Windows 7&lt;/div&gt;&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;3. What is single package authoring / dual purpose package&lt;/b&gt;&lt;/div&gt;A dual purpose package is a windows installer 5.0 package that has been authored to be capable of installing an application in either the per-user or per-machine installation context.&lt;br /&gt;
&lt;div style=&quot;background-color: #cfe2f3; color: black; font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;&quot;&gt;&lt;b&gt;4. What is the limitation of PUA/DPP&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/5774372120962860208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/5774372120962860208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/5774372120962860208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/5774372120962860208'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2011/04/faqs-1-msi-packaging-re-packaging.html' title='FAQS 1 : MSI  Packaging &amp; Re-packaging.'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-2154337125016738158</id><published>2011-04-13T10:14:00.003+05:30</published><updated>2011-04-13T19:05:54.659+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="freebasic"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>FreeBasic : Code : runas in FreeBasic</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;color: #6aa84f; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;#Include &quot;windows.bi&quot;&lt;br /&gt;
#inclib &quot;advapi32&quot;&lt;br /&gt;
&lt;br /&gt;
Declare FUNCTION CreateProcessWithLogonW LIB &quot;ADVAPI32&quot; ALIAS &quot;CreateProcessWithLogonW&quot; ( _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; byval lpUsername As LPCWSTR&amp;nbsp; , _&lt;br /&gt;
BYVAL lpDomain AS LPCWSTR , _&lt;br /&gt;
BYVAL lpPassword AS LPCWSTR, _&lt;br /&gt;
BYVAL dwLogonFlags AS DWORD, _&lt;br /&gt;
BYVAL lpApplicationName AS LPCWSTR , _&lt;br /&gt;
BYVAL lpCommandLine AS LPCWSTR , _&lt;br /&gt;
BYVAL dwCreationFlags AS DWORD, _&lt;br /&gt;
BYVAL lpEnvironment AS DWORD, _&lt;br /&gt;
BYVAL lpCurrentDirectory AS LPCWSTR , _&lt;br /&gt;
lpStartupInfo AS STARTUPINFO, _&lt;br /&gt;
lpProcessInfo AS PROCESS_INFORMATION) AS LONG&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Const X_CJ_LOGON_WITH_PROFILE=1&lt;br /&gt;
Const X_CJ_CREATE_DEFAULT_ERROR_MODE = &amp;amp;H04000000&lt;br /&gt;
&#39;#############################################&lt;br /&gt;
&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RunAsUser for Windows 2000 and Later&lt;br /&gt;
&#39;#############################################&lt;br /&gt;
&lt;br /&gt;
FUNCTION RunAsUser(BYVAL UserName AS STRING, _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYVAL Password AS STRING, _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYVAL DomainName AS STRING, _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYVAL CommandLine AS STRING, _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BYVAL CurrentDirectory AS STRING) AS boolean&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim si AS STARTUPINFO&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim pi AS PROCESS_INFORMATION&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim AS String wCurrentDir,wCommandLine,wPassword,wUser,wDomain &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; dim R01 AS LONG&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; si.cb = LEN(si)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wUser = UserName&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wDomain = DomainName&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wPassword = Password&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wCommandLine = CommandLine&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; wCurrentDir = CurrentDirectory&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &#39;Print wCommandLine &amp;amp; &quot;TEST&quot;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; R01 = CreateProcessWithLogonW(wUser,wDomain,wPassword, _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; X_CJ_LOGON_WITH_PROFILE, 0&amp;amp;, wCommandLine, _&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; X_CJ_CREATE_DEFAULT_ERROR_MODE, 0&amp;amp;, wCurrentDir, si, pi)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IF R01 &amp;lt;&amp;gt; 0 THEN&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; CloseHandle pi.hThread&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; CloseHandle pi.hProcess&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Return TRUE&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Return FALSE&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; END If&lt;br /&gt;
End FUNCTION&lt;br /&gt;
&lt;br /&gt;
Dim As Long R01&lt;br /&gt;
Dim As String&amp;nbsp; user_name,password,domain,program,workingDir&lt;br /&gt;
&lt;br /&gt;
user_name=&quot;username&quot;&lt;br /&gt;
password=&quot;pa$$word&quot;&lt;br /&gt;
domain=&quot;domain&quot;&lt;br /&gt;
program=&quot;C:\\windows\\notepad.exe&quot;&lt;br /&gt;
workingDir=&quot;C:\\windows&quot;&lt;br /&gt;
&lt;br /&gt;
R01=RunAsUser(user_name,password,domain,program,workingDir)&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/2154337125016738158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/2154337125016738158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/2154337125016738158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/2154337125016738158'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2011/04/freebasic-code-runas-in-freebasic.html' title='FreeBasic : Code : runas in FreeBasic'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-3072868526554095071</id><published>2011-04-12T07:35:00.002+05:30</published><updated>2011-04-12T07:35:20.115+05:30</updated><title type='text'>Checking if any process is running using FreeBasic</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
#include once &quot;windows.bi&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;in&lt;br /&gt;
#define UNICODE &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;this&lt;br /&gt;
#include once &quot;disphelper/disphelper.bi&quot; &#39;order&lt;br /&gt;
&#39;&lt;br /&gt;
&lt;br /&gt;
Function checkProcName(processName As String) As Boolean&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;dim as HRESULT hres&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;dim as zstring ptr procID,procPath, procName&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;DISPATCH_OBJ(wmiSvc)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;DISPATCH_OBJ(colProc)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;dhInitialize(TRUE)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;hres=dhGetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2&quot;,NULL,@wmiSvc)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;hres=dhGetValue(&quot;%o&quot;,@colProc,wmiSvc,&quot;.ExecQuery(%s)&quot;,&quot;Select * from Win32_Process Where Name=&#39;&quot; &amp;amp; processName &amp;amp; &quot;&#39;&quot;) &#39; where Name=\&#39;&quot; &amp;amp; &quot;notepad.exe&quot; &amp;amp; &quot;\&#39;&quot;)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Dim &amp;nbsp;count &amp;nbsp;As Integer&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;count = 0&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FOR_EACH0(objProc,colProc,NULL)&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; count = count +1&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; *procPath=&quot;&quot;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; hres=dhGetValue(&quot;%s&quot;,@procPath,objProc,&quot;.ExecutablePath&quot;)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; hres=dhGetValue(&quot;%s&quot;,@procID,objProc,&quot;.ProcessID&quot;)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; hres=dhGetValue(&quot;%s&quot;,@procName,objProc,&quot;.Name&quot;)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;if hres=0 then&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print *procID; tab(8);*procName&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;end if&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt; &amp;nbsp; &amp;nbsp;&#39;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;NEXT_(objProc)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Print count&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;SAFE_RELEASE(wmiSvc)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;SAFE_RELEASE(colProc)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;dhUninitialize(TRUE)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;If count = 0 Then&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Return FALSE&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Else&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;Return TRUE&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;EndIf&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dim test As Boolean&lt;br /&gt;
test= checkProcName(&quot;notepad.exe&quot;)&lt;br /&gt;
print:print &quot;Sleeping to Exit..&quot; &amp;amp; test&lt;br /&gt;
Sleep&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/3072868526554095071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/3072868526554095071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/3072868526554095071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/3072868526554095071'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2011/04/checking-if-any-process-is-running.html' title='Checking if any process is running using FreeBasic'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-8812813210738598269</id><published>2011-04-11T12:29:00.003+05:30</published><updated>2011-04-11T14:14:31.891+05:30</updated><title type='text'>FAQ&#39;s  MSI  Packaging &amp; Repackaging</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;There are two version of the document. I have tried my best to have correct information and if you find any issue or wrong information then please inform me about it. The download location for them are as follows &lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Release Version&lt;/b&gt;: &lt;a href=&quot;http://sourceforge.net/projects/mayadeploy/files/FAQ/&quot;&gt;http://sourceforge.net/projects/mayadeploy/files/FAQ/&lt;/a&gt;. Just download the latest version&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Working Version&lt;/b&gt;: &lt;a href=&quot;http://mayadeploy.svn.sourceforge.net/viewvc/mayadeploy/trunk/FAQ/FAQ%20on%20MSI%20packaging%20and%20repackaging.odt&quot;&gt;http://mayadeploy.svn.sourceforge.net/viewvc/mayadeploy/trunk/FAQ/FAQ on MSI packaging and repackaging.odt&lt;/a&gt;. This version is a work in progress and can have wrong information. &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/8812813210738598269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/8812813210738598269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8812813210738598269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8812813210738598269'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2011/04/faqs-msi-packaging-repackaging.html' title='FAQ&#39;s  MSI  Packaging &amp; Repackaging'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-6937449880488407391</id><published>2010-10-07T11:49:00.000+05:30</published><updated>2010-10-07T11:49:34.224+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview Questions"/><category scheme="http://www.blogger.com/atom/ns#" term="MSI"/><title type='text'>MSI Interview Questions. Ver: 0.0.1 Beta 4</title><content type='html'>Hello all, &lt;br /&gt;
I have updated the MSI Interview Questions, the updated document can  be downloaded from &lt;a href=&quot;http://sourceforge.net/projects/mayadeploy/files/FAQ/FAQ%20on%20MSI%20packaging%20and%20repackaging_0.0_1Beta4.pdf/download&quot;&gt;http://sourceforge.net/projects/mayadeploy/files/FAQ/FAQ%20on%20MSI%20packaging%20and%20repackaging_0.0_1Beta4.pdf/download&lt;/a&gt;.&lt;br /&gt;
Enjoy solving the last 3 questions.&lt;br /&gt;
As always the questions &amp;amp; answers might be wrong.&lt;br /&gt;
&lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt;  so please correct me if that is the case &lt;img alt=&quot;:)&quot; class=&quot;wp-smiley&quot; src=&quot;http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif&quot; /&gt; .&lt;br /&gt;
Enjoy,&lt;br /&gt;
Mayank Johri</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/6937449880488407391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/6937449880488407391' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6937449880488407391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6937449880488407391'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/10/msi-interview-questions-ver-001-beta-4.html' title='MSI Interview Questions. Ver: 0.0.1 Beta 4'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-1001699710455112240</id><published>2010-10-07T11:48:00.000+05:30</published><updated>2010-10-07T11:48:14.683+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="App-V"/><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview Questions"/><title type='text'>Alpha 1 Version of App-V Interview Questions</title><content type='html'>Dear All, &lt;br /&gt;
My first try to consolidate all the app-v interview questions. &lt;a href=&quot;http://sourceforge.net/projects/softgridhelper/files/Documentations/AppV%20Interview%20Questions_Ver_0.0.1Alpha1.pdf/download&quot;&gt;http://sourceforge.net/projects/softgridhelper/files/Documentations/AppV%20Interview%20Questions_Ver_0.0.1Alpha1.pdf/download&lt;/a&gt;&lt;br /&gt;
As always your comments and suggestions are most welcome.&lt;br /&gt;
Enjoy,&lt;br /&gt;
Mayank Johri</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/1001699710455112240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/1001699710455112240' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1001699710455112240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1001699710455112240'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/10/alpha-1-version-of-app-v-interview.html' title='Alpha 1 Version of App-V Interview Questions'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-1158640317433760953</id><published>2010-07-25T05:02:00.000+05:30</published><updated>2010-07-25T08:35:43.233+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="FAQ&#39;s"/><category scheme="http://www.blogger.com/atom/ns#" term="Interview Questions"/><category scheme="http://www.blogger.com/atom/ns#" term="MSI"/><title type='text'>FAQ: MSI Interview</title><content type='html'>I am posting the first draft of FAQ of MSI packaging &amp;amp; repackaging. It can be downloaded from &lt;a title=&quot;FAQ on MSI packaging and repackaging.pd&quot; href=&quot;https://sourceforge.net/projects/mayadeploy/files/FAQ/FAQ%20on%20MSI%20packaging%20and%20repackaging.pdf/download&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/1158640317433760953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/1158640317433760953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1158640317433760953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1158640317433760953'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/07/faq-msi-interview.html' title='FAQ: MSI Interview'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-5785719761833529412</id><published>2010-05-19T06:41:00.000+05:30</published><updated>2010-07-25T08:35:43.234+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>TIPS: Python: Copying text in Clipboard using Python</title><content type='html'>following code lets you achieve that.&lt;br/&gt;&lt;pre style=&quot;padding-left:30px;&quot;&gt;import win32clipboard&lt;br/&gt;win32clipboard.OpenClipboard()&lt;br/&gt;win32clipboard.EmptyClipboard()&lt;br/&gt;win32clipboard.SetClipboardText(text)&lt;br/&gt;win32clipboard.CloseClipboard()&lt;br/&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/5785719761833529412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/5785719761833529412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/5785719761833529412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/5785719761833529412'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/05/tips-python-copying-text-in-clipboard.html' title='TIPS: Python: Copying text in Clipboard using Python'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-8911109623250045710</id><published>2010-05-08T06:17:00.000+05:30</published><updated>2010-07-25T08:35:43.236+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="compile"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="wxwidgets"/><title type='text'>TIPS: Issues while compiling WXWidgets</title><content type='html'>If you have msys installed &amp;amp; added to the path then WxWidgets failes to compile and you will get the error which starts as follows&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;if not exist gcc_mswd mkdir gcc_mswd&lt;/p&gt;&lt;br/&gt;The easiest solution to resolve is in the command prompt remove all the path folders except windows &amp;amp; mingw paths and then try to recompile in the same command window.</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/8911109623250045710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/8911109623250045710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8911109623250045710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8911109623250045710'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/05/tips-issues-while-compiling-wxwidgets.html' title='TIPS: Issues while compiling WXWidgets'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-6463044934705935939</id><published>2010-05-06T13:47:00.000+05:30</published><updated>2010-07-25T08:40:24.675+05:30</updated><title type='text'>TIPS: Most Important Calls From The RunDll32.exe &amp;amp; Shell32.Dll ...</title><content type='html'>&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt; Most Important Calls From The RunDll32.exe &amp;amp; Shell32.Dll ...&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td&gt;RUNDLL32.EXE shell32,SHFormatDrive&#39;,sw_normal&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Module&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Command&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Result&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;main.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL main.cpl @2&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Printers Folder (including Add Printer&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL main.cpl @3&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Fonts Folder in Explorer view&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL main.cpl @&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays Power Management Properties&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Modem.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL modem.cpl,,add&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Runs the Add New Modem wizard&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Mmsys.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Multimedia/Audio property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,1&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Multimedia/Video property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Multimedia/MIDI property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLLmmsys.cpl,,3&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Multimedia/CD Music property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,4&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Multimedia/Advanced property pag&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl @1&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Sound Properties page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Netcpl.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Networks properties, Configuration tab&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Odbccp32.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL odbccp32.cpl&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the ODBC32 Data Source Administrator propertie&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Shell32.dll&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,OpenAs_RunDLL {drive:\path\filename}&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the application/file &quot;Open With&quot; dialog&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Password.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL password.cpl&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Passwords properties, Change Passwords tab&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Powercfg.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Power Management properties, Power Schemes tab&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Intl.cpl&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Regional Settings property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Numbers property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Currency property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Time property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;displays the Date property page&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;b&gt;Divers&lt;/b&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE rnaui.dll,RnaWizard&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Dial-Up Network connection wizard&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE shell,shellexecute&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Open Explorer window&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;sysdm.cpl,InstallDevice_Rundll&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Hardware Installation wizard&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,cascadechildwindows&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Cascade all windows&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,MessageBeep&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;default beep sound&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,repaintscreen&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;same as F5 in an Explorer window&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,setcursorpos&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;cursor is set to the upper left&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,SwapMouseButton&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;swapping mouse buttons&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,tilechildwindows&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Tile all windows&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,wnetconnectdialog&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Map Network drive&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,wnetdisconnectdialog&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Unmap Network drive&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,ExitWindows&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Exit Windows&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE user,ExitWindowsExec&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Restart Windows&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE rnaserv,CallerAccess&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;start Dial-Up Server&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE shell32,Control_RunDLL&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;start Control Panel&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE shell32,Control_RunDLL X&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;&quot;X&quot; = any CPL filename&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE shell32,OpenAs_RunDLL&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;&quot;Open with&quot; dialog box&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE shell32,ShellAboutA&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;About in an Explorer window&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE shell32,SHExitWindowsEx X&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Exit Windows, where these values apply for X:&lt;br /&gt;
1: Exit Windows&lt;br /&gt;
2: Reboot PC&lt;br /&gt;
4: Close all applications&lt;br /&gt;
8: Exit Win and turn-off ATX-compatible PC&lt;br /&gt;
0: Restart Windows shell&lt;br /&gt;
-1: Restart Explorer&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL32.EXE shell32,SHFormatDrive&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;&quot;Format Disk&quot; dialog box&lt;/td&gt; &lt;/tr&gt;
&lt;tr&gt; &lt;td valign=&quot;top&quot;&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;RUNDLL.EXE krnl386.exe,exitkernel&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt;Exit Windows without prompting&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/6463044934705935939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/6463044934705935939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6463044934705935939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6463044934705935939'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/05/tips-most-important-calls-from.html' title='TIPS: Most Important Calls From The RunDll32.exe &amp;amp; Shell32.Dll ...'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-1651097714163152465</id><published>2010-04-21T21:54:00.000+05:30</published><updated>2010-07-25T08:35:43.242+05:30</updated><title type='text'>Tips: Few links to Inkscape tutorials.</title><content type='html'>&lt;a href=&quot;http://verysimpledesigns.com/vectors/&quot;&gt;http://verysimpledesigns.com/vectors/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://screencasters.heathenx.org/&quot;&gt;http://screencasters.heathenx.org/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://screencasters.heathenx.org/wp-content/videos/&quot;&gt;http://screencasters.heathenx.org/wp-content/videos/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://howto.nicubunu.ro/&quot;&gt;http://howto.nicubunu.ro/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://www.microugly.com/inkscape-quickguide/&quot;&gt;http://www.microugly.com/inkscape-quickguide/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://inkscapetutorials.wordpress.com&quot;&gt;http://inkscapetutorials.wordpress.com&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://nicubunu.blogspot.com/&quot;&gt;http://nicubunu.blogspot.com/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://www.trazoi.net/tutorials/inkscape&quot;&gt;http://www.trazoi.net/tutorials/inkscape&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://www.ioncannon.net/utilities/123/10-tips-for-creating-good-looking-diagrams-using-inkscape&quot;&gt;http://www.ioncannon.net/utilities/123/10-tips-for-creating-good-looking-diagrams-using-inkscape&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://www.starfishwebconsulting.co.uk/articles/inkscape-tastic-icons?/tasty_icons&quot;&gt;http://www.starfishwebconsulting.co.uk/articles/inkscape-tastic-icons?/tasty_icons&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://aqeeliz.com/2007/03/12/inkscape-tutorial-reflection/&quot;&gt;http://aqeeliz.com/2007/03/12/inkscape-tutorial-reflection/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/1651097714163152465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/1651097714163152465' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1651097714163152465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1651097714163152465'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/04/tips-few-links-to-inkscape-tutorials.html' title='Tips: Few links to Inkscape tutorials.'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-5831575498120329968</id><published>2010-04-21T07:53:00.000+05:30</published><updated>2010-07-25T08:35:43.244+05:30</updated><title type='text'>Sorry for the spam.</title><content type='html'>Hello ,&lt;br/&gt;&lt;br/&gt;Two days back some one hacked my funmayank@yahoo.co.in email id and sent the spam related to dell website. I have since then changed the password. I am sorry for the inconvenience caused due to that email.&lt;br/&gt;&lt;br/&gt;Thanks for understanding&lt;br/&gt;&lt;br/&gt;Thanks and Regards&lt;br/&gt;Mayank Johri</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/5831575498120329968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/5831575498120329968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/5831575498120329968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/5831575498120329968'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/04/sorry-for-spam.html' title='Sorry for the spam.'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-8870599489233918302</id><published>2010-04-09T18:47:00.000+05:30</published><updated>2010-07-25T08:35:43.245+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="wx"/><title type='text'>Tips: wx.Python: Animated Gif in</title><content type='html'>import wx&lt;br/&gt;&lt;br/&gt;import wx.animate     # ..\wx\animate.py&lt;br/&gt;&lt;br/&gt;class MyPanel(wx.Panel):&lt;br/&gt;&lt;br/&gt;&quot;&quot;&quot; class MyPanel creates a panel, inherits wx.Panel &quot;&quot;&quot;&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;def __init__(self, parent=None):&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;wx.Panel.__init__(self, parent)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;self.SetBackgroundColour(&quot;white&quot;)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;ag_fname = r&quot;progress.gif&quot;&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;self.ag = wx.animate.GIFAnimationCtrl(self, -1, ag_fname, pos=(0, 0), size=(64,64))&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;self.ag.GetPlayer().UseBackgroundColour(True)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;self.ag.Play()&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;#self.ag.Stop()&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:60px;&quot;&gt;&lt;/p&gt;&lt;br/&gt;if __name__ == &#39;__main__&#39;:&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;app = wx.App(redirect = 0)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;frame = MyPanel(None)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;frame.Show(True)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;app.SetTopWindow(frame)&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;app.MainLoop()&lt;/p&gt;&lt;br/&gt;&lt;p style=&quot;padding-left:30px;&quot;&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/8870599489233918302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/8870599489233918302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8870599489233918302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/8870599489233918302'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/04/tips-wxpython-animated-gif-in.html' title='Tips: wx.Python: Animated Gif in'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-6046810709391351893</id><published>2010-03-26T21:43:00.000+05:30</published><updated>2010-07-25T08:35:43.246+05:30</updated><title type='text'>Tips: Python: Switch in Python</title><content type='html'>################################################################&lt;br/&gt;&lt;br/&gt;# There is no &#39;Switch&#39; statement in Python, but we can use the following example to simulate switch case.&lt;br/&gt;&lt;br/&gt;# We can use dictionary in python to simulate the switch case&lt;br/&gt;&lt;br/&gt;################################################################&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;def&lt;/strong&gt; f1&lt;strong&gt;():&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;print(&lt;/strong&gt;&amp;quot;Hello f1&amp;quot;&lt;strong&gt;)&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;def&lt;/strong&gt; f2&lt;strong&gt;():&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;print(&lt;/strong&gt;&amp;quot;Hello f2&amp;quot;&lt;strong&gt;)&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;funcdict &lt;strong&gt;=&lt;/strong&gt; &lt;strong&gt;{&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;0&lt;strong&gt;:&lt;/strong&gt; f1&lt;strong&gt;,&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;1&lt;strong&gt;:&lt;/strong&gt; f2&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;selection &lt;strong&gt;=&lt;/strong&gt; 1&lt;br/&gt;&lt;br/&gt;funcdict&lt;strong&gt;.&lt;/strong&gt;get&lt;strong&gt;(&lt;/strong&gt;selection&lt;strong&gt;)()&lt;/strong&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/6046810709391351893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/6046810709391351893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6046810709391351893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6046810709391351893'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/03/tips-python-switch-in-python_26.html' title='Tips: Python: Switch in Python'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-599792868928898457</id><published>2010-03-26T19:57:00.000+05:30</published><updated>2010-07-25T08:35:43.248+05:30</updated><title type='text'>Tips: Python: Switch in Python</title><content type='html'>################################################################&lt;br/&gt;&lt;br/&gt;# There is no &#39;Switch&#39; statement in Python, but we can use the following example to simulate switch case.&lt;br/&gt;&lt;br/&gt;# We can use dictionary in python to simulate the switch case&lt;br/&gt;&lt;br/&gt;################################################################&lt;br/&gt;&lt;br/&gt;def f1():&lt;br/&gt;&lt;br/&gt;print(&amp;quot;Hello f1&amp;quot;)&lt;br/&gt;&lt;br/&gt;def f2():&lt;br/&gt;&lt;br/&gt;print(&amp;quot;Hello f2&amp;quot;)&lt;br/&gt;&lt;br/&gt;funcdict = {&lt;br/&gt;&lt;br/&gt;0: f1,&lt;br/&gt;&lt;br/&gt;1: f2&lt;br/&gt;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;selection = 1&lt;br/&gt;&lt;br/&gt;funcdict.get(selection)()</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/599792868928898457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/599792868928898457' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/599792868928898457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/599792868928898457'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/03/tips-python-switch-in-python.html' title='Tips: Python: Switch in Python'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-1554170629389116220</id><published>2010-03-09T17:56:00.000+05:30</published><updated>2010-07-25T08:35:43.250+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Tips: Python: How to get the full username in Windows</title><content type='html'>&lt;div&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;import w&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;in32com,win32com.client,pythoncom&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;sDomain =&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&quot;ES&quot;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;em&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;sUser =&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&quot;&lt;span style=&quot;text-decoration:underline;&quot;&gt;johrim&lt;/span&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;em&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;s&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;ADSPath= sDomain + sUser&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;oUser=win32com.client.GetObject(&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#00aa00;font-size:x-small;&quot;&gt;&quot;WinNT://%s,user&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt; % sADSPath )&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;em&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;print (&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;em&gt;&lt;span style=&quot;color:#0000ff;font-size:x-small;&quot;&gt;&lt;span style=&quot;font-size:x-small;&quot;&gt;oUser.FullName)&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/1554170629389116220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/1554170629389116220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1554170629389116220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1554170629389116220'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/03/tips-python-how-to-get-full-username-in.html' title='Tips: Python: How to get the full username in Windows'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-4792103506268722920</id><published>2010-03-08T20:46:00.000+05:30</published><updated>2010-07-25T08:35:43.252+05:30</updated><title type='text'>Tips: VBScript: Get Full NT User Name using VBScript</title><content type='html'>Set oNetwork = CreateObject(&quot;WScript.Network&quot;)&lt;br/&gt;sDomain = &quot;test&quot;&lt;br/&gt;sUser = &quot;johri&quot;&lt;br/&gt;sADSPath= sDomain &amp;amp; &quot;/&quot; &amp;amp; sUser&lt;br/&gt;Set oUser = GetObject(&quot;WinNT://&quot; &amp;amp; sADSPath &amp;amp; &quot;,user&quot;)&lt;br/&gt;WScript.Echo oUser.FullName</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/4792103506268722920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/4792103506268722920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4792103506268722920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/4792103506268722920'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/03/tips-vbscript-get-full-nt-user-name.html' title='Tips: VBScript: Get Full NT User Name using VBScript'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-1534429289352130548</id><published>2010-03-06T09:21:00.000+05:30</published><updated>2010-07-25T08:35:43.254+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><category scheme="http://www.blogger.com/atom/ns#" term="wxformbuilder"/><category scheme="http://www.blogger.com/atom/ns#" term="wxpython"/><title type='text'>Tips: Python : wxFormBuilder v3.1.67-beta (Febuary 18, 2010) Python&#xa;Update</title><content type='html'>Latest version of wxFormBuilder does not support wxAdditions fully, thus I have updated few XML files to support FlatNotebook &amp;amp; wx.propgrid widgets.&lt;br/&gt;&lt;ol&gt;&lt;br/&gt;	&lt;li&gt;Download wx.propgrid and install it.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Download the &lt;a title=&quot;XML.Zip&quot; href=&quot;http://uploading.com/files/a78a8c45/xml.zip/&quot; target=&quot;_blank&quot;&gt;XML.Zip&lt;/a&gt; folder and extract it in plugins\wxAdditions\xml folder.&lt;/li&gt;&lt;br/&gt;	&lt;li&gt;Restart the wxformbuilder.&lt;/li&gt;&lt;br/&gt;&lt;/ol&gt;&lt;br/&gt;I did not tried to update these files for other widgets but it should be similar.</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/1534429289352130548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/1534429289352130548' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1534429289352130548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/1534429289352130548'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/03/tips-python-wxformbuilder-v3167-beta.html' title='Tips: Python : wxFormBuilder v3.1.67-beta (Febuary 18, 2010) Python&#xa;Update'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-3924651545238049880</id><published>2010-02-25T09:55:00.000+05:30</published><updated>2010-07-25T08:35:43.258+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="avi"/><category scheme="http://www.blogger.com/atom/ns#" term="ffmpeg"/><category scheme="http://www.blogger.com/atom/ns#" term="mov"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>Tips: Video: convert mov to avi file using ffmpeg</title><content type='html'>Use the following command to convert .mov file to .avi file.&lt;br/&gt;&lt;blockquote&gt;ffmpeg -i file-name.mov -g 60 -vcodec msmpeg4v2  -acodec pcm_u8 -f avi file-name.avi&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/3924651545238049880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/3924651545238049880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/3924651545238049880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/3924651545238049880'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/02/tips-video-convert-mov-to-avi-file.html' title='Tips: Video: convert mov to avi file using ffmpeg'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-868679675076553456.post-6590695636637002401</id><published>2010-02-19T17:58:00.000+05:30</published><updated>2010-07-25T08:35:43.260+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Development"/><category scheme="http://www.blogger.com/atom/ns#" term="Installation"/><category scheme="http://www.blogger.com/atom/ns#" term="MSI"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="Tips"/><title type='text'>Tips: MSI: Save differences between two msi as MST file using ruby &amp;amp;&#xa;python</title><content type='html'>&lt;strong&gt;&lt;span style=&quot;color:#993300;&quot;&gt;Ruby&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;span style=&quot;color:#000080;&quot;&gt;require &#39;win32ole&#39;&lt;br/&gt;msiClass = WIN32OLE.new(&quot;WindowsInstaller.Installer&quot;)&lt;br/&gt;msidb = msiClass.OpenDatabase(&quot;C:\\temp\\MountPointGenerator.msi&quot;,0)&lt;br/&gt;newmsidb = msiClass.OpenDatabase(&quot;C:\\temp\\updatedMountPointGenerator.msi&quot;,0)&lt;br/&gt;transform = newmsidb.GenerateTransform(msidb,&quot;c:\\temp\\newtest.mst&quot;)&lt;/span&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;strong&gt;&lt;span style=&quot;color:#993300;&quot;&gt;Python&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;&lt;blockquote&gt;&lt;span style=&quot;color:#008080;&quot;&gt;import win32com.client&lt;br/&gt;import os&lt;br/&gt;import sys&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color:#008080;&quot;&gt;msiOpenDatabaseModeReadOnly=0&lt;br/&gt;msidb=r&quot;c:\temp\MountPointGenerator.msi&quot;&lt;br/&gt;msiupdb=r&quot;c:\temp\updatedMountPointGenerator.msi&quot;&lt;br/&gt;mstdb=r&quot;C:\temp\MNPtrans.mst&quot;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span style=&quot;color:#008080;&quot;&gt;installer = win32com.client.Dispatch(&quot;WindowsInstaller.Installer&quot;)&lt;br/&gt;database = installer.OpenDatabase(msidb, msiOpenDatabaseModeReadOnly)&lt;br/&gt;updatedDB= installer.OpenDatabase(msiupdb , msiOpenDatabaseModeReadOnly)&lt;br/&gt;updatedDB.GenerateTransform(database, mstdb)&lt;/span&gt;&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://mayankjohri.blogspot.com/feeds/6590695636637002401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/868679675076553456/6590695636637002401' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6590695636637002401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/868679675076553456/posts/default/6590695636637002401'/><link rel='alternate' type='text/html' href='http://mayankjohri.blogspot.com/2010/02/tips-msi-save-differences-between-two.html' title='Tips: MSI: Save differences between two msi as MST file using ruby &amp;amp;&#xa;python'/><author><name>Mayank Johri</name><uri>http://www.blogger.com/profile/16719044066108522085</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>