按键精灵PC版代码示例
<p>将以下代码复制到脚本代码的顶部,替换<code>CooCheckUrl</code>为你的面板API地址。<code>CooCheckCode</code>保存控制器code,控制器code通常由用户提供。</p>
<pre><code class="language-vb">DimEnv CooCheckUrl, CooCheckCode, CooCheckJson
//面板API
CooCheckUrl = &quot;http://api.coocheck.com/check?panel=pn-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx&amp;code=&quot;
//控制器code,通常由用户输入提供
CooCheckCode = &quot;cxxxxxx&quot;
//API返回的数据
CooCheckJson = &quot;{}&quot;
//拉取远程参数数据到变量CooCheckJson。需要注意:远程参数有缓存,缓存失效后才能拿到用户填写的最新参数。
Function LoadCooCheck()
ApiUrl = CooCheckUrl &amp; CooCheckCode &amp; &quot;&amp;type=json&quot;
Set objXML = CreateObject(&quot;Microsoft.XMLHTTP&quot;)
objXML.Open &quot;Get&quot;, ApiUrl, False
objXML.send
//TracePrint &quot;CooCheck API 网址:&quot; &amp; ApiUrl
//TracePrint &quot;CooCheck API 返回:&quot; &amp; objXML.responseText
CooCheckJson = objXML.responseText
Set objXML = Nothing
End Function
//读取远程参数key的值,如果key不存在则返回defValue
Function CooCheck(key, defValue)
Set jsonData = CreateObject(&quot;MSScriptControl.ScriptControl&quot;)
jsonData.Language = &quot;JScript&quot;
jsonData.AddCode &quot;var data = &quot; &amp; CooCheckJson &amp; &quot;;&quot;
If jsonData.Eval(&quot;data.&quot; &amp; key &amp; &quot; !== undefined&quot;) Then
CooCheck = jsonData.Eval(&quot;data.&quot; &amp; key)
Else
CooCheck = defValue
End If
Set jsonData = Nothing
End Function</code></pre>
<p>拉取远程参数时,通过<code>Call LoadCooCheck()</code>方式,远程参数数据会保存到变量CooCheckJson。
读取远程参数时,通过<code>CooCheck(key, defValue)</code>方式读取指定key的参数;特殊情况下我们会担心指定key的参数获取失败而影响脚本运行,比如发布新面板时候不慎删除某个有用的key,而defValue参数的作用是发现key参数不存在时,以defValue值作为参数值返回。</p>
<pre><code class="language-vb">//返回key为submited_at的参数值,如果不存在该参数,则返回0
TracePrint &quot;submited_at : &quot; &amp; CooCheck(&quot;submited_at&quot;, 0)
//返回key为key1的参数值,如果不存在该参数,则返回123
TracePrint &quot;key1 : &quot; &amp; CooCheck(&quot;key1&quot;, 123)</code></pre>
<p>如果脚本有界面,希望获取到的新参数同步修改界面,可以把新参数回写到界面。
例如,窗口Form1有一个名为InputBox1的输入框,希望该输入框的内容与远程参数key1参数同步。</p>
<pre><code class="language-vb">//返回key为key1的参数值,如果不存在该参数,则返回 Form1.InputBox1.Text 的内容
//最终返回的内容又更新到 Form1.InputBox1.Text
Form1.InputBox1.Text = CooCheck(&quot;key1&quot;, Form1.InputBox1.Text)</code></pre>