作者:乔山办公网日期:
返回目录:office365
问题描述不清楚,我很难准确回7a686964616fe59b9ee7ad94362答你。
你是调用 Excel Application 打开 *.xls 文件或创建 Excel 表格吗?
还是将 Excel 电子表格当数据库用?
问题一:
默认情况下 Win32 服务进程并非运行在用户桌面(Windows 至少不止一个桌面,我们看到的界面通常是用户默认桌面),所以我们看不到 Win32 服务进程的界面,解决方法:
1)(不推荐)在 Windows 服务管理器里面,勾选“允许服务与桌面交互”(开始 -> 运行 -> 输入 services.msc 即可打开服务管理)。
2)通过编程解决(切换当前进程的工作站和桌面),需要用到 Win32 API 接口,步骤:
1.用 OpenWindowStation 函数打开 winsta0 工作站
2.用 SetProcessWindowStation 函数将进程(服务进程)切换到 OpenWindowStation 函数打开的工作站
2.用 OpenDesktop 函数打开 default 桌面(用户当前桌面)
4.用 SetThreadDesktop 设置线程(你服务的主线程)的桌面为 OpenDesktop 所打开的桌面
完成上述 4 步,即可在服务进程中显示窗口了。以上函数均为 Win32 API 在 C# 中使用,需要先申明的,具体请自己在百度搜索。
这是是 VC++ 的参考例子:http:///document/viewdoc/?id=283
如果仍然不懂,可以发消息请教我。
问题二:
用 ADO.NET 或 ADO 都可以连接 Excel 电子表格,连接字符串请上网搜一下。