Új hozzászólás Aktív témák
-
harylmu
őstag
sziasztok. gyakorlásképp szeretnék egy egyszerű picike háttérben futó programot írni. annyi a lényege, hogy a Cod-ot megnyitom akkor a utorrent záródjon be, ha pedig bezárom, akkor nyíljon ki. na most egyik problémám a process monitoring, ami gőzöm sincs hogy nézhet ki. ezért úgy gondoltam, hogy időzítéssel fogom megoldani. pl 10 másodpercenként megnézi, hogy fut-e a cod2, ha nem akkor mehet a utorrent. ha fut, akkor kill. ezt majd még később fogom megcsinálni (illetve a minize to taskbar-t is), mert egyelőre gombnyomásra sem működik teljesen. íme:
private void button1_Click(object sender, EventArgs e)
{
foreach (Process kalofdutyi in Process.GetProcessesByName("CoD2MP_s"))
{
if (kalofdutyi.Responding)
{
textBox2.Text = "CoD2 fut";
foreach (Process jutorrent in Process.GetProcessesByName("utorrent"))
{
jutorrent.Kill();
textBox1.Text = "uTorrent kilőve";
textBox1.BackColor = Color.GreenYellow;
}
}
if (!kalofdutyi.Responding)
{
textBox2.Text = "CoD nem fut";
Process.Start("E:\\Program Files (x86)\\uTorrent\\uTorrent.exe");
textBox1.Text = "uTorrent fut";
textBox1.BackColor = Color.White;
}
}az első ág működik, ha lenyomom a gombot és fut a cod, kilövi, de a második ág istenért se akar jó lenni. sejtésem szerint azért, mert a "not responding" a futó, de kifagyott alkalmazásokra utal. hogyan tudnám ellenőrizni másképpen, hogy fut az adott alkalmazás? erre nem jövök rá.
illetve láttam msdn-en egy HasExited property-t, de azt nem igazán tudtam működésre bírni.
köszi[ Szerkesztve ]
-
harylmu
őstag
válasz Goose-T #6101 üzenetére
"ha nem fut a CoD, akkor a processzek között sincs ott, tehát be sem megy a foreach ciklusba"
hülye vagyok, igaz már működik is.
és egyébként ez a timeres szerinted járható megoldás? memóriát, procit nem nagyon akasztaná meg? vagy érdemesebb lenne a process monitoringba beleásni magam?
[ Szerkesztve ]
-
harylmu
őstag
sziasztok.
sulis projektet csinálok. a lényege az lenne, hogy gépemen lévő mysql adatbázist ér el messziről egy alkalmazás. ez localhost szinten működik is (tehát a gépmen futó mysql-t meg tudja jeleníteni a gépemen futó alkalmazásom), de más számítógépéről nem megy.a távoli eléréshez a server = "localhost"; sort ugye átírtam a public ip címemre. illetve routerembe a mysql portját átirányítottam a számítógépemre. a gondom az, hogyha máshol elindítják a programot el sem indul, hanem alkalmazás leállt hibaüzenet és kilép. esetleg mysql-ben kéne konfigolni remote elérést? úgy tudtam hogy az alapból is működik (pláne roottal).
köszi
[ Szerkesztve ]
-
harylmu
őstag
válasz martonx #6301 üzenetére
semmi köze a programozáshoz? tűzfal ki van kapcsolva. ha ilyesmi gond lenne, gondolom kiírná hogy unable to connect to server, de ehelyett csak simán leáll (application stopped working). milyen kompatibilitási gondok okozhatják? hogy hozzáadtam visual studiohoz mysql referenciát + névteret lehet az készíti ki?
[ Szerkesztve ]
-
harylmu
őstag
köszi a tippet, az exception-nel + egy kis guglizással rájöttem a bajára.
itt a copy local-t kellett true-ra állítani, így a debug mappába létrehoz egy mysqldata.dll fájlt, és így lefut a progi szépen és végre megkaphattam a hőn áhított "unable to connect to any of specified mysql hosts" ablakot
Karma, megcsináltam, még mindig nem jó. át is megyek mysql totyikba és bocsi a zavarásért.[ Szerkesztve ]
-
harylmu
őstag
válasz Neil Watts #6853 üzenetére
vagy mikor belerakod a listába, csekkolod, hogy létezik-e már kettővel kisebb elem. ha igen, akkor belerakod egy másik listába.
-
harylmu
őstag
Sziasztok
Írtam egy monitorozó Windows Service-t. Windows10 és Windows 8-as gépeken .NET 4.5-ön fejlesztettem és .NEt 4-en buildeltem. Majd kiraktam a Windows Server 2008-asainkra.
A gondom igazából az, hogy elég fura sorrendekbe dobja bele a dolgokat a logba. Végülis nem baj, csak az okát szeretném tudni
[2016-02-04 16:14:03] [DEBUG] CPU load is [1%] below the threshold on eztitkos1.
[2016-02-04 16:14:03] [DEBUG] CPU load is [0%] below the threshold on eztitkos2.
[2016-02-04 16:14:04] [DEBUG] CPU load is [0%] below the threshold on eztitkos3.
[2016-02-04 16:14:04] [DEBUG] CPU load is [1%] below the threshold on eztitkos4.
[2016-02-04 16:14:05] [DEBUG] Memory load [23%] is below the threshhold on titkos3.
[2016-02-04 16:14:05] [DEBUG] Memory load [7%] is below the threshhold on titkos2.
[2016-02-04 16:14:06] [DEBUG] Memory load [5%] is below the threshhold on titkos3.
[2016-02-04 16:14:06] [DEBUG] CPU load is [1%] below the threshold on titkos3.
[2016-02-04 16:14:06] [DEBUG] Memory load [6%] is below the threshhold on titkos3.
[2016-02-04 16:14:07] [DEBUG] Memory load [6%] is below the threshhold on titkos4.
[2016-02-04 16:14:07] [DEBUG] vsa593973 is responding within the timeout [8 sec].
[2016-02-04 16:14:07] [DEBUG] vsa562480 is responding within the timeout [8 sec].
[2016-02-04 16:14:07] [DEBUG] vsa552783 is responding within the timeout [8 sec].
[2016-02-04 16:14:07] [DEBUG] vsa552766 is responding within the timeout [8 sec].
[2016-02-04 16:14:07] [DEBUG] vsa562478 is responding within the timeout [8 sec].
[2016-02-04 16:14:07] [DEBUG] Server=titkos;Database=titkos;Integrated Security=SSPI responding properly to SQL queries.
[2016-02-04 16:14:07] [DEBUG] CPU load is [1%] below the threshold on titkos3.Ami itt igazán érdekes: a memory load check-ek közé bejön egy CPU check is. Az én teóriám: túl lassan tudta megállapítani a service a titkos3 loadját, ezért volt benne egy kis késés.
Kód: fő osztály (innen hívogatom a check-eket)
a check-ekszerk.: barom vagyok, most látom tettem bele pár thread.Sleep-et de azt feltételezném hogy szépen sorrendben dobja ki az eredményeket. igazából 2-3 perc után már randomizáltak az eredmények a logban. (log.Debug metódus logol ugye). a sleep-elt threadek miatt?
[ Szerkesztve ]
-
harylmu
őstag
válasz alratar #7073 üzenetére
mikor megnyitod a form2-t parameterkent kell adnod a form1et. igy a forma2bol tudod a form1et is kezelni.
form1-ben a nyitás:
Form2 frm = new Form2(this);
frm.Show()form2:
Form1 sender;
//konstruktor
public Form2(Form1 sender)
{
this.sender = sender;
}Lehet tovább is menni. Pl megadsz form1-ben egy metódust ami hozzáad egy elemet a listához. Aztán azt simán meghívod form2-ben:
sender.AddItemToList(textbox1.Text);
[ Szerkesztve ]
-
harylmu
őstag
Ugyan nem mai dolog, de kíváncsi vagyok a véleményekre.
.NET Core-t valaki próbálgatta már? Nem túl késő az open source és cross-platform vonal felé mozogni az MS-nek? (Ja meg, visual studio is ingyenes lett kb)Szerintetek a Java/.NET app-ok arányát lehet javítani az utóbbi felé még ezzel a húzással? Én úgy érzem a Java picit elhúzott.
[ Szerkesztve ]
-
harylmu
őstag
válasz sirszevenap #7116 üzenetére
Erre az eventre reagálj.
#7112: Egyetértek nagyrészt. Hangnemen meg se lepődök már.
Egyébként, hogy Java elhúzott úgy értettem, hogy amit tapasztalok, az az, hogy több vállalati alkalmazás Java alapú, mint .NET. A Java 8-at amúgy gyengébbnek tartom, mint a C# 6-ot.
[ Szerkesztve ]
-
harylmu
őstag
válasz sirszevenap #7116 üzenetére
Pontosabban erre.
-
harylmu
őstag
oké, kellett 5 másodperc mire leesett mi az a kapcsolati karakterlánc (forrás: MS oldal)
[ Szerkesztve ]
-
harylmu
őstag
válasz alratar #7130 üzenetére
Az XML file-t amit beillesztettél vágólapra, teszed utána:
utána egyszerű:
XmlSerializer xser = new XmlSerializer(typeof(player));
using (StreamReader sr = new StreamReader("playerlist.xml"))
{
var obj = (player) xser.Deserialize(sr);
}PS: Egyébként a StreamReader-edet using-al vedd körül.
[ Szerkesztve ]
-
harylmu
őstag
válasz sirszevenap #7143 üzenetére
egy otlet: mikor konstrualod a form-ot jegyezd le hogy honnan nyitottak.
Form2 form= new Form2(nameof(Form1));
public Form2(string source)
{
this.source = source;
}[ Szerkesztve ]
-
harylmu
őstag
De ha simán el tudom képzelni, hogy van két overloaded metódus, az egyik int-t ad vissza, a másik stringet, és ha nem figyelsz a paraméterezésnél, akkor a var walami=metodus(); a rosszabbikat fogja neked választani.
Azért az kemény lenne.
Type 'Program' already defines a member called 'Get' with the same parameter types
ja, sorry, te "hasonló" paraméterekről beszéltél és figyelmetlenségről. ebben az esetben nem fogadom el az érved.
[ Szerkesztve ]
-
harylmu
őstag
Nem ide tartozik, de érdekességképp.Tervbe van egy ilyen feature:
(string, string, string) LookupName(long id) // tuple return type
{
... // retrieve first, middle and last from data storage
return (first, middle, last); // tuple literal
} -
harylmu
őstag
Ez és a tuple milyen helyzetekben hasznos? Separation of concerns-t meg az olvashatóságot nem hágja át csúnyán?
Mármint ha pl nevet és hozzátartozó id-t szeretnék visszaadni, szerintem azt se Tuple-el csinálnám. Inkább csinálnék egy person osztályt, és akkor a tagjai nem anonymousok (Item1,Item2,Item3) -
harylmu
őstag
Szia.
Berakod pastebin-re és feltöltöd megint azt a részt? A max-min algoritmusnak 1nél nagyobb tömbben mennie kell. Lord.rakli 4)-es pontját is fixáltad?
+ csak egy tipp: nem csak a min-t, hanem a max-ot is megkaphatod ugyanazon a cikluson belül, ha a kacsacsőrt a másik irányba fordítod. És akkor nem kell 2x végigmenni a tömbön.
edit: látok arra esélyt, hogy a probléma az lesz hogy azelőtt elérted a 100as szummát mielőtt feltöltötted a tömb mind a 10 tagját. Majd mikor végigiterálsz rajta a keresőn dob egy null exceptiont, a fel nem töltött elemre.
Pl. tomb[9]-re dob egy null reference-t, mert nem töltötted fel az első ciklusban, mert csak tomb[5]-ig jutottál el, de a tomb[6],tomb[7],tomb[8],tomb[9],tomb[10] mind null (ami nem nulla!).[ Szerkesztve ]
-
harylmu
őstag
.NET Core 1.1 kint, főleg bugfixekkel.
A Kestrel-t viszont (Core beépített webszervere) 1.822.366 request/second-re tuningolták. -
harylmu
őstag
válasz netpeti98 #7227 üzenetére
passz, de a VS2017, meg a C# 7 is elég királynak tűnik. ez a local function mivel hasznosabb mint egy Func vagy egy Action? nekem nem olyan szimpi, könnyen összekutyulhatja a kódot.
a tuple literal elég javascript feelingja és lesz visual studio (nem vs code) Mac-re. már van preview: link
ja, meg, amit eddig is tudtunk, a project.json sajna már megint csproj lesz a jövőben.
[ Szerkesztve ]
-
harylmu
őstag
string sourceFolderPath = @"forrásmappa";
string filePattern1 = @".kiterjesztes1";
string filePattern2 = @".kiterjesztes2";
string destinationFolderPath = @"celmappa";
List<string> matchingFiles = Directory.GetFiles(sourceFolderPath, "*", SearchOption.AllDirectories).Where(x=> x.EndsWith(filePattern1) || x.EndsWith(filePattern2)).ToList();
foreach (string filePath in matchingFiles)
{
var fileSpec = new FileInfo(filePath);
File.Move(filePath, Path.Combine(destinationFolderPath, fileSpec.Name));
}(#7265) don_peter:
Memória másolás:
A BlockCopy-s verziódnak mennie kéne. Ugyanez Array.Copy-val:var osszefuzott = new byte[DataLenght];
rows.CopyTo(osszefuzott, 0);
rows2.CopyTo(osszefuzott, rows.Length);
rows3.CopyTo(osszefuzott, rows.Length + rows2.Length);
ows4.CopyTo(osszefuzott, rows.Length + rows2.Length + rows3.Length);[ Szerkesztve ]
-
harylmu
őstag
válasz don_peter #7265 üzenetére
Ez meg egy overkill (mivel a BlockCopy-nak is működnie kéne), de pl nálam ez is üzemel:
byte[] rows = new byte[8] { 1, 1, 1, 1, 1, 1, 1, 1 };
byte[] rows2 = new byte[8] { 1, 1, 1, 1, 1, 1, 1, 1 };
byte[] rows3 = new byte[8] { 0,0,0,0,0,0,0,0 };
byte[] rows4= new byte[8] { 1, 1, 1, 1, 1, 1, 1, 1 };
var osszefuzott = new byte[rows.Length+rows2.Length+rows3.Length+rows4.Length];
using (MemoryStream ms = new MemoryStream(osszefuzott))
{
ms.Write(rows, 0, rows.Length);
ms.Write(rows2, 0, rows2.Length);
ms.Write(rows3, 0, rows3.Length);
ms.Write(rows4, 0, rows4.Length);
osszefuzott = ms.ToArray();
}[ Szerkesztve ]
-
harylmu
őstag
Deferred execution egyébként érdekes téma. Akit érdekel, debugger-rel biggyesszen egy breakpoint-ot a foreach-re és lassan nyomogassa az F10-et, és nézze a konzol output:
string sourceFolderPath = $"C:\\Users\\{Environment.UserName}\\Desktop";
string filePattern1 = @".txt";
string filePattern2 = @".exe";
var matchingFiles = Directory.GetFiles(sourceFolderPath, "*", SearchOption.TopDirectoryOnly).Where(x =>{
Console.WriteLine($"executing now on {x}");
return x.EndsWith(filePattern1) || x.EndsWith(filePattern2);
});
foreach (string filePath in matchingFiles)
{
Console.WriteLine("one iteration in foreach");
Console.WriteLine(filePath);
}És nézze meg ugyanezt, ha .ToList()-et végére biggyeszt.
var matchingFiles = Directory.GetFiles(sourceFolderPath, "*", SearchOption.TopDirectoryOnly).Where(x =>{
Console.WriteLine($"executing now on {x}");
return x.EndsWith(filePattern1) || x.EndsWith(filePattern2);
}).ToList(); -
harylmu
őstag
Nem hiszem hogy reg fájlt exébe tudnál csomagolni szimplán. Vagy egy installert akarsz vagy egy zip fájlt szerintem.
martonx arra gondolt, hogy van egy olyan dolog hogy current directory és ha relatív akarsz hivatkozni a fájlokra, akkor ahhoz képest kell nézned. a current directory valszeg pont maga az exe fájlt mappája lesz.
pl
C:\Program Files\Myprogram\core\program.exe
ha itt van egy fájl:
C:\Program Files\Myprogram\fajl.batakkor így kell rá hivatkozni:
..\fajl.bat -
harylmu
őstag
-
harylmu
őstag
válasz Flowtation #7342 üzenetére
Guglizz picit.
lblEredmeny.Text stringet vár de te int-et adsz neki. Át kell konvertálni.TryParse-ot hagyd egyelőre.
megelőztek
[ Szerkesztve ]
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Motorola Edge 40 neo - színre és formára
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Autós kamerák
- Android alkalmazások - szoftver kibeszélő topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Ukrajnai háború
- Videó stream letöltése
- Gaming notebook topik
- Motorola Moto G24 Power - hol van az erő?
- Milyen videókártyát?
- További aktív témák...