Diskuze: C# - Process detekování
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 19 zpráv z 19.
//= 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.
To jsem zkoušel nijak.. ale já potřebuju získat cmd.exe
a tenhle skript to nedokáže detekovat
Chceš detekovat když běží cmd.exe? Mě to funguje.
Process[] pcs = Process.GetProcessesByName("cmd");
Console.WriteLine(pcs.Length);
Console.ReadKey();
Když spustím cmd, vypíše to 1.
v ConsoleApp to bude asi fungovat ale v Unity hře to vyhazuje:
InvalidOperationException: Process has exited, so the requested information is
not available.
if (Process.GetProcessesByName("cmd").Length < 0)
{
UnityEngine.Debug.LogError("CMD.exe detected!");
}
Process.GetProcesses();
funguje? Mělo by to být pole všech spuštěných procesů, tak si tam potom jenom najdeš, jestli to obsahuje cmd.
Jak ;D
já jsem na to levý
Mimochodem v ConsoleApp to fungovalo
Ta posledni metoda co jsem napsal vraci pole procesu. Pouzij for cyklus nebo linq, abys v tom poli nasel ten se jmenem "cmd". Kdyz tam bude alespon 1 takovej proces, je cmd spustene.
Nejde =( potřebuju přímo kód který do udělá.. jsem v tom blbý
Co na tom nejde? Nejde to zkompilovat? Vyhazuje to vyjímku?
Jestli nevíš jak to napsat, podívej se na tohle:
https://www.itnetwork.cz/…ly-for-while
https://www.itnetwork.cz/…utorial-pole
Napiš mi tvůj Skype..
Ukažu ti to..
Skype nemám a ani se mi ho nechce instalovat. Prostě mi řekni co ti na tom nejde.
Nejde to zkompilovat?
Vyhazuje to chybu?
Neumíš pracovat s polem?
Tak to začíná být zajímavý. Mělo by to fungovat. Zkus tohle:
Process[] prcs = Process.GetProcesses();
if(prcs.Where(x => x.ProcessName == "cmd").Count() != 0){
// cmd je spustene
}
Budeš muset přidat using na System.Linq
zase ta chyba...
ono ten kód fungoval tam ten první který jsi mi poslal.. ALE pouze v
ConsoleApp ne v té Unity hře
Podle všeho to při některých procesech vyhazuje chybu. Zkus tohle:
Process[] prcs = Process.GetProcesses();
for(int i = 0; i < prcs.Length; i++){
try{
if(prcs[i].ProcessName == "cmd"){
// co chces udelat kdyz najdes ten proces
break;
}
}catch{}
}
Máš nejnovější verzi Unity? V 4.6 by to mělo být opravené.
Hru nevlastním. Jsem modder..
Teď to nic nedělá =(
Žádné chyby? Tak alespoň něco.
Zkus to debugovat.
Zobrazeno 19 zpráv z 19.