Despre accesibilitatea produselor si programare in general
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Salutare
Depinde mult de ce fel de aplicatie vrei sa creezi. Daca faci o aplicatie care ruleaza in consola poti folosi metoda explicata de mine anterior. Daca faci o aplicatie cu interfata grafica trebuie doar sa adaugi un eveniment pentru apasarea tastelor la formular. Ce fel de aplicatie vrei sa faci? are interfata grafica?
Depinde mult de ce fel de aplicatie vrei sa creezi. Daca faci o aplicatie care ruleaza in consola poti folosi metoda explicata de mine anterior. Daca faci o aplicatie cu interfata grafica trebuie doar sa adaugi un eveniment pentru apasarea tastelor la formular. Ce fel de aplicatie vrei sa faci? are interfata grafica?
Toate cele bune!
Campus
Campus
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Situatia este putin mai complicata deoarece aceste scurtaturi de taste sunt detectate de biblioteci specializate din limbajul cUnde se afla in Visual express c++ 2008 date despre aceste combinatii de taste?
Daca ar fi sa o luam de la inceput, in limbajele astea de programare exista functii care sunt grupate in biblioteci de functii. Astfel, cand am pus in codul anterior linia #include <time.h> am inclus biblioteca de functii pentru masurarea timpului. Din aceasta biblioteca functia clock() returneaza timpul prezent la un moment dat si asa mai departe.
In visual studio ca si in orice alt mediu de programare tu lucrezi cu aceste biblioteci asa ca documentatia legata de ele o gasesti mai degraba pe internet in engleza decat in visual studio care e de fapt doar un editor mai avansat ce iti permite sa le pui laolalta si sa creezi un program.
Ca sa detectezi apasarea tastelor poti folosi mai multe variante de biblioteci asa cum era si in link-ul pus de mine anterior. Exemplul facut de mine era bazat pe biblioteca windows.h pentru ca am presupus ca doresti sa o incluzi intr-un program cu interfata grafica ulterior si era mai usor de adaptat. La fel de bine poti folosi si curses.h si alte stfel de biblioteci.
In fine, m-am pierdut in detalii. ideea de baza e ca ar trebui sa incerci sa faci mai intai programe mai simple pentru a intelege mecanismele unui limbaj de programare. De exemplu un programel in consola care sa ia un cuvant si sa il transforme in alt cuvant sau care la o anuita comanda sa iti printeze timpul actual al sistemului.
modalitatea prin care lansezi orice program din cod c++ este functia system(). De exemplu system("notepad.exe") va lansa notepad intr-o maniera similara cu felul in care windows deschide notepad atunci cand scrii notepad.exe in dialogul Run...
Referitor la programelul pe care vrei sa il faci, am o curiozitateL de ce doresti sa fie in consola? In visual studio e oarecum mai usor sa creezi programe cu interfata grafica care folosesc dot net decat programele in consola in c++. Daca doresti sa inveti doar c++ si sa crreezi programele in consola e suficient sa folosesti Orwell dev-c++ , de exemplu., sau orice alt mediu de programare accesibil si gratuit.
Toate cele bune!
Campus
Campus
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Salut
Am incercat si eu si am gasit o solutie alternativa pentru windows.
Trebuie sa trimiti caracterul specific pentru alerta: '\a'
Se va auzi un beep din windows specific unui messagebox din cate am observat eu,
In codul cu care am incercat eu am pus si un sleep pentru ca programul sa aiba timp sa redea sunetul.
Iata codul cu care am testat eu:
Am incercat si eu si am gasit o solutie alternativa pentru windows.
Trebuie sa trimiti caracterul specific pentru alerta: '\a'
Se va auzi un beep din windows specific unui messagebox din cate am observat eu,
In codul cu care am incercat eu am pus si un sleep pentru ca programul sa aiba timp sa redea sunetul.
Iata codul cu care am testat eu:
Cod: Selectaţi tot
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
cout << "Beep in difuzoare!" << endl;
cout << '\a';
Sleep(1000);
return 0;
}
Toate cele bune!
Campus
Campus
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Ce interesant! pe Windows 8 se aude in difuzoare. Probabil si pentru ca eu folosesc compilerul mingw.... cine stie.
M-am mai uitat pe internet si am gasit ca se poate folosi functia PlaySound din winapi. Pentru asta, in project properties trebuie sa adaugi biblioteca winmm pe undeva pe la linker settings
Urmatorul cod functioneaza la mine:
M-am mai uitat pe internet si am gasit ca se poate folosi functia PlaySound din winapi. Pentru asta, in project properties trebuie sa adaugi biblioteca winmm pe undeva pe la linker settings
Urmatorul cod functioneaza la mine:
Cod: Selectaţi tot
#include <windows.h>
#include <mmsystem.h>
using namespace std;
int main()
{
PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS);
return 0;
}
Toate cele bune!
Campus
Campus
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Am adunat WinMM.Lib in linker -> input -> aditional dependencys. Se scrie WinMM.Lib in campul de editare si se apasa enter > apply > ok. Functia PlaySound reda sunetul care se aude la pornirea pc-ului si cu OS windows xp. Care este codul sursa care la apasarea oricarei taste sa redea un beep sau sa redea un fisier cum este pas.ogg utilizat de Manu in explorare sala?
Grigore
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca
Osolutie pentru "Beep la apasarea oricarei taste":
Inceput Cod
//PressAnyKeyBeep
#include <windows.h>
#include <iostream>
using namespace std;
int main (void)
{
int i;
short esc = 0;
while (!esc)
{
esc = GetAsyncKeyState ( VK_ESCAPE ); //oprire aplicatie
for (i=0; i<256; i++) //verificam tastele cu ajutorul buclei for
{
if (GetAsyncKeyState (i)&& i!=16&&i!=17) //nu se genereaza beep pentru codul ascii 16 respectiv 17
{
Beep (4000, 100);
}
}
Sleep (50); //pauza 50 milisecunde
}
return 0;
}
Sfirsit cod
Campus, este suficient de buna solutia aleasa de mine?
Inceput Cod
//PressAnyKeyBeep
#include <windows.h>
#include <iostream>
using namespace std;
int main (void)
{
int i;
short esc = 0;
while (!esc)
{
esc = GetAsyncKeyState ( VK_ESCAPE ); //oprire aplicatie
for (i=0; i<256; i++) //verificam tastele cu ajutorul buclei for
{
if (GetAsyncKeyState (i)&& i!=16&&i!=17) //nu se genereaza beep pentru codul ascii 16 respectiv 17
{
Beep (4000, 100);
}
}
Sleep (50); //pauza 50 milisecunde
}
return 0;
}
Sfirsit cod
Campus, este suficient de buna solutia aleasa de mine?
Grigore
Da, e o solutie buna. La mine functioneaza.
Pana la urma in programare nu exista neaparat retete optime. Totul depinde de scopul programului si de mijloacele pe care doresti sa le folosesti. Cel putin pentru mine orice solutie care functioneaza , poate fi integrata intr-un program mai larg si nu consuma nejustificat resurse e buna
Pana la urma in programare nu exista neaparat retete optime. Totul depinde de scopul programului si de mijloacele pe care doresti sa le folosesti. Cel putin pentru mine orice solutie care functioneaza , poate fi integrata intr-un program mai larg si nu consuma nejustificat resurse e buna
Toate cele bune!
Campus
Campus
Cu WinMM cred ca poti reda doar fisiere suportate de windows adica wav, wma si probabil mp3 desi nu sunt sigur de asta. Ca sa redai un sunet trebuie sa il convertesti in wav, sa il pui in directorul programului si sa folosestiBosGrigore scrie:Am adunat WinMM.Lib in linker -> input -> aditional dependencys. Se scrie WinMM.Lib in campul de editare si se apasa enter > apply > ok. Functia PlaySound reda sunetul care se aude la pornirea pc-ului si cu OS windows xp. Care este codul sursa care la apasarea oricarei taste sa redea un beep sau sa redea un fisier cum este pas.ogg utilizat de Manu in explorare sala?
PlaySound(TEXT("sunet.wav"), NULL, SND_FILENAME);
Pentru sunete in formate mai xomplexe se folosesc biblioteci multimedia cum este si bass.dll care este dedicata manipularii sunetelor sau ceva ce postase manu pe aici in python dar care are si biblioteca pt c++.
Toate cele bune!
Campus
Campus
-
- Plutonier
- Mesaje: 145
- Membru din: 22 Iul 2012, 21:48
- Localitate: Cluj-Napoca