September discount week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!

Unime

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Řekl bych, že se mi zase jednou něco povedlo. :) Snažil jsem se usilovně o maximální nastavitelnost - jěště to má jistě mouchy, ale na nich se pracuje,... Snad jen dodám, že k bližšímu nastavení a k možnosti ukončit program se dostanete pravým tlačitkem - přes context menu strip,...

Dne 18.5. byla vydána první plně funkční verze 1.80.


Galerie

Program byl vytvořen v roce 2012.

 

Stáhnout

Staženo 345x (106.75 kB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Program pro vás napsal matesax
Avatar
Jak se ti líbí článek?
2 hlasů
Aktivity (1)

 

 

Komentáře

Avatar
tatko
Redaktor
Avatar
tatko:15.5.2012 12:57

bohuzel...stah­nuljsem tvuj programek spustil jsem ho a nic...předpokládám že se spouští jen ten exe soubor..
mám :
Win XP ,
proc: Dual core
graf karta: NVIDIA Quadro NVS 290

Navíc mám dva monitory, takže kdyby jsi ho nechal někde za rohem tak by se mi objevil...
(..se mi často stávalo že jsem program nechal na druhé obrazovce a kolega měl jen jednu...:)))

Odpovědět
15.5.2012 12:57
Lepší jedna po ránu ...než celý den žádná...:))
Avatar
matesax
Redaktor
Avatar
Odpovídá na tatko
matesax:15.5.2012 13:58

Normálně spustíš exe - dávám ho zvlášť (zbytek jsou zdrojové kódy). Teď tam dávám novou verzi - napíšu, až mi to schválí. Toto by ti ale mělo jít. Má to nulové nároky,... Susť to s kompabilitou, jinak nevím,...

 
Odpovědět
15.5.2012 13:58
Avatar
matesax
Redaktor
Avatar
Odpovídá na tatko
matesax:15.5.2012 17:59

Tak jak to s tím teď máš? :)

 
Odpovědět
15.5.2012 17:59
Avatar
tatko
Redaktor
Avatar
tatko:16.5.2012 7:02

člověče...nic:(( tak nevím
stanul jsem to teď v 7 hod. ráno předpokládám že už je to upgrade...

Odpovědět
16.5.2012 7:02
Lepší jedna po ránu ...než celý den žádná...:))
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na tatko
David Jančík:16.5.2012 7:06

Ono je k tomu potřeba soubor nastaveni.dat, který se sám nevytváří a je pouze ve složce Debug.

Odpovědět
16.5.2012 7:06
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Matej
Neregistrovaný
Avatar
Odpovídá na David Jančík
Matej:16.5.2012 8:09

Kdepak! Ten se sám vytváří - to že neexistuje používám do podmínky (první spuštění), takže ho nevytvářej - stačí jen exe soubor,...

 
Odpovědět
16.5.2012 8:09
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Matej
David Jančík:16.5.2012 8:26

Z toho exe souboru co je tam samotný to nefunguje právě a z té složky Debug to spustit lze.
Jinak chválím ty stopky, že tam nemáš proměnnou kterou každou vteřinu zvyšuješ, ale že odečítáš ty časy :)

Odpovědět
16.5.2012 8:26
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 12:40

To je divné - schválně jsem zkoušel ten samotný soubor - co dávám zvášť - jede mi na PC doma i teď na 2 ve škole,... Mělo by to jít,... Děkuji. :)

 
Odpovědět
16.5.2012 12:40
Avatar
matesax
Redaktor
Avatar
Odpovídá na tatko
matesax:16.5.2012 14:46

Zkusil jsi to spustit jako správce?

 
Odpovědět
16.5.2012 14:46
Avatar
matesax
Redaktor
Avatar
matesax:16.5.2012 19:17

Jede to alespoň někomu? :)

 
Odpovědět
16.5.2012 19:17
Avatar
cztomt
Redaktor
Avatar
Odpovídá na matesax
cztomt:16.5.2012 19:28

Ahoj, chtěl jsem se na to podívat, ale taky mi to nejede :D

 
Odpovědět
16.5.2012 19:28
Avatar
matesax
Redaktor
Avatar
Odpovídá na cztomt
matesax:16.5.2012 19:31

Tak to zkus z té složky debug - nebo to spusť jako správce - nemám ponětí, co s tím. :)

 
Odpovědět
16.5.2012 19:31
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 19:32

Nezanalizoval by jsi mi to prosím? Vážně netuším, co s tím. Děkuji.

 
Odpovědět
16.5.2012 19:32
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 19:32

Ten samostatnej soubor mi nejde spustit ani pod administrátorem. Teď mi to dokonce vzal antivir jako bezpečnostní riziko :D

Sem se díval na zdrojáky, ten soubor s nastavením ukládej do AppData

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString();

Tam ti OS dovolí přistupovat bez práv a také to k tomu slouží - ukládání dat programu pro příslušného uživatele.

Odpovědět
16.5.2012 19:32
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 19:34

No a jede ti to - když to přepíšeš?

 
Odpovědět
16.5.2012 19:34
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 19:36

Já sem to nepřepisoval, ale kdysi jsem to řešil taky jsem u ClockWorku nejdřív chtěl ukládat soubory s nastavením do adresáře s programem, ale nefungovalo to...
Jen změň tu cestu, mělo by to pak jít. Kdyžtak se tomu podíváme společně na zoubek :)

Odpovědět
16.5.2012 19:36
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 19:37

OK - posílám nový program. :)

 
Odpovědět
16.5.2012 19:37
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 19:39

Mám to dobře?:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString() + "\\nastaveni.dat"
 
Odpovědět
16.5.2012 19:39
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 19:47

Jop, ale ještě si tam dopiš název aplikace a pokud používáš tu cestu na více místech normálně si ji dej do proměnné ať nemusíš ten paskvil dávat všady:

String appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString();

appdata + @"\Unime\nastaveni.dat";
Odpovědět
16.5.2012 19:47
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na David Jančík
David Čápka:16.5.2012 19:53

Mohlo by stačit volat jen v cestě %appdata%, ale nejsem si jistý

Odpovědět
16.5.2012 19:53
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovědět
16.5.2012 19:54
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 19:55

Small problem. :) Nebere mi to

FileStream fs = new FileStream(appdata, FileMode.Create);
 
Odpovědět
16.5.2012 19:55
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 20:00

The likleyhood is the UAC is getting in your way.

Ideally your program shouldn't be writing to this location, it this modification file is to be modified during an install process and nowhere else you need to make sure that you are running elevated.

If this file is to be modified at run time you should consider the use of either %appdata% for user data or %programdata% for program data instead of program files.

 
Odpovědět
16.5.2012 20:00
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 20:00

Musíš vytvářet eště tu složku ;)

Directory.Cre­ate/Exists...

Odpovědět
16.5.2012 20:00
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
 
Odpovědět
16.5.2012 20:03
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 20:13

Už to tam máte. :)

 
Odpovědět
16.5.2012 20:13
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 20:17

Čekám napjatý jako pětník. :)

 
Odpovědět
16.5.2012 20:17
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 20:34

Ukládat data do souboru každých 10ms... to je fakt prasárna :D
To načítání dat ze souboru nedávej do konstruktoru, ale do eventu Load u form.

Odpovědět
16.5.2012 20:34
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 20:38

To jsi špatně pochopil - neukládám - ale načítám - takže neměním data - to snad není taková prasárna - ne? :) Jede to? :)

 
Odpovědět
16.5.2012 20:38
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 20:39

Načítat každých 10s to musím, aby se projevily změny provedené v nastavení,...

 
Odpovědět
16.5.2012 20:39
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 20:44

Prasárna největší :D
Data máš předávat v té aplikaci, že jo.
Sprav tam to co jsem ti napsal.

Při vytváření instance formu zavoláš jeho konstruktor takto:

Form2 nastaveni = new Form2(this);

A teď můžeš zpětně šahat do formu ze kterého to voláš.

Form1 myParrent = null;

        public Form4(Form1 myParrent)
        {
            InitializeComponent();

            this.myParrent = myParrent;
        }

Přes proměnnou myParrent teď můžeš přistupovat ke všemu v rodiči, resp. k viditelným metodám a proměnným.

Odpovědět
16.5.2012 20:44
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 20:55

Ale jede to?? :)

 
Odpovědět
16.5.2012 20:55
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 20:57

Nejede, proto sem ti psal co máš opravit. Kdyby na tom nezáleželo napíšu že to jsou drobnosti.

Odpovědět
16.5.2012 20:57
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na David Jančík
David Čápka:16.5.2012 20:57

Tohle také není moc ok, měla by se předávat data, ne formuláře, od vizuální stránky by to mělo být úplně odstíněné. V proměnné by měla být tedy instance objektu, který v sobě obsahuje data a logiku, ne instance formuláře :X

Odpovědět
16.5.2012 20:57
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 21:02

A proč mně to jede? :)

 
Odpovědět
16.5.2012 21:02
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:16.5.2012 21:05

A zkoušel si ten soubor zkopírovat na nějaké místo třeba na plochu a spustit? Nebo ho pouštíš jen z VS?

Odpovědět
16.5.2012 21:05
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:16.5.2012 21:06

Ano mimo - jen ten exe soubor - kdekoliv - kdykoliv jede,... :)

 
Odpovědět
16.5.2012 21:06
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:17.5.2012 8:51

Už jsem to upravil - teď by byla vážně škoda, kdyby to nešlo,...

 
Odpovědět
17.5.2012 8:51
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 15:55

Už to funguje?

 
Odpovědět
18.5.2012 15:55
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 16:04

Snad sem ti psal co máš opravit ne? Si ten soubor spouštěj z plochy nebo z jiného počítače a otestuj si ho tak to přece není problém...

Odpovědět
18.5.2012 16:04
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 16:09

No právě že mě to jede - opravil jsem co jsi mi psal - ale nepřijde mi, že bych měl chybu ve stavbě - mě to jede,...

 
Odpovědět
18.5.2012 16:09
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 16:18

Mimochodem ta oprava není v této verzi - teprve čeká na schválení.

 
Odpovědět
18.5.2012 16:18
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 16:20

Aha ty jsi mezitím nahrál novou verzi. Kdyžtak to prosím čísluj nějak ať vím, že je k dispozici novější.
No ten kód by se dal zjednodušit, ten timer na 10ms no comment :D
Mohl bys příjemně naladit i ty stopky a dát jim větší přesnost (ms)

Jinak z hlediska funkčnosti FUNGUJE ;)

Odpovědět
18.5.2012 16:20
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 16:23

Co to je Deautiful? :D

Odpovědět
18.5.2012 16:23
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 16:24

Pardon - opraveno. :)

 
Odpovědět
18.5.2012 16:24
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 16:27

Vždyť jsem jí očísloval - 1.5 Takže už jde spustit? Se stopkami zápolím, takže až budou, tak dodám novější verzi - kde bude oprraveno i to Deautiful. :)

 
Odpovědět
18.5.2012 16:27
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 16:30

Ty předchozí nebyly verzovaný právě proto sem byl zmatenej.

Odpovědět
18.5.2012 16:30
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 16:32

JJ - polepším se. :)

 
Odpovědět
18.5.2012 16:32
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 17:52

Tak - přepracováno - spokojenost? :)

 
Odpovědět
18.5.2012 17:52
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 17:55

Pardon - ještě jsem zapomněl na jednu drobnost.

 
Odpovědět
18.5.2012 17:55
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 17:56

Už se v té diskuzi začínám ztrácet :D
Jop teď je to pěkný. Jen drobné poznámky: to zkomolené defaultní máš ještě v tooltipu u onoho tlačítka. Myslím, že tam ale klidně můžeš napsat Výchozí. A tlačítko pro načtení uživatelského nastavení tam máš proč? Jestli to myslíš jako zahození změn tak tam dej spíš něco jako neukládat, zahodit...

Jinak hezký thumbs up :)

Odpovědět
18.5.2012 17:56
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 18:02

Ono to myslím přesně tak jak píši - prostě načtení uloženého nastavení,... Upraveno - za chvíli bude publikováno. :)

 
Odpovědět
18.5.2012 18:02
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 18:04

Ale tak uložené nastavení se snad načte vždycky když spustíš program ne?

Odpovědět
18.5.2012 18:04
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 18:08

Pokud ale uživatel změní nastavení a chce se vrátit k původnímu,... Přeci kvůli tomu nebudu resetovat program,... Jinak nevěděl by jsis rady s tou kontrolou existence reg. keye? Sám vidíš, že tam mám použitou logickou nulu a nejde to. Děkuji za případnou pomoc. :)

 
Odpovědět
18.5.2012 18:08
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 18:17

No tomu já říkám diskartovat (zahodit) změny.

Registry dělám takhle

public static bool check_reg_startup()
        {
            RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
            if (rkApp.GetValue("WakeWorker") == null) return false;
            try
            {
                if (!File.Exists(rkApp.GetValue("WakeWorker").ToString().Replace(" -h", "")))
                    rkApp.SetValue("WakeWorker", Application.ExecutablePath.ToString() + " -h");
            }
            catch
            {
                rkApp.SetValue("WakeWorker", Application.ExecutablePath.ToString() + " -h");
            }
            return true;
        }

Je to ošetřený když přesuneš aplikaci. -h je atribut pro spouštění zminimalizované aplikace ten kontroluješ při spouštění programu v Program.cs.

if ((args.Length == 1) && (args[0] == "-h"))

Mazání pak takto

rkApp.DeleteValue("WakeWorker", false);

Jestli si myslel tohle...

Odpovědět
18.5.2012 18:17
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 18:42

Já jen potřebuji udělat podmínku - pokud již key existuje, checkBox1.Checked = true,... A naopak.
Používám - if ("key" == null) key je ten klíč. ALe nefunguje to.

 
Odpovědět
18.5.2012 18:42
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 18:46

Na to je ta metoda co máš nahoře. Pak si dáš podmínku:

checkBox1.Checked = check_reg_startup() ? true : false;

if (check_reg_startup())
    checkBox1.Checked = true;
else
    checkBox1.Checked = false;
Odpovědět
18.5.2012 18:46
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 18:55

Tak nějak se v tom nevyznám - jak mám nastavit to -h? Máš tam podmínku pro vrácení false ale true to nakonec přemaže.

 
Odpovědět
18.5.2012 18:55
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 19:03

Tohle si tam dej.

public static bool check_reg_startup()
{
        RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
        if (rkApp.GetValue("Unime") == null) return false;
        try
        {
                if (!File.Exists(rkApp.GetValue("Unime").ToString()))
                        rkApp.SetValue("Unime", Application.ExecutablePath.ToString());
        }
        catch
        {
                rkApp.SetValue("Unime", Application.ExecutablePath.ToString());
        }
        return true;
}

Jakmile dáš return tak se metoda ukončí stejně tak cyklus.

Odpovědět
18.5.2012 19:03
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 19:12

JJ - už se plně orientuji - přepsal jsem svoje appName a jede to skvěle - tak to vypadá, že to již nemá chybičku (ten program). :)

 
Odpovědět
18.5.2012 19:12
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 19:19

Velmi děkuji za tvoji pomoc! :)

 
Odpovědět
18.5.2012 19:19
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:18.5.2012 19:25

Tak když už s tím bylo toliko práce, tak to chce doladit na max. :) - Co by jsi tam zkrátil?

 
Odpovědět
18.5.2012 19:25
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na matesax
David Jančík:18.5.2012 19:45

No jak sem psal výše, trochu sprav ten timer jak tam je 10ms ať se to předává jinak. Duplicitní kód dej do metody a pak ji volej. A trošku si to projdi udělej úklid..

Odpovědět
18.5.2012 19:45
Zapomeň, že je to nemožné a udělej to ;)
Avatar
matesax
Redaktor
Avatar
Odpovídá na David Jančík
matesax:19.5.2012 11:14

Tak - snad hotovo. :)

 
Odpovědět
19.5.2012 11:14
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 64 zpráv z 64.