请问如何实现服务端控制客户端计算机的音量大小?(100分)

  • 主题发起人 主题发起人 suyude
  • 开始时间 开始时间
S

suyude

Unregistered / Unconfirmed
GUEST, unregistred user!
我是一个delphi的爱好者,也是初学者,现在是一个网吧的管理员,由于网吧的顾客在深夜很
不自觉,总是把音量开得很大,又不想跑来跑去的!所以心想自己设计一个程序让服务端管理
其他客户端机器的音量~请大侠指点!!
 
提供一下思路,其实也可以完全实现。
用TClientSocket元件和TServerSocket元件(在Internet页),我已发过类似远程控制的
代码,原代码中用的是关闭对方电脑、发消息等,现在统一下,举个例子,用四个字母代表各种信息,
后面再跟两个##,##中间表示参数,下面作一些定义:
CLOS#1# 1表示关闭对方电脑,如果中间是2表示重启动;
VOLU#340# 表示调节音量,数字表示音量大小;
SEND#hellow# 表示发送信息给对方,中间的字符表示信息内容;
CAPT## 表示捕捉对方屏幕,中间可以设置捕捉屏幕的区域;
等等。
当客户端程序收到这些字符后,先把前面四个字符求出来,然后分支判断,各处理各
的内容。
本问题的关键是如何调节音量,网上有很多这种控件可实现。我这里也有,大家如果
找不到的话,来信告知。


 
TO Ironhero

谢谢大哥的解答,小弟我因为刚接触编程!所以望大哥给我讲详细点!
如果有源代码更好!
我想向你索取关于控制音量的控件~
E-mail:xh_cncg@21cn.com

谢谢!!
 
TO
Ironhero

怎么这么久还不见你把控制音量的控件发给我啊??
 
控件早就发给你了,不知你怎么没有收到。因为我上网不是很方便,有时上去了但大富翁打
不开,没办法。
再发一遍给你。
 
在这里摘录HYSUSER的一段程序给你
来自:hysuser, 时间:2002-1-4 11:42:00, ID:833776
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, mmsystem;

type
TForm1 = class(TForm)
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
TrackBar3: TTrackBar;
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar3Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

//音量控制
procedure TForm1.TrackBar1Change(Sender: TObject);
var
t,v:Longint;
begin
// if a=0 then Exit;
t:=TrackBar1.Position;
v:=(t shl 8)or(t shl 24);
waveOutSetVolume(0,v);
end;

//左声道控制
procedure TForm1.TrackBar2Change(Sender: TObject);
var
t,v:Longint;
begin
t:=TrackBar2.Position;
waveOutGetVolume(0,@v);
v:=v and $ffff0000 or (t shl 8);
waveOutSetVolume(0,v);
end;

//右声道控制
procedure TForm1.TrackBar3Change(Sender: TObject);
var
t,v:Longint;
begin
t:=TrackBar3.Position;
waveOutGetVolume(0,@v);
v:=v and $0000ffff or (t shl 24);
waveOutSetVolume(0,v);
end;

//获得当前音量值
procedure TForm1.FormCreate(Sender: TObject);
var
v:longint;
begin
waveOutGetVolume(0,@v);
TrackBar2.Position:=hi(v);
TrackBar3.Position:=hi(v shr 16);
if hi(v)>hi(v shr 16) then
TrackBar1.Position:=hi(v)
else
TrackBar1.Position:=hi(v shr 16);
end;

end.

hysuser,不要生气呀,我只是想使DELPHI爱好者能够更快的编写出自己想要的程序,所以才
传播你的劳动成果的。


 
TO hhlog

你那代码好象只是单机上控制音量的哦!!

我要的是在网络的服务端控制客户端音量的程序!!
 
后退
顶部