问题:
1.请问如何判断用户系统里有没有装REALPLAY软件!如果没有安装,能弹出窗口要求用户安装!请问如何实现!
2.本程序里带有RM视频影像,在没有装REALPLAY运行就会出错!有什么办法解决吗?类似的功能!
uses shellapi;
if 没安装REALPLAY then
ShellExecute(Handle, 'Open', 'E:\rp8-cn-setup.exe', Nil, Nil, SW_HIDE);
end;
1.请问如何判断用户系统里有没有装REALPLAY软件!如果没有安装,能弹出窗口要求用户安装!请问如何实现!
2.本程序里带有RM视频影像,在没有装REALPLAY运行就会出错!有什么办法解决吗?类似的功能!
uses shellapi;
if 没安装REALPLAY then
ShellExecute(Handle, 'Open', 'E:\rp8-cn-setup.exe', Nil, Nil, SW_HIDE);
end;
解决方案 »
- 求能从vps主机上下东西到本地计算机的方法
- 在导入很多数据的过程中, 如何在某一个地方显示 已导入 xxx条 信息?
- 急在线等,重叠I/O模型,发送数据包中存在#0,#0以后的内容服务器端无法收到.
- EXCEL文件导入时出现invalid variant type conversion
- 拫据鼠标位置如何得到控件名称
- 效率问题
- 送分100分<<悟透DELPHI>>哪里有下载???送分100分
- delphi中停止闪烁语句的是什么,像pb中的setredraw是什么啊,谢谢
- 递归算法,程序开始计算后无响应
- 谁有操作TXT文件的类? 立即给分!!1
- 问一个很菜的问题,什么是ERP啊?
- 兄弟我想找几个这样的控件,请大家帮忙啊!!!
如果有. 说明安装了 RealPlay 组件而
HKEY_CLASSES_ROOT\Applications\RealPlay.exe\shell\open\command
说明注安装了 RealPlay .
它有一个默认的键值:
d:\Real\RealPlayer\RealPlay.exe /m audio/x-pn-realaudio %1 //安装路径和可执行文件
uses RealAudioObjects_TLB;
在没有装REALPLAY软件的机子里程序就运行不了!
连程序都运行不了,怎么判断?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
function StrToReg(const RegName: String): DWORD;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}const
//根主键字符串
RootKeyList: array[0..6] of string=('HKEY_CLASSES_ROOT',
'HKEY_CURRENT_USER',
'HKEY_LOCAL_MACHINE',
'HKEY_USERS',
'HKEY_PERFORMANCE_DATA',
'HKEY_CURRENT_CONFIG',
'HKEY_DYN_DATA');{ TForm1 }function TForm1.StrToReg(const RegName: String): DWORD;
var
i: Integer;
begin
Result := $80000000;
for i := Low(RootKeyList) to High(RootKeyList) do
if UpperCase(RegName) = RootKeyList[i] then
begin
Result := $80000000 + DWORD(i);
break;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
DataInfo: TRegDataInfo;
begin
Reg := TRegistry.Create;
Reg.RootKey := StrToReg('HKEY_CLASSES_ROOT'); //指定根主键
//打开指定的主键, False : 如果要打开的主键不存在时, 不创建它.
//而用 True 则创建它.
if NOT Reg.OpenKey('Applications\RealPlay.exe\shell\open\command', False) then
begin
Showmessage('没有安装 RealPlay');
Reg.CloseKey; //关闭注册表
Reg.Free;
Exit;
end; //取指定键值的数信息
Reg.GetDataInfo('', DataInfo); //查找默认键值. if (DataInfo.RegData = rdString) or (DataInfo.RegData = rdExpandString) then//字符串类型
begin //读取字符串数据
//Reg.ReadString('') 为读取字符串数
//参数为要读取的键值 ''表示读取默认键值
Showmessage(Format('RealPaly 的安装位置和可执行文件及参数列表: %s', [Reg.ReadString('')]))
end
else begin
Showmessage('没有安装 RealPlay');
Reg.CloseKey; //关闭注册表
Reg.Free;
Exit;
end; Reg.CloseKey; //关闭注册表
Reg.Free;
end;
var
Reg: TRegistry;
begin
Result := False;
Reg := TRegistry.Create;
Reg.RootKey := StrToReg('HKEY_CLASSES_ROOT'); //指定根主键
//打开指定的主键, False : 如果要打开的主键不存在时, 不创建它.
//而用 True 则创建它.
//RealPlay 组件
if Reg.OpenKey('CLSID\{A06B0DBC-8272-4D72-A366-B8090BBE1871}', False) then
Result := True; Reg.CloseKey; //关闭注册表
Reg.Free;
end;
采用组件法可靠一些.
方法如下:function IsSetupRealPlay: Boolean;
var
Reg: TRegistry;
begin
Result := False;
Reg := TRegistry.Create;
Reg.RootKey := StrToReg('HKEY_CLASSES_ROOT'); //指定根主键
//打开指定的主键, False : 如果要打开的主键不存在时, 不创建它.
//而用 True 则创建它.
//查找是否安装了 RealPlay 的 COM 组件
if Reg.OpenKey('CLSID\{A06B0DBC-8272-4D72-A366-B8090BBE1871}', False) then
Reslut := True;
Reg.CloseKey; //关闭注册表
Reg.Free;
end;