IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nastavení hlasitosti windows podle času

Aktivity
Avatar
dbarvik
Člen
Avatar
dbarvik:4.10.2013 15:51

Ahoj, mám takový problém, potřeboval poradit. Dostal jsem za úkol vymyslet něco, co by podle aktuálního času ovládala hlasitost PC. uvedu to na příkladu > každý den od 8 hodin do 9 hodin aby byla hlasitost 100%, pak od 9 do 11 hodin hlasitost 30%, pak zas třeba od 11-13:30 hlasitost 100%. potřeboval bych tohle udělat na OS WIN 7. nevím jestli to půjde přímo nakonfigurovat ve windows, uvažoval jsem třeba o nějakém programu v C# (něco málo v něm umím, kdybych dostal nějakou radu tak si myslím že bych to zvládl).

 
Odpovědět
4.10.2013 15:51
Avatar
mariaanko
Člen
Avatar
mariaanko:4.10.2013 15:55
  1. Visual studio C#
  2. Zaklady programovania :(
  3. Zistit systemovy cas. Je na to jedna funkcia
  4. Pristupit k zvuku Windowsu a znizit hlasitost, ak je time>=22:00 && time <=6:00
  5. Paci sa :)

Casy som pouzil podla domoveho poriadku v nasom panelaku :P

 
Nahoru Odpovědět
4.10.2013 15:55
Avatar
dbarvik
Člen
Avatar
dbarvik:4.10.2013 16:07

ok díky. zkusím pohledat jak zjistit ten systémový čas a pak něco o té hlasitosti. ale jinak díky za radu ;)

 
Nahoru Odpovědět
4.10.2013 16:07
Avatar
mariaanko
Člen
Avatar
mariaanko:4.10.2013 16:18

je to inac vyborny napad, lebo vcera mi sused zakrical:"TIC­HO!!!!" cez stenu :D

 
Nahoru Odpovědět
4.10.2013 16:18
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na mariaanko
TomBen:4.10.2013 16:21

Normálně se to řeší sluchátkama.
Vůbec pak neslyšíš, co řve soused. :D

Nahoru Odpovědět
4.10.2013 16:21
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na dbarvik
Jan Vargovský:4.10.2013 16:23

Systém zjistíš pomocí DateTime.Now ... a na ten čas budeš potřebovat extern metodu :)

 
Nahoru Odpovědět
4.10.2013 16:23
Avatar
mariaanko
Člen
Avatar
Odpovídá na Jan Vargovský
mariaanko:4.10.2013 16:33

Ak budu nejake problemy, hod sem kod :P
Rad sa na to pozriem :)

 
Nahoru Odpovědět
4.10.2013 16:33
Avatar
dbarvik
Člen
Avatar
dbarvik:4.10.2013 17:08

ok, dneska večer nebo až zítra se na to vrhnu, takže uvidím co vytvořím ;). jinak je to projekt ovládání televize ve škole ;) chci aby o přestávkách to jelo na max, aby to bylo slyšet, a v hodinách aby se to ztišilo ;)

 
Nahoru Odpovědět
4.10.2013 17:08
Avatar
dbarvik
Člen
Avatar
dbarvik:5.10.2013 22:47

Tak jsem se do toho pustil a skončil jsem dřív než jsem čekal. zasekl jsem se u té podmínky zjišťování času. čas zjisti umím v pohodě, ale nějak nevím jak vytvořit tu podmínku. prostě aby mi to srovnávalo ty časy.

 
Nahoru Odpovědět
5.10.2013 22:47
Avatar
Odpovídá na dbarvik
Jiří Šedý (jsedy7):7.10.2013 8:23

S C# nepracuji, ale co přiřazovat zjištěný čas do proměnné, poté porovnávat v podmínce tu hodnotu v proměnné se zadanou hodnotou času, kdy třeba hlasitost zvuku má být nižší?
Vidím to v tom, že nejspíš neumíš v C# podmínky. Až přijdeš na to jak je používat a budeš je umět používat, tak tvůj úkol hravě vyřešíš. http://www.itnetwork.cz/…ni-if-switch

Editováno 7.10.2013 8:24
Nahoru Odpovědět
7.10.2013 8:23
Musíš se mnoho učit, abys poznal, že málo víš...
Avatar
dbarvik
Člen
Avatar
dbarvik:7.10.2013 10:16

jo díky za odpověď, už jsem na to včera přišel jak porovnávat ty časy. měl jsem nejdřív problém s vytvořením dané proměnné ale už je to v pohodě podmínky mi fungují. teď akorát ještě hledám nějaký způsob jak ovládat hlasitost. co jsem většinou našel na netu, tak to stejně nefungovalo.

 
Nahoru Odpovědět
7.10.2013 10:16
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na dbarvik
David Hartinger:7.10.2013 10:35

Tohle tu v minulosti řešil David Jančík.

Nahoru Odpovědět
7.10.2013 10:35
New kid back on the block with a R.I.P
Avatar
Martin Gabriel
Tvůrce
Avatar
Martin Gabriel:7.10.2013 10:46

Tohle by Ti mohlo pomoct:
http://stackoverflow.com/…ystem-volume

Nahoru Odpovědět
7.10.2013 10:46
"Be the change you want to see in the world" - Michael Scofield
Avatar
dbarvik
Člen
Avatar
dbarvik:7.10.2013 16:55

jo díky. Taky jsem se dostal na ty stránky stackoverflow­........ ale když jsem ten kód zkoušel tak někde se musela stát chybka. právě tímhle se chci ještě dál zabývat, tak uvidím k čemu dojdu. jinak taky zkusím pohledat jestli to tady na foru ještě nenajdu.

 
Nahoru Odpovědět
7.10.2013 16:55
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na dbarvik
David Jančík:7.10.2013 20:20

A je to nějaký CoreAudioApi, když si stáhneš clockwork nebo wakeworker tak tam ta knihovna je. Funguje to od Vist nahoru. Si to vygoogli třeba je někde novější verze.
https://www.dropbox.com/…AudioApi.dll

MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
MMDevice device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);

// dobrý je to potom ještě čeknou, někdy se stane, že se to nepodaří
// nastavit, já tam ve wakeworkeru mám cyklus co to zkouší nastavit
// dokud se mu to nepovede a pokud mu to ani po chvíli nejde, tak se
// na to vyprdne a napíše že to nejde, ale to se mi zatím nestalo
device.AudioEndpointVolume.Mute = true/false;
device.AudioEndpointVolume.MasterVolumeLevelScalar = (float)0-1;
Editováno 7.10.2013 20:22
Nahoru Odpovědět
7.10.2013 20:20
Zapomeň, že je to nemožné a udělej to ;)
Avatar
dbarvik
Člen
Avatar
Odpovídá na David Jančík
dbarvik:8.10.2013 20:03

díky, ale mám menší problém s importováním knihovny. když to udělám

[DllImport("CoreAudioApi.dll")]

tak mi to vypíše chybu: Error 1 Attribute 'DllImport' is not valid on this declaration type. It is only valid on 'method' declarations.

Nejsem takový profík v C#, takže s importováním nových knihoven jsem ještě nic nedělal. A rád bych se to naučil ;)

 
Nahoru Odpovědět
8.10.2013 20:03
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na dbarvik
Jan Vargovský:8.10.2013 20:06

Takhle ne. Přidáš si referenci na to .dll skrz References v Solution Exploreru. Pak si jen přidáš using a můžeš to využívat :)

 
Nahoru Odpovědět
8.10.2013 20:06
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na dbarvik
David Hartinger:8.10.2013 20:37

DllImport se píše před metodu, když je z externí knihovny.

Nahoru Odpovědět
8.10.2013 20:37
New kid back on the block with a R.I.P
Avatar
dbarvik
Člen
Avatar
dbarvik:8.10.2013 21:36

Omlouvám se že zase otravuju, ale vyskytl se mi problém > There was a mismatch between the processor architecture of the project being built "MSIL" and the processor architecture of the reference "CoreAudioApi, Version=2.0.0.0, Culture=neutral, processorArchi­tecture=x86", "x86". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. Jinak když jsem do kódu napsal tohle

MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();

tak bez problému ale když jsem psal

MMDevice device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);

tak mi to házelo > A field initializer cannot reference the non-static field, method, or property 'ovladani_hla­sitosti.Form1­.DevEnum' a podtrhlo mi to z toho druhého řádku DevEnum

 
Nahoru Odpovědět
8.10.2013 21:36
Avatar
dbarvik
Člen
Avatar
dbarvik:8.10.2013 22:37

Tak problém co jsem zde psal před " chvilkou " se mi podařilo vyřešit ;)

 
Nahoru Odpovědět
8.10.2013 22:37
Avatar
dbarvik
Člen
Avatar
dbarvik:9.10.2013 21:52

Tak program už funguje. Jen se snažím o nějaké dodělávky. Sekl jsem se u toho že nevím jak nastavit čas

DateTime cas = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 21, 37, 00);

takhle mi to funguje, ale když jsem se snažil nějak načíst čas, který bych zadal přímo do okna programu, tak neúspěch. Chtěl bych něco ve stylu > z textboxu načíst (po kliknutí tlačítka) hodnotu do proměnné (Hodiny, Minuty) a pak mít to nastavení času

DateTime cas = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, Hodiny, Minuty, 00);

Poradil by mi někdo jak tohle vyřešit?

Editováno 9.10.2013 21:52
 
Nahoru Odpovědět
9.10.2013 21:52
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na dbarvik
Jan Vargovský:9.10.2013 22:23

Aktuální čas nastaviš jednoduše:

DateTime cas = DateTime.Now;

A jestli chceš zadat čas od uživatele, tak použij komponentu DateTimePicker. Ta má jednoduše vlastnost Value a ta ti vrací to datum, co tam je.

 
Nahoru Odpovědět
9.10.2013 22:23
Avatar
dbarvik
Člen
Avatar
dbarvik:9.10.2013 22:44

Já nepotřebuji aktuální čas, potřebuji aby se mi načítal čas který zadám do pragramu. Tak že když bude potřeba tak ho změním.

 
Nahoru Odpovědět
9.10.2013 22:44
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na dbarvik
Jan Vargovský:9.10.2013 22:52

Vždyť říkám ať nato použiješ DateTimePicker.

 
Nahoru Odpovědět
9.10.2013 22:52
Avatar
dbarvik
Člen
Avatar
dbarvik:9.10.2013 23:08

ok, díky. zítra vyzkouším,

 
Nahoru Odpovědět
9.10.2013 23:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 25 zpráv z 25.