怎样调用外部程序打开外部文件 程序中只知道外部文件的路经及文件名,想做到这样:如果该文件类型已在系统中注册,则直接调用外部程序来打开该文件,如果类型未注册,则调用类似用'打开方式...'的方法提示,相当于windows自身打开各种文档的形式,不知该怎么做 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 类型未注册,则调用类似用'打开方式...'的方法提示 我不会!学习 if OpenDialog1.Execute then WinExec(Pchar(OpenDialog1.FileName), SW_SHOW); 用WinExec(Pchar(OpenDialog1.FileName), SW_SHOW);没有任何反应 ShellExecute的各种用法一、利用系统默认的邮件收发器发送电子邮件Uses ..., ShellAPI;Var lpHwnd: HWND; lpOperation, lpFile, lpParameters, lpDirectory: String;Begin lpHwnd:= GetDesktopWindow(); lpOperation:= 'open'; lpFile:= 'mailto:' + '[email protected]' + '?' //主邮件地址后以'?'结束 + '&cc=' + '[email protected]' //抄送 + '&bcc=' + 'lyf.kibosoft.com' //暗送 + '&subject=' + '主题' + '&body='+ '第一行内容' + '%0d' + '第二行内容' //主题内容以 '%0d' 转行 + '&File=' + 'D:\Help.rtf'; //附件只对 Outlook Express 有效 lpParameters:= ''; lpDirectory:= ''; ShellExecute(lpHwnd, pChar(lpOperation), pChar(lpFile), pChar(lpParameters), pChar(lpDirectory), SW_SHOWNORMAL);End;二、打开一个网页 ShellExecute(0, 'open', 'http://www.google.com', '', '', SW_SHOWNORMAL);三、打印文档 ShellExecute(0, 'print', 'D:\Help.rtf', '', '', SW_SHOWNORMAL)四、利用系统默认的程序打开指定的文件 ShellExecute(0, 'open', 'D:\Help.rtf', '', '', SW_SHOWNORMAL))五、用指定的程序打开指定的文件 ShellExecute(0, 'open', 'notepad.exe', 'D:\Help.rtf', '', SW_SHOWNORMAL)六、执行快捷方式(.LNK) ShellExecute(handle,'open','c:\windows\desktop\aaa.lnk','', '', sw_hide); 解决了,调用winexec(PChar('rundll32 shell32,OpenAs_RunDLL '+文件),0);就可以调用系统的‘打开方式...’了,winexec的第二个参数我还没确定要用哪个,试了几个好像都能用。主要就是运行'rundll32 shell32,OpenAs_RunDLL '后面跟文件名,可以是 .扩展名之类的,在运行中执行这个也会出来‘打开方式...’对话框。结贴 如何载入地图数据?? 请高手谈谈delphi2007的感受。 在线急等!! 菜鳥求救! 這幾個語句是什麼意思,下午測試 解釋詳細給分多!!!! 关于函数的简单问题! xml属性的获取 在线,拜托,一定给分 遇上一个奇怪问题 问adoquery1.DeleteRecords()的用法 简单问题,如何象一个控件发送Ctrl + X按键? delphi如何创建一个线程, 是不是想c#那样简单?? 谁有RS232串口跟并口通信方面的资料?谢谢
if OpenDialog1.Execute then
WinExec(Pchar(OpenDialog1.FileName), SW_SHOW);
Uses
..., ShellAPI;Var
lpHwnd: HWND;
lpOperation, lpFile, lpParameters, lpDirectory: String;
Begin
lpHwnd:= GetDesktopWindow();
lpOperation:= 'open';
lpFile:= 'mailto:' + '[email protected]' + '?' //主邮件地址后以'?'结束
+ '&cc=' + '[email protected]' //抄送
+ '&bcc=' + 'lyf.kibosoft.com' //暗送
+ '&subject=' + '主题'
+ '&body='+ '第一行内容' + '%0d' + '第二行内容' //主题内容以 '%0d' 转行
+ '&File=' + 'D:\Help.rtf'; //附件只对 Outlook Express 有效
lpParameters:= '';
lpDirectory:= '';
ShellExecute(lpHwnd, pChar(lpOperation),
pChar(lpFile), pChar(lpParameters),
pChar(lpDirectory), SW_SHOWNORMAL);
End;二、打开一个网页
ShellExecute(0, 'open', 'http://www.google.com', '', '', SW_SHOWNORMAL);三、打印文档
ShellExecute(0, 'print', 'D:\Help.rtf', '', '', SW_SHOWNORMAL)四、利用系统默认的程序打开指定的文件
ShellExecute(0, 'open', 'D:\Help.rtf', '', '', SW_SHOWNORMAL))五、用指定的程序打开指定的文件
ShellExecute(0, 'open', 'notepad.exe', 'D:\Help.rtf', '', SW_SHOWNORMAL)六、执行快捷方式(.LNK)
ShellExecute(handle,'open','c:\windows\desktop\aaa.lnk','', '', sw_hide);