Odgłosy bimera

0

Chciałbym się dowiedzieć jak w Delphi wydawać odgłosy biperem komputera, a także jak go wyłączyć po przez napisaną przeze mnie aplikacją. Proszę o pomoc. [email protected]

// Gdybyś napisał, że wiesz, jak to zrobić i chętnie sie ta wiedzą podzielisz, to zrozumiałbym, czemu dałes 'ogłoszenie' [mf]

0

Powinieneś użyc Assemblera, albo skorzystaj z komponentu Bleeper.

0

może to nie jest <ort>najleprzy </ort>pomysł ale w ostateczności możesz posłużyć się funkcją API PlaySound() i w nazwie pliku podać nieistniejący plik.

0

a mnie mama uczyla ze mozna załoic glosniczkiem:
beep();

//do postow wyzej nie dodam komentarza...chlopaki..skasujcie poki malo osob je widzialo ;)

0

a mnie mama uczyla ze mozna załoic glosniczkiem:
beep();

//do postow wyzej nie dodam komentarza...chlopaki..skasujcie poki malo osob je widzialo ;)

a mnie babka i dziadek tak uczyli ale mi za nic nie chce wydać z siebie odgłosu!!

0

a mnie mama uczyla ze mozna załoic glosniczkiem:
beep();

U mnie dzięki temu słychać windowsowy dźwięk Error

0

Dzięki za podpowiedz ludzi znających się na tym, a lemerzy chackery he he niech się schowają razem ze swoim dziadkiem i babką> polska kraj chamów. Mr Pkaer

0

To ja powiem tak. W TurboPascalu były trzy funkcje, które to umożliwiały:

  1. Sound(Częstotliwość w Hz);
  2. Delay(Szas w ms);
  3. NoSound;
    Nie wiem, czy w Delphi też są, ale zawsze warto spróbować...
0

szkoda tylko że w TP na określonych komputerach słychać windowsowy error a nie dźwięk z płyty ...

0

Windows.Beep(dwFreq, dwDuration);

0

a mnie mama uczyla ze mozna załoic glosniczkiem:
beep();

Windows.Beep(dwFreq, dwDuration);

To pierwsze na XP odtwarza dżwięk nie przez beepera tyklo normalnie (domyślnie jest to "gwiazdka") , a to drugi nie wiedzieć czemu nie chodzi na Win 9X

0

To pierwsze na XP odtwarza dżwięk nie przez beepera tyklo normalnie

Co ty piłeś? P U mnie działa :).

0

U mnie nie dziala ani jedno, ani drugie, za to dziala to (z torry):

// Windows 9x/NT-Platforms: 

procedure SetPort(address, Value: Word); 
var 
  bValue: Byte; 
begin 
  bValue := trunc(Value and 255); 
  asm 
    mov dx, address 
    mov al, bValue 
    out dx, al 
  end; 
end; 

function GetPort(address: Word): Word; 
var 
  bValue: Byte; 
begin 
  asm 
    mov dx, address 
    in al, dx 
    mov bValue, al 
  end; 
  GetPort := bValue; 
end; 

procedure Sound(aFreq, aDelay: Integer); 

  procedure DoSound(Freq: Word); 
  var 
    B: Byte; 
  begin 
    if Freq > 18 then 
    begin 
      Freq := Word(1193181 div Longint(Freq)); 
      B    := Byte(GetPort($61)); 

      if (B and 3) = 0 then 
      begin 
        SetPort($61, Word(B or 3)); 
        SetPort($43, $B6); 
      end; 

      SetPort($42, Freq); 
      SetPort($42, Freq shr 8); 
    end; 
  end; 

  procedure Delay(MSecs: Integer); 
  var 
    FirstTickCount: LongInt; 
  begin 
    FirstTickCount := GetTickCount; 
    repeat 
      Sleep(1); 
      //or use Application.ProcessMessages instead of Sleep 
    until ((GetTickCount - FirstTickCount) >= Longint(MSecs)); 
  end; 
   
begin 
  if Win32Platform = VER_PLATFORM_WIN32_NT then 
  begin 
    Windows.Beep(aFreq, aDelay); 
  end 
  else 
  begin 
    DoSound(aFreq); 
    Delay(aDelay); 
  end; 
end; 

procedure NoSound; 
var 
  Value: Word; 
begin 
  if not (Win32Platform = VER_PLATFORM_WIN32_NT) then 
  begin 
    Value := GetPort($61) and $FC; 
    SetPort($61, Value); 
  end; 
end; 


// Example: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Sound(500, 1000); 
  Sound(700, 1000); 
  Sound(900, 1000); 
  NoSound; 
end; 
0

Windows ME:

Beep - to odwołuje się do

MessageBeep(MB_OK)

czyli dźwięk domyślny, odgrywany przez kartę dźwiękową, według schematu Windowsa

MessageBeep(4294967295)
  • dźwięk ale z głośnika systemowego
Windows.Beep
  • tak jak Beep, tylko, że zawsze domyślny dźwięk.

Te funkcje mogą być różnie interpretowane przez system, przykładowo w Win2000\XP gdy nie posiada się karty dźwiękowej sys korzysta z głośnika systemowego w Win9x tak nie jest!

0

Jeśli chodzi ci o Beep to możesz skorzystać z funkcji.... Printf :) Czy jakiejś innej która pisze tekst na ekranie, ponieważ wystarczy kazać wyświetlić ?literę? o kodzie ASCII równym 07. W pascalu było to jakoś tak : write(chr(07)); i usłyszymy klimatyczne Beep :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1