Cmd 如何从pascal程序运行命令提示?

Cmd 如何从pascal程序运行命令提示?,cmd,pascal,Cmd,Pascal,我需要使用pascal程序中该文件类型的默认程序打开一个文件(特别是音乐文件)。到目前为止,我认为最好的方法是使用命令行运行命令: open C:/Users/defaultuser0/Music/filename.wav 但是我不知道如何告诉cmd从pascal内部执行某些操作。假设您使用的是Windows,则需要使用过程ShellExecute(并包括shellapi单元)。命令可能是 ShellExecute (application.handle, 'open', 'C:/Users

我需要使用pascal程序中该文件类型的默认程序打开一个文件(特别是音乐文件)。到目前为止,我认为最好的方法是使用命令行运行命令:

open C:/Users/defaultuser0/Music/filename.wav

但是我不知道如何告诉cmd从pascal内部执行某些操作。

假设您使用的是Windows,则需要使用过程ShellExecute(并包括shellapi单元)。命令可能是

ShellExecute (application.handle, 'open', 
'C:/Users/defaultuser0/Music/filename.wav', nil, nil, SW_MAXIMIZE)

但你可能得稍微摆弄一下。阅读系统过程的文档。

假设您使用的是Windows,则需要使用过程ShellExecute(并包括shellapi单元)。命令可能是

ShellExecute (application.handle, 'open', 
'C:/Users/defaultuser0/Music/filename.wav', nil, nil, SW_MAXIMIZE)
但你可能得稍微摆弄一下。阅读系统过程的文档。

在Lazarus中有一个“OpenDocument”调用,它抽象了此功能。在Windows上,它会重新路由到ShellExecuteW函数,在*nix上,它会尝试将其传递到相关的桌面打开程序(如Windows上的打开/启动)

该实现也是可插入的,因此如果您想以不同的方式打开某个文档(例如,直接在adobe中而不是在浏览器中打开PDF),您可以编写一个截取。

在Lazarus中,有一个“OpenDocument”调用对该功能进行了抽象。在Windows上,它会重新路由到ShellExecuteW函数,在*nix上,它会尝试将其传递到相关的桌面打开程序(如Windows上的打开/启动)


该实现也是可插拔的,因此如果您希望以不同方式打开某个文档(例如,直接在adobe中打开PDF而不是在浏览器中打开PDF),您可以编写一个截取程序。

此代码可以帮助您:

swapvectors;
exec('cmd','/c open "C:/Users/defaultuser0/Music/filename.wav"');
swapvectors;
您必须使用DOS单元才能使用该代码:

uses dos,...;

(对不起我的英语)

此代码可以帮助您:

swapvectors;
exec('cmd','/c open "C:/Users/defaultuser0/Music/filename.wav"');
swapvectors;
您必须使用DOS单元才能使用该代码:

uses dos,...;
(对我的英语感到抱歉)