Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Установка выбранного приоритета для процесса (http://forum.oszone.net/showthread.php?t=171184)

La2Angel 25-03-2010 11:13 1376716

[решено] Установка выбранного приоритета для процесса
 
Нужно сделать скрипт, через который менять приоритет процессам. Суть такая, в

GUICtrlCreateCombo ("Средний приоритет", 10,10)
GUICtrlSetData(-1,"Высокий|Средний приоритет","Низкий")

Выбираем например "Высокий приоритет" после чего скрипт считывает это GUICtrlRead, и исходя из прочитанного присваивает ему цифру соответствующую. 0 - низкий, 2 - Средний приоритет, 4 - Высокий.

Заранее спасибо!

madmasles 25-03-2010 13:25 1376818

La2Angel,
У меня так получилось:
Код:

#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <ListboxConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>

$proc = ""
$n = ""
$list = ProcessList()
If $list[0][0] = 0 Then
    MsgBox(0, "", "Ошибка.")
    Exit
EndIf

_ArraySort($list)

For $i = 1 To UBound($list) - 1
    If StringInStr($list[$i][0], ".exe") <> 0 Then
        $proc &= $list[$i][0] & "|"
    EndIf
Next
$proc = StringTrimRight($proc, 1)
$procFirst = StringLeft($proc, StringInStr($proc, "|", 1) - 1)
$proc = StringTrimLeft($proc, StringInStr($proc, "|", 1))
$Form1 = GUICreate("Приоритет процессов.", 260, 144, -1, -1)
$Label1 = GUICtrlCreateLabel("Выберите процесс и новый приоритет.", 5, 5, 250, 20, $SS_CENTER)
$Combo1 = GUICtrlCreateCombo($procFirst, 10, 25, 150, 30)
GUICtrlSetData(-1, $proc, $procFirst)
$Combo2 = GUICtrlCreateCombo("Средний", 170, 25, 80, 30)
GUICtrlSetData(-1, "Высокий|Низкий", "Средний")
$Label2 = GUICtrlCreateLabel("Выбранные процесс и новый приоритет.", 5, 60, 250, 20, $SS_CENTER)
$Input1 = GUICtrlCreateInput("", 10, 80, 150, 20, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_READONLY))
$Input2 = GUICtrlCreateInput("", 170, 80, 80, 20, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_READONLY))
$Button1 = GUICtrlCreateButton("Изменить приоритет.", 50, 110, 160, 24)
GUISetState(@SW_SHOW)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Combo1
            GUICtrlSetData($Input1, GUICtrlRead($Combo1, 1))
        Case $Combo2
            GUICtrlSetData($Input2, GUICtrlRead($Combo2, 1))
        Case $Button1
            _MyFunc()
    EndSwitch
WEnd

Func _MyFunc()
    $myProc = GUICtrlRead($Input1, 1)
    If $myProc = "" Then
        MsgBox(0, "Приоритет процессов.", "Вы не выбрали процесс.")
        Return
    EndIf
    $myPrior = GUICtrlRead($Input2, 1)
    If $myPrior = "" Then
        MsgBox(0, "Приоритет процессов.", "Вы не выбрали приоритет.")
        Return
    EndIf
    If $myPrior = "Высокий" Then
        $n = 4
    ElseIf $myPrior = "Средний" Then
        $n = 2
    ElseIf $myPrior = "Низкий" Then
        $n = 0
    EndIf
    MsgBox(0, "", $myProc & " - " & $n)
    ;ProcessSetPriority($myProc, $n)
EndFunc  ;==>_MyFunc

Чтобы менять приоритет, надо раскомментировать строку с ProcessSetPriority... и закомментировать строку с последним MsgBox.

Creat0R 25-03-2010 14:38 1376865

Я что-то затрудняюсь понять, как связан заголовок темы с её содержимым? :dont-know

madmasles 25-03-2010 15:11 1376890

Creat0R,
А нет никакой связи. :)

La2Angel 25-03-2010 15:26 1376906

Вы немного не так поняли, но всеравно спасибо) кинули идею как сделать:) я просто делаю стандартный WIn+R но с функцией выбора приоритета.

Creat0R 25-03-2010 15:41 1376919

Цитата:

Цитата La2Angel
Вы немного не так поняли »

madmasles, дал вам решение поставленной задачи, или он должен был угадать что вы собираетесь построить диалог-аналог Win+R?

Кстати по теме: _FileRun UDF, Run Dialog Replacement


Время: 16:11.

Время: 16:11.
© OSzone.net 2001-