我在屏幕上有许多可点击的对象,它们代表通过COM组件连接的软件中的对象.
当我点击一个对象时,我发送了对象的名称,会话ID和我想要运行的命令.
我正在尝试实现的特定命令的代码是基于C#的ASP.NET页面:
case "myClick":
dynamic simObj = S8COM.get_SimObject(Request["id"]);
responseData = "{name:" + simObj.Name.ToString() + ",countInRoutes:" + simObj.CountInRoutes.ToString() + ",countOutRoutes:" + simObj.CountOutRoutes.ToString() + ",index:" + simObj.Index.ToString() + ",capacity:" + simObj.Capacity.ToString() + ",completed:" + simObj.Completed.ToString() + ",routeOutMethod:" + simObj.RouteOutMethod.ToString() + "}";
break;
Run Code Online (Sandbox Code Playgroud)
这适用于某些对象,但不适用于其他对象,抛出"Uncaught SyntaxError:Unexpected number"异常.
我用来调用这个特定函数的JS是:
S8Web.Requestmanager.makeRequest({ data: { command: "myClick", id: aItem.id }, async: true, callback: function(data){
alert(data.CountInRoutes); //Do a vardump of the response
}});
Run Code Online (Sandbox Code Playgroud)
还有几个响应,第一个响应正常,而第二个响应意外数字异常:
jsonp1319203225074({name:Start,countInRoutes:0,countOutRoutes:1,index:5,capacity:0,completed:0,routeOutMethod:4});
jsonp1319203225066({name:Process 1,countInRoutes:1,countOutRoutes:1,index:1,capacity:1,completed:0,routeOutMethod:1});
Run Code Online (Sandbox Code Playgroud)
我能看到的唯一可能影响结果的是"Process"和"1"之间的空格.是什么引发了这个错误?
我有一个客户/合作伙伴正在尝试使用我们公开的COM功能将他们的应用程序链接到我们的应用程序.到目前为止,他们有一个COM对象代表我们软件包的一个实例,然后使用我们的COM方法根据用户在应用程序中的操作以编程方式为用户构建一些东西.它本质上是一个"导出"功能.
他们要求我做的事情,我无法弄清楚如何做,是允许用户决定实例何时关闭.我的意思是当我们的软件包被加载时,它是可见的并且被用户与之交互.完成后,他们会自然地点击右上角的十字架退出软件.这不起作用,因为COM对象在其应用程序中仍处于"活动状态".我们的软件包只能通过终止任务管理器中的进程来关闭,同时通过COM加载它的应用程序仍然打开.一旦他们的申请退出,我们的申请将自动关闭.由于COM调用,似乎他们的应用程序"拥有"我们的应用程序.
我在C#中制作了一个快速演示应用程序,尝试使用无用的东西Marshal.FinalReleaseComObject(myObject)
.
我意识到使用COM来实现这种目的并不是它的目的,但希望有一些解决方法吗?客户/合作伙伴正在使用VB.NET,但C#很好.
我在网上搜索过,但找不到我想要的东西.基本上,在安装过程中,我们会启动一个单独的可执行文件,它基本上会强制为用户组"EVERYONE"启用一些文件夹进行读/写.
现在,写这篇文章的人从未考虑过系统语言.我曾与法国的一位客户打电话,导致安装失败,因为"每个人"都不是我们所期望的.
我正在对Windows进行API调用,返回一个在本地化环境中"安全"使用的安全组名称.基本上我想安全地编辑这段代码,而不是在"EVERYONE"中硬编码,我们称之为函数.
因此,我发布了一个针对我们软件的快速修复程序,在一个功能区选项卡中有一个"Data _Rules",因为它是几个月前的某些人的标题.我发现在Windows Visa和Windows 7上我需要将标题写为"Data && Rules"而不是"Data&Rules",因为高于XP的版本会将第一个&符解释为快捷键.
但是,我刚接到一位顾问发来的电子邮件,说他正在使用Windows 7工作的人可以在选项卡上看到"Data && Rules".
处理这类事情的正确方法是什么?很明显,我检查操作系统版本并决定这种方式并不足以证明这一点.您以前是否必须处理此类事情?
我使用Delphi 7编写Delphi语言,但这可能是一个WIN32的东西.
谢谢!
我希望能够为一些DIV元素添加一些onclick事件处理程序,这些元素由匹配特定字符串的CSS类设置样式.DIVS将用于特定类型的图像,其表示离散事件模拟中的工作中心,我希望用户能够点击,更改某些设置,然后再次运行模拟.
我正在使用一个很久以前开发的系统来处理这些图像,如下所示:
<div id="Decision__1" class="S8DisplayObject Image__for__Decision__1" style="top:35px; left:579px; width:118px; height:71px;"><div id="Decision__1_textData_2" class="S8Web-TextData" style="left:-136px; top:-12px;"><div class="noTextWrap">0</div></div><div class="sb_block_display"></div></div>
<div id="Decision__2" class="S8DisplayObject Image__for__Decision__2" style="top:35px; left:579px; width:118px; height:71px;"><div id="Decision__2_textData_2" class="S8Web-TextData" style="left:-136px; top:-12px;"><div class="noTextWrap">0</div></div><div class="sb_block_display"></div></div>
Run Code Online (Sandbox Code Playgroud)
所以它逐渐为每个类分配一个数字,在这种情况下,我想要比较的字符串就是Image__for__Decision
.不幸的是,我无法深入研究这些CSS类的命名方式,因为它们是更大的转换过程的一部分.
任何提示将非常感谢!
我想在Delphi 7中使用Ole Automation在Excel电子表格中提取给定范围内每个单元格的文本.
刚才我有一个函数(假设工作簿已经打开)从工作表中选择一个范围并使用.Value2函数填充Variant数组
function GetExcelRange(const AWorkbookIndex: integer; const AWorksheetIndex: integer; const firstCol, lastCol, firstRow, lastRow: integer): Variant;
var
AWorkbook, ARange: OleVariant;
begin
Result := Unassigned;
if not VarIsEmpty(ExcelApp) then
begin
if ExcelApp.Workbooks.Count >= AWorkbookIndex then
begin
AWorkbook := ExcelApp.Workbooks[AWorkbookIndex];
try
if AWorkbook.Worksheets.Count >= AWorksheetIndex then
begin;
ARange := AWorkbook.WorkSheets[AWorksheetIndex].Range[AWorkbook.WorkSheets[AWorksheetIndex].Cells[firstRow, firstCol],
AWorkbook.WorkSheets[AWorksheetIndex].Cells[lastRow, lastCol]];
Result := ARange.Value2;
end;
finally
AWorkbook := Unassigned;
ARange := Unassigned;
end;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
我期望的是我可以改变行,Result := ARange.Text
但它返回一个空对象.
我宁愿不在Ole对象处于活动状态时迭代每个单元格,并将整个范围的文本粘贴到一个数组中,就像我上面所做的那样.
我们公司有一大堆软件,它有很多非常有用的COM命令.我们有一个很好的基本设置,允许你基本上绕过GUI并获得你想要的信息,但我们也有一些已经为特定客户添加.
理想情况下,当我们的.exe被导入Visual Studio这样的东西时,我们想要将这些特定的COM命令"隐藏"给普通用户.因此,尽管他们是活跃的,但从理论上讲,唯一可以使用它们的人就是明确告诉他们的人.这将消除我们与客户使用的功能相关的许多问题,而这些功能并非真正设计为由他们使用,当然这意味着不必支持多个安装程序.
delphi ×4
delphi-7 ×4
com ×2
javascript ×2
jquery ×2
winapi ×2
windows ×2
asp.net ×1
automation ×1
c# ×1
css ×1
excel ×1
excel-2010 ×1
jsonp ×1
vb.net ×1