PC speaker ohjastelu ilman consolea?

Hei!

Miten saa tehtyä Windowsilla piip-ääniä PC speakerilla ILMAN consolea? Onko mahdollista ollenkaan? Vastaukseksi ei nyt käy ECHO ^G tai vastaava printf-viritelmä, kaipaisin ohjetta miten voisi ohjastella PC speakeria ilman, että näytöllä vilahtelee console-ikkunaa.

Tarve olisi yksinkertaisesti generoida jotenkin .exe, jonka ajamalla kuuluu äänimerkki, eikä mitään muuta.

Tällaista olen kokeillut:
#include // WinApi header file

void main()
{
Beep(1500,250);
}

...joka sinänsä toimii, mutta jotta tämän sai kääntymään Visual Studiossa oli pakko perustaa console application. Tuloksena yli 150 kB kokoinen .exe (kyllä nyt yksi piippaus pitäisi syntyä muutaman kB:n .exe:lläkin??) joka toimii, mutta ajettaessa vilahtaa näytöllä konsoli-ikkuna.

Miten tämä pitäisi tehdä oikealla tavalla? Ei luulisi olevan vaikea, mutta kun ei ole tuo Visual Studio meikäläiselle kovin tuttu...
4478
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Täytyyhän sillä joku isäntä olla. Kyllä pääikkunan voi joko piilottaa tai näyttää halutessaan oli se sitten konsoli tai ei. Siinähän voi olla upotettuna mediasoitin, jota ei näytetä, mutta joka kuuluu ja sitten voi vaikka mikkiin itte puhua paremmat äänet ja käyttää varastoistaan audioitten BMP: tä WAV: ia, jolta voi sanoa mitä vaan.

Äänestä

Älä tee konsoli-ohjelmaa, vaan Windows-ohjelma.
Ota esimerkki ohjelmasta turhat pois, tähän tyyliin:

int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
Beep(1500,250);
return 0;
}

Äänestä
  • Toi on hyvä idea, jos haluu soittaa yhden piipin yhdellä taajuudella. Jos haluu vaik piippolan vaarin soittaa kaikilla tarvittavilla taajuuksilla, niin laittaa vaan taajuuden jakeston uuteen piippiin perätysten niin kauan, että se on piippolan vaari siinä niin, että kaveritkin kuulee, vaikka mitään ei näy.

    Äänestä

  • Kääntyi, 89088 tavua.. :-)

    Onhan tuo edelleen suurehko, mutta ilmeisesti windowsilla ei pysty pienempään.. No, eipä tuo haittaa ja pääasia että toimii tarkoituksessaan. Tässä sovelluksessa ei tosiaan tarvita yhtä piippausta kummempaa eli haetaan pientä hälytysääntä joka ei ole liian häiritsevä, mutta erottuu lievästä taustahälinästä. Kokonaan toinen ja suurempi sovellus ajaa tämän exen hälytystilanteessa, se on idea.

    En ole tosiaan winikkaan juurikaan mitään koodaillut, enempi sulautetulle puolelle perus C:llä ja vielä enempi assemblerilla. Sulautetussa ympäristössä tuollainen speakerin piippauskoodi vaatii ehkä parikymmentä tavua korkeintaan, joten siksi tuo 89088 kuulosti minusta isolta. Mutta tietysti jollain muutaman kB muistilla varustetulla sulautetulla ja PC:llä on eronsa.. :)

    Kiitokset!

    Äänestä

Kommentoi aloitusta


tarviis piipata... kirjoitti:

Hei!

Miten saa tehtyä Windowsilla piip-ääniä PC speakerilla ILMAN consolea? Onko mahdollista ollenkaan? Vastaukseksi ei nyt käy ECHO ^G tai vastaava printf-viritelmä, kaipaisin ohjetta miten voisi ohjastella PC speakeria ilman, että näytöllä vilahtelee console-ikkunaa.

Tarve olisi yksinkertaisesti generoida jotenkin .exe, jonka ajamalla kuuluu äänimerkki, eikä mitään muuta.

Tällaista olen kokeillut:
#include // WinApi header file

void main()
{
Beep(1500,250);
}

...joka sinänsä toimii, mutta jotta tämän sai kääntymään Visual Studiossa oli pakko perustaa console application. Tuloksena yli 150 kB kokoinen .exe (kyllä nyt yksi piippaus pitäisi syntyä muutaman kB:n .exe:lläkin??) joka toimii, mutta ajettaessa vilahtaa näytöllä konsoli-ikkuna.

Miten tämä pitäisi tehdä oikealla tavalla? Ei luulisi olevan vaikea, mutta kun ei ole tuo Visual Studio meikäläiselle kovin tuttu...

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu