I'm currently developing a VB.NET application at work to optimize and kind of automate the work process.
Part of the job is downloading a .pdf file from our intranet.
For this, we open the IE with a script and CPAU.exe (script below)
Then we fill a form with a "ITEM" number and download the pdf.
The intranet site then runs JavaScript to get the file.
Currently, I am doing this by opening a new IE task with the CPAU script, filling the form with Document.GetElementByName
, clicking on the download link and open the file with FindWindowEx
.
But this way, is not very reliable and might be confusing for users because the IE window is visible for 1-2sec. and then downloading the file while not visible etc.
Now for my application, I want to implement the JavaScript and directly download/open the .pdf file.
Is this possible or might there be another way to achieve this?
Maybe with WebBrowser.InvokeScript Method
?
INFO:
The name of the element to fill in the "ITEM" number:
ctl00$ContentPlaceHolderTitle$tbNumber
Button for searching the file:
ctl00$ContentPlaceHolderTitle$btnFind
Download link if file is found(ID):
ctl00_ContentPlaceHolderMain_tabQueries_TabPanel1_repeaterSearchResults_ctl01_lbRevision1
HTML Code Intranetsite:
<!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&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="{"ActiveTabIndex":0,"TabState":[true,true,true,true]}" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJMTQxMTkyMDk0D2QWAmYPZBYCAgEPZBYGAgMPDxYCHgRUZXh0BRNIdXNreSBEYXRhIEV4Y2hhbmdlZGQCBQ9kFgICAQ9kFgJmD2QWGAIBDw8WAh8ABQdJdGVtICM6ZGQCBQ8PFgIeB1Zpc2libGVoZGQCBw8PFgIfAWhkZAILDxAPFgIfAWdkZGRkAg0PEA8WAh8BaGRkZGQCEQ8PFgIfAAUDMjQwZGQCFQ8PFgIfAAUDQWxsZGQCFw8QZBAVFQAEQk8xVgJIQghtYXJrdXAxVghNQzE1MTNWMghNQzE1MTNWMwhNQzE1MTNWNAVNQ0QzVgVNQ0Q0VgVNQ0Q1VghNQ0QxODE2VglNQ0QyMDE4VjEGTUxSVDJWBk1MUlQzVgZNTFJUNFYFTU1DMlYET1IyVgRPUjNWBVY1NVYxBVlBUzFWBVlBUzJWFRUABEJPMVYCSEIIbWFya3VwMVYITUMxNTEzVjIITUMxNTEzVjMITUMxNTEzVjQFTUNEM1YFTUNENFYFTUNENVYITUNEMTgxNlYJTUNEMjAxOFYxBk1MUlQyVgZNTFJUM1YGTUxSVDRWBU1NQzJWBE9SMlYET1IzVgVWNTVWMQVZQVMxVgVZQVMyVhQrAxVnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cWAWZkAhsPDxYEHwAFD01pbHRvbiBQcmludGVycx8BZ2RkAh0PEA8WAh8BZ2QQFQoGbXByMDIxBm1wcjAyNgZtcHIwMzcGbXByMDQ3Bm1wcjA1NgZtcHIwNTgGbXByMDU5Bm1wcjA2MQZtcHIwNjQKS1RlbXBQcmludBUKBm1wcjAyMQZtcHIwMjYGbXByMDM3Bm1wcjA0NwZtcHIwNTYGbXByMDU4Bm1wcjA1OQZtcHIwNjEGbXByMDY0CktUZW1wUHJpbnQUKwMKZ2dnZ2dnZ2dnZxYBZmQCHw8PFgIfAGVkZAIjDxBkEBUFBkJvbHRvbgZNaWx0b24KTHV4ZW1ib3VyZwhTaGFuZ2hhaQdDaGVubmFpFQUDMDY1AzI0MAM0NjADODE4AzcyMBQrAwVnZ2dnZxYBAgFkAgcPZBYCAgEPZBYCZg9kFgYCAQ9kFgYCAQ9kFgICAQ9kFgICAw88KwARAgEQFgAWABYADBQrAABkAgIPZBYCAgEPZBYEAgEPPCsACwBkAgMPPCsACwBkAgMPZBYCAgEPZBYCAgEPPCsACwBkAgMPDxYCHwBlZGQCBQ8WAh8BZxYCAgUPZBYCZg9kFgICAw8QZA8WFGYCAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICExYUEAUBMQUBMWcQBQEyBQEyZxAFATMFATNnEAUBNAUBNGcQBQE1BQE1ZxAFATYFATZnEAUBNwUBN2cQBQE4BQE4ZxAFATkFATlnEAUCMTAFAjEwZxAFATEFATFnEAUBMgUBMmcQBQEzBQEzZxAFATQFATRnEAUBNQUBNWcQBQE2BQE2ZxAFATcFATdnEAUBOAUBOGcQBQE5BQE5ZxAFAjEwBQIxMGdkZBgDBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WBQUmY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyVGl0bGUkY2JMYXRlc3QFJWN0bDAwJENvbnRlbnRQbGFjZUhvbGRlclRpdGxlJGliV29ybGQFJ2N0bDAwJENvbnRlbnRQbGFjZUhvbGRlck1haW4kdGFiUXVlcmllcwUlY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyTWFpbiRpYkRlbGV0ZQUoY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyTWFpbiRpYkRlbGV0ZUFsbAUnY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyTWFpbiR0YWJRdWVyaWVzDw9kZmQFQGN0bDAwJENvbnRlbnRQbGFjZUhvbGRlck1haW4kdGFiUXVlcmllcyRUYWJQYW5lbDIkZ3ZQcm9qZWN0UXVlcnkPZ2SKfow5sXHeelH/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&t=636396482620000000" type="text/javascript"></script>
<script src="/DataExchange/ScriptResource.axd?d=tLddprAqVo7MnXPWJZ2MI800-sQ61LqVl5ZA5iCWdHkFyOQRDRcMS8MnC7cJt8MwXYKGfXsbgdIPTzvWVczshIOqheggkHH449sgjNgc5fiWLJ1GD8j9YZguNMbD_8TxGJ0gxMwaaOdnP172DSU0CEPMJNFnmAdxaenr1uvBGY6nu9iD4amOqwKRdeUAnR640&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&t=ffffffffd5bd3df4" type="text/javascript"></script>
<script src="/dataexchange/default.aspx?_TSM_HiddenField_=ctl00_ScriptManager_HiddenField&_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('__doPostBack(\'ctl00$ContentPlaceHolderTitle$cbLatest\',\'\')', 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">
<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">
<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('__doPostBack(\'ctl00$ContentPlaceHolderMain$ddlQty\',\'\')', 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 />
© 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 Script:
c:
cd Manufacturingdata
CPAU.exe -dec -file manufacturingdata.job -hide
Thanks in advance!