Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ WinApi zmiana priorytetu proecsu.

Ostatnio zmodyfikowano 2016-02-27 17:48
Autor Wiadomość
skuska
Temat założony przez niniejszego użytkownika
C++ WinApi zmiana priorytetu proecsu.
» 2016-02-26 12:39:50
Witam, mam problem ze zmianą priorytetu aplikacji. Wiem że służy do tego funkcja SetPriorityClass, ale za bardzo nie wiem jak zrobić, aby został zmieniony priorytet aplikacji której nazwę wpisuje w pole tekstowe. Na razie zrobiłem takie coś.
C/C++
HWND hWnd = FindWindow( "procesy.exe", NULL );
DWORD ThreadID;
GetWindowThreadProcessId( hWnd, & ThreadID );
HANDLE ProcessHandle = OpenProcess( PROCESS_ALL_ACCESS, true, ThreadID );
SetPriorityClass( ProcessHandle, HIGH_PRIORITY_CLASS );
Na razie chciałbym aby zmieniło priorytet na wysoki aplikacji o nazwie procesy, jednak po wykonaniu tego kodu priorytet się nie zmienia.
P-145331
pekfos
» 2016-02-26 13:18:27
Sprawdzaj błędy. Możesz nie mieć dostępu.
P-145332
skuska
Temat założony przez niniejszego użytkownika
» 2016-02-26 13:27:05
Błędów nie ma, właśnie zrobiłem żeby zmieniało priorytet, ale nie po nazwie procesu tylko nazwie okna
C/C++
HWND uchwytOkna =::FindWindow( NULL, bufor_na_tekst1 );
if( IsWindow( uchwytOkna ) )
{
    DWORD identProcesu = 0;
    GetWindowThreadProcessId( uchwytOkna, & identProcesu );
    HANDLE uchwytProcesu = OpenProcess( PROCESS_SET_INFORMATION, FALSE, identProcesu );
    if( uchwytProcesu != 0 )
    {
        if( !SetPriorityClass( uchwytProcesu, IDLE_PRIORITY_CLASS ) )
             CloseHandle( uchwytProcesu );
       
    }
}

Działa to, tylko lepiej by było aby działało po wpisaniu nazwy procesu, a nie nazwy okna. Ma ktoś pomysł jak to ulepszyć?
P-145333
pekfos
» 2016-02-26 14:02:09
P-145334
skuska
Temat założony przez niniejszego użytkownika
» 2016-02-27 16:12:51
To mam ostatnie pytanie
C/C++
SendMessage( hListBox, LB_ADDSTRING, 0,( LPARAM ) proc32.szExeFile );
Ten SendMessage jest w pętli i wyświetla mi listę procesów. Chciałbym też, aby w moim drugim listbox wyświetlały się też process id (th32ProcessID). Zrobiłem takie coś, program się kompiluje ale od razu się wywala
C/C++
SendMessage( hListBox, LB_ADDSTRING, 0,( LPARAM ) proc32.th32ProcessID );
Podejrzewam, że winnym jest LB_ADDSTRING, ale nie wiem na co mógłbym to zmienić.
th32ProcessID jest typu DWORD
P-145352
Monika90
» 2016-02-27 16:54:33
P-145355
skuska
Temat założony przez niniejszego użytkownika
» 2016-02-27 17:29:33
C/C++
char buf[ 256 ];
sprintf( buf, proc32.th32ProcessID );
SendMessage( hListBox, LB_ADDSTRING, 0,( LPARAM ) buf );

Wyskakuje takie coś
[Error] invalid conversion from 'DWORD {aka long unsigned int}' to 'const char*' [-fpermissive]

Kombinowałem ze zmienną buf, ale nic nie to nie dało.
P-145358
jankowalski25
» 2016-02-27 17:34:21
Frazy, które należy wpisać w wyszukiwarkę google:
How to convert DWORD to char *?
Invalid conversion from 'DWORD' to 'const char *'
P-145359
« 1 » 2
  Strona 1 z 2 Następna strona