delphi 打开Excel问题

wujinyuan 2012-01-06 04:11:05
有个问题。利用 FExcelApp, FWorkBook, FWSheet: Variant;
FExcelApp := CreateOleObject('Excel.Application');
FWorkBook := CreateOleObject('Excel.Sheet');
处理调用 的 Excel
现在有个这样的了要求,就是用户点击右上角的关闭时,要给用户提示,并且使用关闭功能失效
只能通过程序来关闭,怎么做。
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
grjs2004 2012-01-07
  • 打赏
  • 举报
回复
用钩子截获关闭消息,然后重载一下就可以!
wujinyuan 2012-01-06
  • 打赏
  • 举报
回复
谢谢。。我原来delphi 加载Excel 宏来实现的。。花了1多时间,不会玩还没有参考资料。。
wujinyuan 2012-01-06
  • 打赏
  • 举报
回复
帅哥。。你太强了。。
funxu 2012-01-06
  • 打赏
  • 举报
回复
另外你可以上网查下delphi钩子截获消息的例子,很多的思路就是注入后重载wndproc,然后把关闭消息忽略或者修改,而只有你的自定消息传入才会真正关闭窗口,不难的,骚年,现在多动动手,你后你会花现世界是很美好滴
funxu 2012-01-06
  • 打赏
  • 举报
回复
我身边没有delphi环境,刚用c#做了个测试可以将标题栏的关闭按钮禁用,你可以参考下
public Form1()
{
InitializeComponent();
IntPtr hMenu = GetSystemMenu(this.Handle, 0);
RemoveMenu(hMenu, SC_CLOSE, MF_BYCOMMAND);
}

[DllImport("USER32.DLL")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, UInt32 bRevert);
[DllImport("USER32.DLL")]
private static extern UInt32 RemoveMenu(IntPtr hMenu, UInt32 nPosition, UInt32 wFlags);
private const UInt32 SC_CLOSE = 0x0000F060;
private const UInt32 MF_BYCOMMAND = 0x00000000;
至于全局钩子,C#做不了,所以没法帮你测试了
wujinyuan 2012-01-06
  • 打赏
  • 举报
回复
怎么整。。给点代码。。嘿嘿
funxu 2012-01-06
  • 打赏
  • 举报
回复
用全局钩子捕获excel的窗体关闭消息?
wujinyuan 2012-01-06
  • 打赏
  • 举报
回复
右上角的关闭“X”不能没有

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧