1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Gestão de Prioridade de Memória

Discussão em 'Programação' iniciada por Kamolas, 21 de Maio de 2007. (Respostas: 2; Visualizações: 571)

  1. Kamolas

    Kamolas Power Member

    Boas

    Tenho uma aplicação em VB.net e gostaria que a determinada altura da sua execução esta tivesse máxima prioiridade sobre todas as outras aplicações que possam estar abertas em termos de consumo de memória. Há alguma forma de fazer isto?

    Tks
     
  2. Isto deve dar

    Public Const NORMAL_PRIORITY_CLASS = &H20
    Public Const IDLE_PRIORITY_CLASS = &H40
    Public Const HIGH_PRIORITY_CLASS = &H80
    Public Const REALTIME_PRIORITY_CLASS = &H100
    Public Const PROCESS_DUP_HANDLE = &H40

    Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
    Public Declare Function SetPriorityClass& Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long)



    Public Sub ChangePriority(dwPriorityClass As Long)

    Dim hProcess&
    Dim ret&, pid&
    pid = GetCurrentProcessId() ' pid do processo actual
    ' handle para o processo em pid
    hProcess = OpenProcess(PROCESS_DUP_HANDLE, True, pid)

    If hProcess = 0 Then
    Err.Raise 2, "ChangePriority", "erro ao abrir processo"
    Exit Sub
    End If

    ' Mudar a priioridade do processo

    ret = SetPriorityClass(hProcess, dwPriorityClass)
    Call CloseHandle(hProcess)

    If ret = 0 Then
    Err.Raise 4, "ChangePriority", "Erro ao fechar processo"
    Exit Sub
    End If
    End Sub
     
  3. Kamolas

    Kamolas Power Member

    Tks.
    Ainda não testei. Quando testar dou noticias.
     

Partilhar esta Página