Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.06;
Скачать: CL | DM;

Вниз

Выключить звук и монитор в 2000 Win   Найти похожие ветки 

 
Стил   (2002-11-30 22:06) [0]

Здравствуйте. Я муаюсь уже около недели. как программно выключить и вклюить монитор и звук, но так, чтобы это работало и в 2000 Windows. Спасибо огромное.


 
Diamond Cat ©   (2002-11-30 23:07) [1]

sendmessage(handle,wm_syscommand,sc_monitorpower,1); //выкл
sendmessage(handle,wm_syscommand,sc_monitorpower,-1);//вкыл
со звуком сложнее вот тебе код, из него выдерещь, что надо.

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
Label1: TLabel;
Label2: TLabel;
TrackBar3: TTrackBar;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar3Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
uses mmsystem;

function GetWaveVolume: DWord;
var
Woc : TWAVEOUTCAPS;
Volume : DWord;
begin
result:=0;
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
MMSYSERR_NOERROR then
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
begin
WaveOutGetVolume(WAVE_MAPPER,@Volume);
Result := Volume;
end;
end;

procedure SetWaveVolume(const AVolume: DWord);
var
Woc : TWAVEOUTCAPS;
begin
if WaveOutGetDevCaps(WAVE_MAPPER, @Woc, sizeof(Woc)) =
MMSYSERR_NOERROR then
if Woc.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
WaveOutSetVolume(WAVE_MAPPER, AVolume);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Beep;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
LeftVolume: Word;
RightVolume: Word;
begin
LeftVolume :=TrackBar1.Position*655;
RightVolume := TrackBar2.Position*655;
SetWaveVolume(MakeLong(LeftVolume, RightVolume));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Caption := IntToStr(GetWaveVolume);
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Label3.Caption:=IntTostr(TrackBar1.Position);
if TrackBar1.Position>TrackBar2.position then TrackBar3.Position:=TrackBar1.position;
end;

procedure TForm1.TrackBar3Change(Sender: TObject);
begin
TrackBar1.Position:=TrackBar3.position;
TrackBar2.Position:=TrackBar3.position;
Label3.Caption:=IntTostr(TrackBar1.Position);
Label4.Caption:=IntTostr(TrackBar2.Position);
end;

procedure TForm1.TrackBar2Change(Sender: TObject);
begin
Label4.Caption:=IntTostr(TrackBar2.Position);
if TrackBar2.Position>TrackBar1.position then TrackBar3.Position:=TrackBar2.position;
end;

end.


 
Стил   (2002-12-01 09:23) [2]

Спасибо большое. Все сделал наконец :)
Странно, в яндексе искал, везде говорилось:
sendmessage(handle,wm_syscommand,sc_monitorpower, 0); //выкл
Поэтому оно и не работало.
Спасибо еще раз.



Страницы: 1 вся ветка

Текущий архив: 2003.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
7-15962
Dracula
2002-12-02 12:39
2003.02.06
Серийный номер MB


6-15776
Noname_
2002-12-10 17:07
2003.02.06
502 Proxy Error


1-15587
Zloy
2003-01-29 01:19
2003.02.06
для запуска проги использую следующую конструкцию:


1-15596
kosmos
2003-01-29 01:47
2003.02.06
помогите кто может, не допущен к зачету(1-ый курс)


3-15525
Виталий Панасенко
2003-01-21 13:50
2003.02.06
АДО и FoxPro for DOS