Jest taka sprawa. Odpalam sobie program przez System.Diagnostics.Process.Start("program.exe"); i chce nad nim zawladnąć... tzn konkretniej wybrac 1 z 3 radioboxow (z gory znany) i z comboboxa wybrac konkretne pole.
Jak sie do tego zabrac? Przez hooka na mysz? czy moze lapac za handle procesu (ktory mam zwracany przy odpalaniu) i grzebac bezposrednio w obiektach programu.
Pytanie drugie z podobnej beczki. Odpalam se girke (konkretnie Return to Castle Wolfenstein: Enemy-Territory) i chce ją zminimalizowac z poziomu mojego programu. Wiemw iem istnieją programu które to potrafią (znam 3) ale ja chce wiedzieć jak to robią zeby to szybko działało bo nie jest sztuką zminimalizowac program i dac systemowi przywrócic oryginalną rozdzielczosć (chociaz i tego nie umiem :|) sztuka jest to zrobic szybko... (max 1-3 sekund na P4 2GHz z GF4)
Wszelkie rady mile widziane (nawet na czystym c/c++ chociaz preferowalbym C#)
PS mala ciekawostka... kiedy uzywam Environment.CommandLine to zwraca mi on sciezke do programu z " na początku i końcu stringa... ciekawostka w tym ze odpalony z .NET w trybie debug jak mu obetne " z obu stron przez substring jest ok ten sam program (ta sama kompilacja) na zewnątrz odpalony "recznie" wywala sie bo na koncu dostaje juz po " spację... taka mala ciekawostka z windows... zeby tego uniknac musze uzywac algorytmu wlasnej produkcji bo of corz String.Trim() ani String.TrimEnd() nie dzialaja jak nalezy (a powinny obciac odpowiednio z obu stron albo tylko z konca wszystkie spacje).
Jak ktos wie co ejst nie tak i jak to latwo obejsc prosze o info
w tej chwili radzę sobie tak:
string SciezkaProgramu = Environment.CommandLine;
//czyszczenie sciezki programu ze zbednych smieci :/
int i=0;
int pocz,dlug, dlugSciez;
dlugSciez=SciezkaProgramu.Length;
pocz = 0;
dlug = 0;
while (i < dlugSciez)
{
if (SciezkaProgramu[i] == '\"' || SciezkaProgramu[i] == ' ')
i++;
else
{
pocz = i;
i = dlugSciez;
}
}
i--;
while (i > 0)
{
if (SciezkaProgramu[i] == '\"' || SciezkaProgramu[i] == ' ')
i--;
else
{
dlug = i - pocz+1;
i = 0;
}
}
SciezkaProgramu = SciezkaProgramu.Substring(pocz, dlug);
//skopiuj plik
string LokalizacjaRunnera=lokalizacjaET+"\\ETwebRunner.exe";
if (!String.Equals(lokalizacjaET, LokalizacjaRunnera))
System.IO.File.Copy(SciezkaProgramu,lokalizacjaET+"\\ETwebRunner.exe",true);
robie to w petlach aby uniknac ew innych tego typu bugow...