Witam
Chciałbym zatrzymać proces. Potrzebne mi to aby zastopować mapę z gps'em. Chodzi mi o to aby na jakiś czas ten proces był pomijany przez windows , da się tak zrobić ?
Witam
Chciałbym zatrzymać proces. Potrzebne mi to aby zastopować mapę z gps'em. Chodzi mi o to aby na jakiś czas ten proces był pomijany przez windows , da się tak zrobić ?
Myśle, że Ameryki nie odkryje jak odpowiem Ci, że da się zastopować proces :)
Ale tu chyba chodziło o wstrzymanie procesu, a nie ubicie.
dokładnie , wstrzymanie
Tak tylko że musi działać na windows mobile 6 :/ .
To gdzie tagi? GDzie informacja że mobile?
eh, i weź tu coś znajdź jak ludzie sami nie wiedzą czego chcą :)
będę pamiętał następnym razem :P .
Nie udało mi się wygoglować za takim czymś na Mobile. Można by podejrzeć jakie funkcje woła ten gadżet od SysInternals i sprawdzić czy mają one swoje odpowiedniki w Mobile
zapauzować wszystkie wątki procesu.
ale jak pobrać wątki obcego procesu ?
ale jak pobrać wątki obcego procesu ?
Wybacz, ale
http://tinyurl.com/6kawlzm
Mam taki kod , ale zawiesza się na Thread32First :
public class THREADENTRY32
{
public uint dwSize;
public uint cntUsage;
public uint th32ThreadID;
public uint th32OwnerProcessID;
public int tpBasePri;
public int tpDeltaPri;
public uint dwFlags;
// public uint th32AccessKey;
// public uint th32CurrentProcessID;
public THREADENTRY32()
{
}
public THREADENTRY32 Clone() { return (THREADENTRY32)this.MemberwiseClone(); }
}
snapshot_ = (IntPtr)0;
snapshot_ = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, auto);
///////////////////////////////////
THREADENTRY32 entryThread = new THREADENTRY32();
entryThread.dwSize = (uint)Marshal.SizeOf(typeof(THREADENTRY32));
Thread32First(snapshot_, ref entryThread);
do
{
THREADENTRY32 watekNowy = entryThread.Clone();
watki.Add(watekNowy);
entryThread.dwSize = (uint)Marshal.SizeOf(entryThread);
}
while (Thread32Next(snapshot_, ref entryThread) != 0);
CloseToolhelp32Snapshot(snapshot_);
czy teraz, jak będzie działać wystarczy użyć funkcji "SuspendThread" z id wątku czyli " public uint th32ThreadID;" ?
udało mi się zmienić wszystko tak aby działało , jest tylko jeden problem wg :
http://msdn.microsoft.com/en-us/library/ee488200%28v=WinEmbedded.60%29.aspx
jak rozumiem nie ma funkcji openThread ! To jak ja mam się dostać do uchwytu wątku aby go zatrzymać ?
Plus dla Ciebie że zobaczyłeś w Google i zbadałeś pierwszy wynik. Minus, że nie sprawdziłeś drugiego...
Niepotrzebnie się chyba tak męczysz...
static void Main(string[] args)
{
Process p = Process.GetProcessesByName("firefox").First(); // wcześniej otwórz taki proces :P
foreach (ProcessThread t in p.Threads)
{
Console.WriteLine(t.Id); // piękny ID każdego wątku w twoich rękach.
}
Console.ReadLine();
}
PS. albo jednak -> Thread.Id to niekoniecznie Unmanaged Handle procesu - czyli pewnie tak prosto nie będzie...
tylko że ja działam na windows mobile i tam nie ma tych funkcji i właściwości. Trzeba to robić ręcznie przez api windowsa a open thread nie ma , więc co teraz ?
Trochę się spóźniłem...
A na windows mobile jest całe WinAPI? Czy tylko jakiś podzbiór? Bo boję się czegoś pisać żeby znowu się nie okazało że jakiejś funkcji nie ma...
Sorry , jednak jest ta funkcja tylko na tej stronie umieszczona jest na samym dole w osobnej rubryczce z jakiegoś powodu. Dziwne natomiast że nie mogę jej dodać do c# bo mi wyskakuje wyjątek. Inne funkcje działają.
Już wiem ten link z który podałem był z windows ce , a tutaj :
http://msdn.microsoft.com/en-us/library/aa908727.aspx
na windows mobile nie ma tej funkcji czyli openThread , dlatego nie działa .