调用超级解霸(200分)

  • 主题发起人 主题发起人 胡西
  • 开始时间 开始时间

胡西

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中调用超级解霸播放MP3文件,如何在调用时让超级解霸自动直接打开并播放所指定名称的MP3文件?
 
用sthvcd与mp3做关联, 就是双击mp3用sthvcd播放.

然后在程序中调用:

ShellExecute(0,'', mp3filename, '', '', SW_NORMAL);


就可以了.
 
先用WinExec('MMXADO.EXE Example.MP3');
要等MMXADO运行完毕后用Findwindow得到Hwnd,在用keybd_event发送CTRL+P即可
 
同意沈前卫的看法.
 

我再请教:

请沈大虾详细写一下“Findwindow” 和 “keybd_event” 的用法!
 
1. FindWindow(nil,'超级解霸')
2. keybd_event

Syntax
keybd_event(
bVk: Byte; {virtual-key code}
bScan: Byte; {scan-code}
dwFlags: DWORD; {option flags}
dwExtraInfo: DWORD {additional information about the key}
); {this proceduredo
es not return a value}

Description
The keybd_event function simulates a keystroke. The system generates a WM_KEYUP or WM_KEYDOWN message as if the key were pressed on the keyboard.

Parameters
bVk: The virtual-key code in the range of 1 - 254. See GetKeyState for virtual keycode identifiers.

bScan: The hardware scan code for the key.

dwFlags: Flags identifying keystroke operations.

dwExtraInfo: Specifies an additional 32-bit value associated with the keystroke.
 
我在99年的电脑上见到,有可以用个什么API就可以直接,关联文件和相应软件,比如 ,直接调用WORD打开后缀为。DOC的文件,不知此API是什么,有没有这样的API,还望各位大虾,多赐教。。。小弟辑手了。
 
超级解霸不行,因为他的程序从Param中读出*.MP3文件,但他不播放,好象非要人工启动.
 
{将文件类型strFileExtension与程序
strExeFileName相关联,strDiscription为文件类型说明 }

function AssignToProgram(strFileExtension,
strDiscription, strExeFileName, strDefaultIco: string): boolean;
var
registerTemp : TRegistry;
begin

registerTemp := TRegistry.Create;
Result := True;
with registerTempdo

begin

RootKey := HKEY_CLASSES_ROOT;
//设置根键值为KEY_CLASSES_ROOT
//根据文件类型的扩展名,创建或打开对应的键名.FileExt
if OpenKey('.' + strFileExtension, True) then

//设置键.FileExt默认值为FileExt_Auto_File
WriteString('', strFileExtension + '_Auto_File');
CloseKey;
//写入自己程序的信息
//根据文件类型的扩展名,创建或打开对应的键名
// FileExt_Auto_File
if OpenKey(strFileExtension + '_Auto_File', True) then

WriteString('', strDiscription);
CloseKey;
//创建或打开键名FileExt_Auto_File
if OpenKey(strFileExtension + '_Auto_File/shell/open/command', True) then


//设置该键的默认值为打开操作对应的程序信息
WriteString('', strExeFileName + ' %1');
CloseKey;
if OpenKey(strFileExtension + '_Auto_File/DefaultIcon', True) then

WriteString('', strDefaultIco);
CloseKey;
Free;
end;

end;


调用方法:
AssignToProgram('Txt','Txt文
档','C:/WINDOWS/NOTEPAD.EXE','C:/WINDOWS/NOTEPAD.EXE,0');

有个问题:
关联后无法实现实时更改图标,是不是要向Windows发送消息?该如何发送?
 
或许解霸有个DLL文件与MP3相关。
 
呵呵,兄弟们,关联了也没有用,调用ShellExecute后,超级解霸就是不播放MP3文件
,非要按一下Play才行。
 
有没有人知道超级解霸VCD或MP3的本身调用DLL的原型函数(本身是隐藏调要),我需要。
 
首先在Use分加入ShellApi单元
然后在程序中执行
Shellexecute(handle, 'open', 解霸可执行文件路径,mp3路经,Nil,SW_SHOWNORMAL);

 
是的,超级结巴 缺省打开文件是不播放的,非得你手动 play,
不知道它有没有接口。
 
没错,是有接口,不过我问过豪杰公司,好像要8万RMB,MONEY太多,付不起,
后来我就只能使用MCI指令,如果认有的话,能否发一份给我,我加200分。
 
干嘛要调用结巴呢?自己写个播放程序不是很容易吗?
很多mp3控件下载的。
 
这个问题,中原问鼎已经解决了
超级解霸不是一般的软件,要防止多个进程产生,有要直接播放,只有控制他的命令行
你去查查,挨踢和挨题的帖子八
 
接受答案了.
 
后退
顶部