Czy da się zamrozić inny process ?

0

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ć ?

0

Myśle, że Ameryki nie odkryje jak odpowiem Ci, że da się zastopować proces :)

0

Ale tu chyba chodziło o wstrzymanie procesu, a nie ubicie.

0

dokładnie , wstrzymanie

0

Tak tylko że musi działać na windows mobile 6 :/ .

0

To gdzie tagi? GDzie informacja że mobile?
eh, i weź tu coś znajdź jak ludzie sami nie wiedzą czego chcą :)

0

będę pamiętał następnym razem :P .

0

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

0

zapauzować wszystkie wątki procesu.

0

ale jak pobrać wątki obcego procesu ?

1

ale jak pobrać wątki obcego procesu ?

Wybacz, ale
http://tinyurl.com/6kawlzm

0

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_);
0

czy teraz, jak będzie działać wystarczy użyć funkcji "SuspendThread" z id wątku czyli " public uint th32ThreadID;" ?

0

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ć ?

1

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...

0

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 ?

1

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...

0

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ą.

0

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 .

1 użytkowników online, w tym zalogowanych: 0, gości: 1