簡體   English   中英

VB.NET應用程序中的JavaScript

[英]JavaScript in VB.NET Application

我目前正在開發一個VB.NET應用程序,以優化工作流程並使之自動化。

部分工作是從我們的Intranet下載.pdf文件。 為此,我們使用腳本和CPAU.exe(下面的腳本)打開IE。
然后,我們用“ ITEM”號填寫表格並下載pdf。
Intranet站點然后運行JavaScript以獲取文件。

當前,我通過使用CPAU腳本打開一個新的IE任務,用Document.GetElementByName填寫表單,單擊下載鏈接並使用FindWindowEx打開文件來完成此任務。 但是這種方式不是很可靠,並且可能使用戶感到困惑,因為IE窗口可見1-2秒。 然后下載看不見的文件等。

現在,對於我的應用程序,我想實現JavaScript並直接下載/打開.pdf文件。

這可能嗎,或者還有另一種方法可以做到這一點?
也許使用WebBrowser.InvokeScript Method

信息:
填寫“ ITEM”編號的元素名稱:

ctl00$ContentPlaceHolderTitle$tbNumber

用於搜索文件的按鈕:

ctl00$ContentPlaceHolderTitle$btnFind

如果找到文件,則下載鏈接(ID):

ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1_repeaterSearchResults_ctl01_lbRevision1

HTML代碼內部網站:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="ctl00_Head1"> <link href="css/style.css" rel="Stylesheet" type="text/css" /><link href="/DataExchange/WebResource.axd?d=oqKxFu2-Kkwmw84aF_jPsbV8vFkmrbO8RmdO-H9m1LRPwhTvrLG5TvYvmWJy59oLT5QxSY88zL2KfuVPFlCGLO0TDMUof8iBU9lF5bgeBtjL6fOev_rt0sskhZ9XbiCAQ7WJoSkJRjknXjWqGADHyQ2&amp;t=635719611620000000" type="text/css" rel="stylesheet" /><title> Data Exchange V3.0.1.18 </title></head> <body> <form name="aspnetForm" method="post" action="./" id="aspnetForm"> <div> <input type="hidden" name="ctl00_ScriptManager_HiddenField" id="ctl00_ScriptManager_HiddenField" value="" /> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" /> <input type="hidden" name="ctl00_ContentPlaceHolderMain_tabQueries_ClientState" id="ctl00_ContentPlaceHolderMain_tabQueries_ClientState" value="{&quot;ActiveTabIndex&quot;:0,&quot;TabState&quot;:[true,true,true,true]}" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="//7dd04nySzwJ/EyXxJp1Ah2lHDjTXtQ==" /> </div> <script type="text/javascript"> //<![CDATA[ var theForm = document.forms['aspnetForm']; if (!theForm) { theForm = document.aspnetForm; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } //]]> </script> <script src="/DataExchange/WebResource.axd?d=nweBekBjvlBlgfpRmpksATBVdPd9galW18Hn5KPg2mZmjXOWJjdVXyecgyl1cBzgzTNVMBo5S7Jb0xCFVSy8pR3WgUpx20UaenBfvSw-cqw1&amp;t=636396482620000000" type="text/javascript"></script> <script src="/DataExchange/ScriptResource.axd?d=tLddprAqVo7MnXPWJZ2MI800-sQ61LqVl5ZA5iCWdHkFyOQRDRcMS8MnC7cJt8MwXYKGfXsbgdIPTzvWVczshIOqheggkHH449sgjNgc5fiWLJ1GD8j9YZguNMbD_8TxGJ0gxMwaaOdnP172DSU0CEPMJNFnmAdxaenr1uvBGY6nu9iD4amOqwKRdeUAnR640&amp;t=ffffffffd5bd3df4" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.'); //]]> </script> <script src="/DataExchange/ScriptResource.axd?d=KfphglXbV8kw1oLp3TEodoD6y_0bVEVYkKPagVyYfncZd2TnEvAWXaSDoe9FUQCo8h12LjeYYsQR5khbsILUkGTOg3GfODDdFimzFlF1t5JidBQ3y_vyRNOCJr9l4v89mtUE_RY1Wd-qDVZBkVUvLqfKCjGUi0ZPk-zL0kHTHwtUHd71568WOLlbJG9-gTNp0&amp;t=ffffffffd5bd3df4" type="text/javascript"></script> <script src="/dataexchange/default.aspx?_TSM_HiddenField_=ctl00_ScriptManager_HiddenField&amp;_TSM_CombinedScripts_=%3b%3bAjaxControlToolkit%2c+Version%3d3.0.20820.16776%2c+Culture%3dneutral%2c+PublicKeyToken%3d28f01b0e84b6d53e%3aen-US%3af5fccc97-14d6-483a-9f55-6aa6527d86a1%3ae2e86ef9%3a1df13a87%3aee0a475d%3ac4c00916" type="text/javascript"></script> <div> <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="9948C718" /> </div> <script type="text/javascript"> //<![CDATA[ Sys.WebForms.PageRequestManager._initialize('ctl00$ScriptManager', 'aspnetForm', ['tctl00$ContentPlaceHolderTitle$update1','','tctl00$ContentPlaceHolderMain$UpdatePanel2',''], [], [], 90, 'ctl00'); //]]> </script> <script type="text/javascript" language="javascript"> var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_initializeRequest(InitializeRequest); prm.add_endRequest(EndRequest); function InitializeRequest(sender, args) { $get('content').style.cursor = 'wait'; $get('headershadow').style.cursor = 'wait'; document.body.style.cursor = 'wait'; // try { $get(args._postBackElement.id).disabled = true; // } catch (err) { // // do nothing // } } function EndRequest(sender, args) { $get('content').style.cursor = 'auto'; $get('headershadow').style.cursor = 'auto'; document.body.style.cursor = 'default'; // try { $get(sender._postBackSettings.sourceElement.id).disabled = false; // } catch (err) { // // do nothing // } } </script> <div id="header"> <div id="logo"> <img alt="" id="huskylogo" src="images/HuskyLogo.png" style="border-style: none; border-color: inherit; border-width: medium;" /> </div> <div id="menu"> <span id="ctl00_lblTitle" style="color:Black;font-size:X-Large;font-weight:normal;">Husky Data Exchange</span> </div> </div> <div id="headershadow"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="100%" valign="bottom" style="background: url(images/banner11.png) repeat-x"> <div id="ctl00_ContentPlaceHolderTitle_update1"> <table style="width: 100%"> <tr> <td style="height: 30px; width: 75%"> <span id="ctl00_ContentPlaceHolderTitle_lbItemProject" style="font-weight:normal;">Item #:</span> <input name="ctl00$ContentPlaceHolderTitle$tbNumber" type="text" id="ctl00_ContentPlaceHolderTitle_tbNumber" style="width:125px;" /> <input type="submit" name="ctl00$ContentPlaceHolderTitle$btnFind" value="Find" id="ctl00_ContentPlaceHolderTitle_btnFind" /> <span title="Retrieve only the latest released revision"><label for="ctl00_ContentPlaceHolderTitle_cbLatest"> Latest:</label><input id="ctl00_ContentPlaceHolderTitle_cbLatest" type="checkbox" name="ctl00$ContentPlaceHolderTitle$cbLatest" checked="checked" onclick="javascript:setTimeout(&#39;__doPostBack(\\&#39;ctl00$ContentPlaceHolderTitle$cbLatest\\&#39;,\\&#39;\\&#39;)&#39;, 0)" /></span> <input type="image" name="ctl00$ContentPlaceHolderTitle$ibWorld" id="ctl00_ContentPlaceHolderTitle_ibWorld" title="Click to home change site" src="images/world.jpg" style="width:21px;border-width:0px;" /> </td> <td align="center"> <span id="ctl00_ContentPlaceHolderTitle_lblPrinters">Milton Printers</span> <select name="ctl00$ContentPlaceHolderTitle$ddlPrinters" id="ctl00_ContentPlaceHolderTitle_ddlPrinters"> <option selected="selected" value="mpr021">mpr021</option> <option value="mpr026">mpr026</option> <option value="mpr037">mpr037</option> <option value="mpr047">mpr047</option> <option value="mpr056">mpr056</option> <option value="mpr058">mpr058</option> <option value="mpr059">mpr059</option> <option value="mpr061">mpr061</option> <option value="mpr064">mpr064</option> <option value="KTempPrint">KTempPrint</option> </select> </td> </tr> <tr> <td style="height: 30px" align="center" colspan="2"> <span id="ctl00_ContentPlaceHolderTitle_lblWarningMsg" style="color:Red;font-weight:bold;"></span> </td> </tr> </table> </div> </td> </tr> </table> </div> <div id="content"> <div> </div> <div id="ctl00_ContentPlaceHolderMain_UpdatePanel2"> <table id="TabTable" style="border-top-style: none; border-right-style: none; border-left-style: none; border-bottom-style: none" align="left" width="100%"> <tr> <td align="left" style="width: 75%" valign="top"> &nbsp; <div id="ctl00_ContentPlaceHolderMain_tabQueries" class="ajax__tab_xp" style="border-style:None;width:100%;visibility:hidden;"> <div id="ctl00_ContentPlaceHolderMain_tabQueries_header"> <span id="__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1"> <span id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1_lbDrawing">Drawing Query</span> </span><span id="__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel2"> <span id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel2_lbProject">Project Query</span> </span><span id="__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel3"> <span id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel3_lbManufacturinData">Manufacturing Data</span> </span><span id="__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel4"> PTP Times </span> </div><div id="ctl00_ContentPlaceHolderMain_tabQueries_body"> <div id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1" style="display:none;visibility:hidden;"> <br /> <table id="dummyTableNEEDED2KeepRepeaterWorkingWithTabControl" style="border-style: none"> <tr> <td> </td> </tr> </table> <br /> </div><div id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel2" style="display:none;visibility:hidden;"> <table width="100%" style="border-style: none"> <tr> <td valign="top"> <span id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel2_lblProjectNo"></span> <div> </div> </td> </tr> </table> </div><div id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel3" style="display:none;visibility:hidden;"> <table width="100%" style="border-style: none"> <tr> <td valign="top"> </td> <td align="center"> </td> </tr> </table> </div><div id="ctl00_ContentPlaceHolderMain_tabQueries_TabPanel4" style="display:none;visibility:hidden;"> <table width="100%" style="border-style: none"> <tr> <td> <td align="center"> </td> </tr> </table> </div> </div> </div> <span id="ctl00_ContentPlaceHolderMain_lblQueryTime"></span> </td> <td align="right" valign="top"> &nbsp; <table id="ctl00_ContentPlaceHolderMain_tblDatalist" border="1" cellpadding="1" cellspacing="1" class="clsHeader" width="150" style="border-color: black; height: 280px; text-align: center"> <tr> <th style="height: 21px"> Data List: </th> </tr> <tr class="clsField"> <th> Your Revisions </th> </tr> <tr class="clsRecord"> <td style="border-bottom-style: none; height: 120px" valign="top" align="center"> <select size="6" name="ctl00$ContentPlaceHolderMain$lbDataListItems" id="ctl00_ContentPlaceHolderMain_lbDataListItems" style="height:110px;width:125px;"> </select> </td> </tr> <tr> <td style="border-top-style: none; background-color: window;" align="center"> <input type="image" name="ctl00$ContentPlaceHolderMain$ibDelete" id="ctl00_ContentPlaceHolderMain_ibDelete" src="images/delete.JPG" style="border-width:0px;" /> <input type="image" name="ctl00$ContentPlaceHolderMain$ibDeleteAll" id="ctl00_ContentPlaceHolderMain_ibDeleteAll" src="images/delete_all.JPG" style="border-width:0px;" /> </td> </tr> <tr class="clsRecord"> <td style="border-bottom-style: none"> <input type="submit" name="ctl00$ContentPlaceHolderMain$btnEmailAll" value="E-Mail All Revisions" id="ctl00_ContentPlaceHolderMain_btnEmailAll" disabled="disabled" style="width:150px;" /> </td> </tr> <tr> <td align="center" style="border-top-style: none; vertical-align: top; background-color: #ffffff;"> <span id="ctl00_ContentPlaceHolderMain_lblQty">Qty:</span> <select name="ctl00$ContentPlaceHolderMain$ddlQty" onchange="javascript:setTimeout(&#39;__doPostBack(\\&#39;ctl00$ContentPlaceHolderMain$ddlQty\\&#39;,\\&#39;\\&#39;)&#39;, 0)" id="ctl00_ContentPlaceHolderMain_ddlQty"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> <input type="submit" name="ctl00$ContentPlaceHolderMain$btnPrintAll" value="Print All" id="ctl00_ContentPlaceHolderMain_btnPrintAll" disabled="disabled" style="width:80px;" /> </td> </tr> </table> </td> </tr> </table> </div> </div> <div id="footer"> <p> <span class="FieldHeader">Contact <a href="mailto:+Helpdesk">+Helpdesk</a> with any technical issues.</span> <br /> &copy; 2012 Husky Injection Molding Systems. </p> </div> <script type="text/javascript"> //<![CDATA[ Sys.Application.add_init(function() { $create(AjaxControlToolkit.TabPanel, {"headerTab":$get("__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1")}, null, {"owner":"ctl00_ContentPlaceHolderMain_tabQueries"}, $get("ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1")); }); Sys.Application.add_init(function() { $create(AjaxControlToolkit.TabPanel, {"headerTab":$get("__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel2")}, null, {"owner":"ctl00_ContentPlaceHolderMain_tabQueries"}, $get("ctl00_ContentPlaceHolderMain_tabQueries_TabPanel2")); }); Sys.Application.add_init(function() { $create(AjaxControlToolkit.TabPanel, {"headerTab":$get("__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel3")}, null, {"owner":"ctl00_ContentPlaceHolderMain_tabQueries"}, $get("ctl00_ContentPlaceHolderMain_tabQueries_TabPanel3")); }); Sys.Application.add_init(function() { $create(AjaxControlToolkit.TabPanel, {"headerTab":$get("__tab_ctl00_ContentPlaceHolderMain_tabQueries_TabPanel4")}, null, {"owner":"ctl00_ContentPlaceHolderMain_tabQueries"}, $get("ctl00_ContentPlaceHolderMain_tabQueries_TabPanel4")); }); Sys.Application.add_init(function() { $create(AjaxControlToolkit.TabContainer, {"activeTabIndex":0,"autoPostBackId":"ctl00$ContentPlaceHolderMain$tabQueries","clientStateField":$get("ctl00_ContentPlaceHolderMain_tabQueries_ClientState")}, null, null, $get("ctl00_ContentPlaceHolderMain_tabQueries")); }); //]]> </script> </form> </body> </html> 

CPAU腳本:

c:
cd Manufacturingdata
CPAU.exe -dec -file manufacturingdata.job -hide

提前致謝!

這將需要使用其他兩個答案中的信息。

要替換瀏覽器交互,您可以以編程方式創建POST請求,如如何發出HTTP POST Web請求中所示

由於您還需要通過請求進行NTLM身份驗證,因此需要將“發出Web請求 ”信息添加到需要Windows身份驗證的網頁中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM