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í.
Mezi 13:00 až cca 16:00 proběhne odstávka sítě z důvodu aktualizace. Web bude po celou dobu nedostupný.
Avatar
Adam Black
Člen
Avatar
Adam Black:19.1.2018 22:43

Ahoj, jak detekovat pokud jede program jménem Notepad (třeba)?
Chci to provádět co pár vteřin..

 
Odpovědět
19.1.2018 22:43
Avatar
Adam Black
Člen
Avatar
Odpovídá na Petr Šťastný
Adam Black:20.1.2018 10:11

To jsem zkoušel nijak.. ale já potřebuju získat cmd.exe
a tenhle skript to nedokáže detekovat

 
Nahoru Odpovědět
20.1.2018 10:11
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 10:30

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.

 
Nahoru Odpovědět
20.1.2018 10:30
Avatar
Adam Black
Člen
Avatar
Adam Black:20.1.2018 10:46

v ConsoleApp to bude asi fungovat ale v Unity hře to vyhazuje:
InvalidOperati­onException: Process has exited, so the requested information is not available.

if (Process.GetProcessesByName("cmd").Length < 0)
{
      UnityEngine.Debug.LogError("CMD.exe detected!");
}
 
Nahoru Odpovědět
20.1.2018 10:46
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 11:34
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.

 
Nahoru Odpovědět
20.1.2018 11:34
Avatar
Adam Black
Člen
Avatar
Adam Black:20.1.2018 11:39

Jak ;D
já jsem na to levý

Mimochodem v ConsoleApp to fungovalo

Editováno 20.1.2018 11:40
 
Nahoru Odpovědět
20.1.2018 11:39
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 11:52

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.

 
Nahoru Odpovědět
20.1.2018 11:52
Avatar
Adam Black
Člen
Avatar
Adam Black:20.1.2018 15:15

Nejde =( potřebuju přímo kód který do udělá.. jsem v tom blbý

 
Nahoru Odpovědět
20.1.2018 15:15
Avatar
Petr Šťastný
Tvůrce
Avatar
Petr Šťastný:20.1.2018 15:20

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

 
Nahoru Odpovědět
20.1.2018 15:20
Avatar
Adam Black
Člen
Avatar
Odpovídá na Petr Šťastný
Adam Black:20.1.2018 15:34

Napiš mi tvůj Skype..
Ukažu ti to..

Editováno 20.1.2018 15:34
 
Nahoru Odpovědět
20.1.2018 15:34
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 15:45

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?

 
Nahoru Odpovědět
20.1.2018 15:45
Avatar
Adam Black
Člen
Avatar
Adam Black:20.1.2018 15:48

Pošlu ti PM s videem..

 
Nahoru Odpovědět
20.1.2018 15:48
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 16:06

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

Editováno 20.1.2018 16:08
 
Nahoru Odpovědět
20.1.2018 16:06
Avatar
Adam Black
Člen
Avatar
Odpovídá na Petr Šťastný
Adam Black:20.1.2018 16:11

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

 
Nahoru Odpovědět
20.1.2018 16:11
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 16:15

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{}
}
 
Nahoru Odpovědět
20.1.2018 16:15
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 16:17

Máš nejnovější verzi Unity? V 4.6 by to mělo být opravené.

 
Nahoru Odpovědět
20.1.2018 16:17
Avatar
Adam Black
Člen
Avatar
Odpovídá na Petr Šťastný
Adam Black:20.1.2018 16:25

Hru nevlastním. Jsem modder..
Teď to nic nedělá =(

 
Nahoru Odpovědět
20.1.2018 16:25
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na Adam Black
Petr Šťastný:20.1.2018 16:39

Žádné chyby? Tak alespoň něco.

Zkus to debugovat.

 
Nahoru Odpovědět
20.1.2018 16:39
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 19 zpráv z 19.