在我的主程序中调用一个外部程序,提示出错提示“由于应用程序发出与输入同步的调用,因此无法进行外部访问”(48分)

  • 主题发起人 主题发起人 dana
  • 开始时间 开始时间
D

dana

Unregistered / Unconfirmed
GUEST, unregistred user!
现查出的原因是,因为我把主界面缩小在右下角的图标(象QQ图标),然后显示后,要执行如下事件就出错,
有什么办法可解决?
ExcelApp:=CreateOleObject('Excel.Application');
提示出错提示“由于应用程序发出与输入同步的调用,因此无法进行外部访问”
 
帮助提前一下,希望有更人看到!
 
1。系统不稳定
2。主程序与系统有冲突````````````
3。你慢慢想
 
在TrayIcon的事件中不要直接调用COM+有关的东西,我想你的问题的原因是因为TrayIcon本身也是一个COM对象
ExcelApp:=CreateOleObject('Excel.Application'); 而这句话也调用了COM+东西,
所以不能同步调用,你可以这样。把你的那句话写在一个BUTTON的ONCLICK 事件里,
而是给你那个Button发送一个ONCLICK消息。这里注意:(一定要用PostMessage)

DANA:我想我们认识的,我叫小鱼儿。HI。[:)]


 
小鱼儿,能说一下代码如何写吗?
PostMessage如何用?
 

ExcelApp:=CreateOleObject('Excel.Application');
把你的这句换成
postmessage(panel1.handle,WM_LBUTTONDBLCLK,0,0);

然后在 panel1的双击事件中写入
ExcelApp:=CreateOleObject('Excel.Application');

你要自己会看帮助了,不能什么都要问的,
 
还是一样啊,还有没有其他办法啊? ?
 
还是一样?你把你的前面的原玛写出来,你在这个TRAYICION的什么事件里调用的
 
我就写了这些而已。
procedure TForm1.Button1Click(Sender: TObject);
var ExcelApp,MyWorkBook : Variant;
begin
try
ExcelApp:=CreateOleObject('Excel.Application');
MyWorkBook:=CreateOleobject('Excel.Sheet');
showmessage('OK');
except
showmessage('ERRO');
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
postmessage(Panel1.handle,WM_LBUTTONDBLCLK,0,0);
end;

procedure TForm1.CoolTrayIcon1DblClick(Sender: TObject);
begin
try
form1.showmodal;
except
end;
end;
 
sunys:哪里错了?
 
多人接受答案了。
 
后退
顶部