我正在尝试创建ActiveXObject(使用FieSystemObject)但它只在IE中支持.
有没有办法让它在Chrome或FF中运行?我需要读取特定给定文件夹中的所有文件,并列出这些文件.
那么,还有另一种方法吗?
我已经实现了这个脚本用于上传带有ajax的文件,它在浏览器以外的其他浏览器中工作得很完美,我注意到IE9不支持formData,更少,IE中的formData有什么替代品,我想用干净的javascript
function doObjUploadExplorer(url, lnk_id, file, progress, success, content, frm, div_dlg, start_func){
var file_input = null,
frm_data = new FormData(),
req;
try {
//firefox, chrome, safari etc
req = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer Browsers
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (document.getElementById(file)) {
file_input = document.getElementById(file);
for (var i = 0; i < file_input.files.length; ++i) {
frm_data.append(file, file_input.files[i]);
}
}
req.upload.addEventListener('progress', function(e) { //Event called while upload is in progress
if (progress !== undefined
&& e.lengthComputable) { …Run Code Online (Sandbox Code Playgroud) 我想弄清楚一个奇怪的情况.
我有一张有很多床单的工作簿.在一张纸上,我有一个ActiveX列表框(CTOverview.Listbox1).在第二张纸上,我总共有三个列表框(CTSelected.Listbox1到列表框3).我正在使用查询在两个工作表上填充具有相同数据的Listbox1.代码如下:
strSQL = "Select Distinct [Region] From [UniqueCTList$] Order by [Region]"
closeRS
OpenDB
' initialize listboxes
CTSelect.ListBox1.Clear
CTSelect.ListBox2.Clear
CTSelect.ListBox3.Clear
CTOverview.ListBox1.Clear
' initialize with entire division value
CTSelect.ListBox1.AddItem "Entire Division"
CTOverview.ListBox1.AddItem "Entire Division"
' initialize selected Tech
CTData.Range("CT_Selected") = ""
' populate listboxes using recordset
rs.Open strSQL, cnn, adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
Do While Not rs.EOF
CTOverview.ListBox1.AddItem rs.Fields(0)
CTSelect.ListBox1.AddItem rs.Fields(0)
rs.MoveNext
Loop
Else
MsgBox "I was not able to find any unique Regions.", vbCritical + vbOKOnly
Exit …Run Code Online (Sandbox Code Playgroud) 在我的网页中,这样一个JS块:
var classFactory = new ActiveXObject("X509Enrollment.CX509EnrollmentWebClassFactory");
// Other initialize CertEnroll Objects
Run Code Online (Sandbox Code Playgroud)
它可以正常windows7(32bit or 64bit)使用IE8(32bit),只要我更改IE8安全设置,启用未标记为安全的初始化和脚本ActiveX控件.
但是当使用IE9(32位)时,我会尝试在网络上找到的任何东西,它报告错误"自动化服务器无法创建对象".
我甚至创建了一个静态html文件,将其保存在我的硬盘中,然后用IE9(32位)打开它,它工作正常.然后我把html文件放在我的网站上,用url访问html文件,然后再次出现错误信息.
我已经解决了这个问题4天,任何建议将不胜感激.
3Q.我希望你能读懂我的话,因为我不是母语为英语的人.
automation x509certificate activexobject internet-explorer-9
我想在C#中创建一个COM对象,并通过JScript的IDispatch使用它.那部分非常简单.
我还想在COM对象上实现简单的回调,类似于在浏览器中可用的XmlHttpRequest对象公开的事件.该模型允许Javascript附加如下事件处理程序:
var xmlhttp = new ActiveXObject("MSXML.XMLHTTP");
xmlhttp.onReadyStateChange = function() {
...
};
Run Code Online (Sandbox Code Playgroud)
我希望我的客户端JScript代码看起来像这样:
var myObject = new ActiveXObject("MyObject.ProgId");
myObject.onMyCustomEvent = function(..args here..) {
...
};
Run Code Online (Sandbox Code Playgroud)
C#代码是什么样的?我想要一般情况 - 我希望能够将参数传递回Javascript fn.
我已经看过如何在点击时用JavaScript编写用C#引发事件的ActiveX控件?,但那里的答案看起来实际上很复杂,而且使用起来很复杂.
从这篇文章中,似乎XMLHttpRequest事件不是COM事件.这onreadystatechange是一种类型的财产IDispatch.当脚本客户端将该属性设置为函数时,JScript将其封送为IDispatch对象.
剩下的唯一问题是从C#调用IDispatch.
我试图在工作簿打开时找到一种在VBA中编译代码的方法.我可以通过打开VBA环境手动执行此操作,进入Debug和"编译VBAProject",但是想知道每次工作簿打开时是否有办法通过代码执行此操作.
这样做的目的是将代码加载到计算机内存中,以防止由于使用某些Active X对象而导致编译错误.如上所述,我可以手动执行此操作,但它解决了问题,因为有许多用户使用此工具并且工作簿受密码保护,并非所有用户都可以访问调试选项.
这是一个简单的代码:
procedure Test;
var
V: OleVariant;
begin
V := CreateOleObject('ADOX.Catalog');
try
// do something with V...
finally
V := Unassigned; // do we need this?
end;
end;
Run Code Online (Sandbox Code Playgroud)
我们是否需要V := Unassigned在最后使用代码,或者V当它存在于Test程序范围内时是免费的吗?在VB中,您将变量设置为Nothing.我们需要在这做同样的事吗?即:
function VarNothing: IDispatch;
// emulate VB function SET VarX = Nothing
var
Retvar: IDispatch;
begin
Retvar := nil;
Result := Retvar;
end;
// do something with V and finally:
V := VarNothing;
Run Code Online (Sandbox Code Playgroud) 我正在我的台式机上开发Excel VBA应用程序.我的电子表格上有一个DatePicker ActiveX控件.它工作正常.
然后,在旅途中,我正在使用笔记本电脑上的应用程序.当我回来时,我将文件移回台式机.现在,当我尝试运行应用程序时,我不断收到错误"无法退出设计模式,因为无法创建控件'DTPicker1".
在代码中重命名控件及其所有引用都没有帮助.当我尝试删除控件时,即使不再控制该名称,我仍然会收到消息.
我该如何解决?
我有一个ASP.NET应用程序,允许用户每月将员工的缺席导出到Microsoft Excel.该应用程序当前正在生成以下异常
例外:无法创建ActiveX组件.
使用以下堆栈跟踪
System.Exception:无法创建ActiveX组件.位于H.\Development\pagec\Visual Studio 2005\Projects\HR\ysnet2\Time\ManagerSummary.aspx.vb中HR.ManagerSummary.ExportToExcel()的Microsoft.VisualBasic.Interaction.CreateObject(String ProgId,String ServerName):line 935 at HR.ManagerSummary.btnExcel_Click(Object sender,EventArgs e)位于H:\ Development\pagec\Visual Studio 2005\Projects\HR\ysnet2\Time\ManagerSummary.aspx.vb:第891行,位于System.Web.UI.WebControls .Button.OnClick(EventArgs e)System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)at System System.Web.UI.Page.ProcessRequestMain的System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)中的.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
代码在CreateObject行失败.
'Create the Excel object
Dim objXL As Object = CreateObject("Excel.Application") ' New Microsoft.Office.Interop.Excel.Application
Dim objWB As Object = objXL.Workbooks.Add
Dim objWS As Object = objWB.Worksheets(1)
Run Code Online (Sandbox Code Playgroud)
我在IOMR_帐户的DCOM Config for Microsoft Excel Application中设置了权限,但是没有解决问题.任何想法将不胜感激.
干杯
詹姆士
因此,在我安装了最新的Windows 7更新(包括Microsoft Office 2010更新)之后,我遇到了这个问题 - 更新的日期是今天(2014年12月12日).
更新后,我在Excel 2010中打开了启用宏的工作簿,基本上任何引用ActiveX控件(复选框,按钮)的工作都不再有效.我的auto_open正在检查复选框,无法运行...它在第一个复选框检查时保持错误.按钮也不再可点击.
在您说出来之前,我已经检查了我的信任设置并允许所有ActiveX和宏,但没有更改.如果有人有任何建议,我会全力以赴.由于我不是一个管理员,我不能因为Windows的太多事情.
activexobject ×10
excel ×4
vba ×4
activex ×2
excel-vba ×2
javascript ×2
asp.net ×1
automation ×1
c# ×1
com ×1
delphi ×1
excel-2010 ×1
form-data ×1
jscript ×1
wsh ×1