Войти

Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.


Страниц : 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

Creat0R
21-01-2008, 00:11
gregaz,
А в чём проблема использовать более одной функции? :) . Ограничении вроде нет.

gregaz
21-01-2008, 04:38
gregaz,
А в чём проблема использовать более одной функции? . Ограничении вроде нет. »
Может быть и так.Просто работа универсальной ф-ии мне более понятна.
Можно попутно еще вопрос ?
Насколько я понял (для универсальной ф-ии в моем примере) одновременное использование одинарного и двойного кликов одной и той же кнопки мыши не предполагается.
Для выявления двойного клика можно было бы выдержать паузу,но не останавливая работы скрипта.
Как правильно это организовать?

Maza Faka
21-01-2008, 07:02
gregaz
дновременное использование одинарного и двойного кликов одной и той же кнопки мыши не предполагается.
Поподробнее пожалуйста, имеется в виду клики на ListView items?

gregaz
21-01-2008, 07:18
gregaz,
А в чём проблема использовать более одной функции? . Ограничении вроде нет. »:
Эта функция сортировки работает только на ListView ,созданном внутренней ф-ей : GUICtrlCreateListView
При создании ListView с помощбю UDF : _GUICtrlListView_Create - не хочет
Тогда,как редактирование на месте - наоборот . Получаются вилы ?

gregaz
Цитата:
дновременное использование одинарного и двойного кликов одной и той же кнопки мыши не предполагается.
Поподробнее пожалуйста, имеется в виду клики на ListView items? »
Да конечно
Надо выявить двойной клик на ListView items ,игнорируя первый (одинарный) одной и той же кнопкой мыши

Creat0R
21-01-2008, 08:59
gregaz,
Как правильно это организовать?
Двойной клик улавливается сообщениями ($NM_DBLCLK), в справке есть пример (в _GUICtrlListView_Create()).

Когда мы кликаем два раза подряд (промежуточность установлена системой), то в ListView посылается сообщение $NM_DBLCLK, вот его и нужно улавливать (испол. WM_NOTIFY_EVENTS()).

Maza Faka
21-01-2008, 09:55
gregaz Эта функция сортировки работает только на ListView ,созданном внутренней ф-ей : GUICtrlCreateListView
При создании ListView с помощбю UDF : _GUICtrlListView_Create - не хочет
Тогда,как редактирование на месте - наоборот . Получаются вилы ?

Остаётся ждать новой версии в которой будет реализована (http://www.autoitscript.com/forum/index.php?showtopic=62164&view=findpost&p=465748) сортировка средствами UDF.

kalikanzaros
21-01-2008, 10:21
упс два раза задал вопрос...

Creat0R
21-01-2008, 10:43
kalikanzaros, почему скрипт, после удаления ярлыка из автозагрузки, перед самым ребутом, создает его снова???

Возможно из за этого...

; если ярлык в автозапуске не сущ-ет - создаем его и выходим

?

:)

P.S
Shutdown(6) не завершает работу скрипта, пока компьютер будет перезапускаться, строчка с созданием ярлыка будет выполнена.

kalikanzaros
21-01-2008, 10:57
Creat0R,
понятно спасибо, как я понимаю проблему должно решить добавление строки с "exit" после строки Shutdown(6)

gregaz
21-01-2008, 14:00
Вот попробовал накалякать LVSort позволяющюю и сортировать на ListView,созданном с помощью UDF
При этом сохраняется возможность редактирования на месте

#include <GuiListView.au3>
#include <GuiImageList.au3>

$Gui = GUICreate("Test", 400, 250)

$hListView = _GUICtrlListView_Create($GUI, "Items|SubItems", 2, 2, 220, 196, BitOR($LVS_EDITLABELS, $LVS_REPORT))

$hImage = _GUIImageList_Create (16,16,5);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 3);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 11);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 22);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 33);
_GUICtrlListView_SetImageList ($hListView, $hImage, 1)

$ListItem1 = _GUICtrlListView_AddItem($hListView, "Boris",0)
$ListItem2 = _GUICtrlListView_AddItem($hListView, "Anna",2)
$ListItem3 = _GUICtrlListView_AddItem($hListView, "Sveta",1)
$ListItem4 = _GUICtrlListView_AddItem($hListView, "Misha",3)
$ListSubItem1 = _GUICtrlListView_AddSubItem ($hListView, 0,'44', 1)
$ListSubItem2 = _GUICtrlListView_AddSubItem ($hListView, 1,'22', 1)
$ListSubItem3 = _GUICtrlListView_AddSubItem ($hListView, 2,'11', 1)
$ListSubItem4 = _GUICtrlListView_AddSubItem ($hListView, 3,'33', 1)

GUISetState()

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Global $B_DESCENDING[_GUICtrlListView_GetColumnCount ($hListView) ]

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
;------------------------------------------------------------------------------
Func LVSort($in)
$itN=_GUICtrlListView_GetItemCount($hListView)
$colN=_GUICtrlListView_GetColumnCount($hListView)
Dim $iArr[$itN][$colN+2]
For $ii=0 To $itN-1
$aItem=_GUICtrlListView_GetItem($hListView, $ii)
For $jj=0 To $colN-1
$iArr[$ii][$jj]=_GUICtrlListView_GetItemText($hListView, $ii,$jj)
$iArr[$ii][$jj+1]=$aItem[4]
Next
Next

_ArraySort( $iArr,'','','',$colN+1)

For $ii=0 To $itN-1
_ArraySwap( $iArr[$ii][0], $iArr[$ii][$in] )
Next

_ArraySort( $iArr,0,0,0,$colN+1)

For $ii=0 To $itN-1
_ArraySwap( $iArr[$ii][0], $iArr[$ii][$in] )
Next
_GUICtrlListView_DeleteAllItems($hListView)
For $ii=0 To $itN-1
_GUICtrlListView_AddItem($hListView,$iArr[$ii][0],$iArr[$ii][2])
For $jj=1 To $colN-1
_GUICtrlListView_AddSubItem ($hListView, $ii,$iArr[$ii][$jj], $jj)
Next
Next
EndFunc

;-----------------------------------------------------------------------------------
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")

Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; Клик по колонке
$aHit = _GuiCtrlListView_SubItemHitTest ($hWndListView)
LVSort($aHit[1])
Case $LVN_BEGINLABELEDIT
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Return False
Case $LVN_ENDLABELEDIT
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
If StringLen(DllStructGetData($tBuffer, "Text")) Then Return True
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc

Наверняка ее можно еще упростить.

gregaz,
Цитата:Как правильно это организовать?
Двойной клик улавливается сообщениями ($NM_DBLCLK), в справке есть пример (в _GUICtrlListView_Create()).
Когда мы кликаем два раза подряд (промежуточность установлена системой), то в ListView посылается сообщение $NM_DBLCLK, вот его и нужно улавливать (испол. WM_NOTIFY_EVENTS()). »

Да двойной то улавливает и эта функция (если добавить соответственно $iCode : $NM_CLICK и $NM_DBLCLK,но сначала улавливается одинарный клик(его не знаю как пропустить) чтобы среагировать на второй (от двойного) ?

Maza Faka
21-01-2008, 14:17
gregaz
Вот попробовал накалякать LVSort
Молодец. ;) Неплохая идея. Только надо довести до конца, реализовать обратную сортировку.


Да двойной то улавливает и эта функция (если добавить соответственно $iCode : $NM_CLICK и $NM_DBLCLK,но сначала улавливается одинарный клик(его не знаю как пропустить) чтобы среагировать на второй (от двойного) ?
А для чего? Что бы предотвратить переименование по одному клику?

gregaz
21-01-2008, 16:14
Да двойной то улавливает и эта функция (если добавить соответственно $iCode : $NM_CLICK и $NM_DBLCLK,но сначала улавливается одинарный клик(его не знаю как пропустить) чтобы среагировать на второй (от двойного) ?
А для чего? Что бы предотвратить переименование по одному клику? »

При двойном клике я получаю два сигнала от 1-го клика и второго (двойного)
Как обработать их различив
Например при одинарном запуск файла - при двойном на редактирование файла
Я понимаю нужно начать обработку полученного рез-та через промежуток времени после прохождения двойного клика
Не могу сообразить как это сделать не останавливая работу скрипта (Sleep не подходит
т.к приостанавливает скрипт)

gregaz
Цитата:Вот попробовал накалякать LVSort
Молодец. Неплохая идея. Только надо довести до конца, реализовать обратную сортировку. »
А обратная сортировка запросто получится использованием _ArrayReverse
Непонятно чем заказать порядок сортировки .Этот заказанный порядок должен поступить на
$WM_NOTIFY. Наверно через стили ListView ?

gregaz
23-01-2008, 09:50
gregaz
Цитата:Вот попробовал накалякать LVSort
Молодец. Неплохая идея. Только надо довести до конца, реализовать обратную сортировку. »

Вот что получилось :
При первом клике колонки - прямая сортировка
При повторном - обратная

#include <GuiListView.au3>
#include <GuiImageList.au3>

$Gui = GUICreate("Demo Func LV_Sort", 400, 250)

$hListView = _GUICtrlListView_Create($GUI, "Items|SubItems1|SubItems2|SubItems3", 2, 2, 320, 120, BitOR($LVS_EDITLABELS, $LVS_REPORT))

$hImage = _GUIImageList_Create (16,16,5);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 3);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 11);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 22);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 43);
_GUIImageList_AddIcon ($hImage, "shell32.dll", 44);
_GUICtrlListView_SetImageList ($hListView, $hImage, 1)

$ListItem1 = _GUICtrlListView_AddItem($hListView, "Boris",0)
$ListItem2 = _GUICtrlListView_AddItem($hListView, "Anna",2)
$ListItem3 = _GUICtrlListView_AddItem($hListView, "Sveta",1)
$ListItem4 = _GUICtrlListView_AddItem($hListView, "Misha",3)
$ListItem5 = _GUICtrlListView_AddItem($hListView, "Olga",4)
_GUICtrlListView_AddSubItem ($hListView, 0,'44', 1)
_GUICtrlListView_AddSubItem ($hListView, 1,'22', 1)
_GUICtrlListView_AddSubItem ($hListView, 2,'11', 1)
_GUICtrlListView_AddSubItem ($hListView, 3,'33', 1)
_GUICtrlListView_AddSubItem ($hListView, 4,'55', 1)
_GUICtrlListView_AddSubItem ($hListView, 0,'Петр', 2)
_GUICtrlListView_AddSubItem ($hListView, 1,'Елена', 2)
_GUICtrlListView_AddSubItem ($hListView, 2,'Анна', 2)
_GUICtrlListView_AddSubItem ($hListView, 3,'Раиса', 2)
_GUICtrlListView_AddSubItem ($hListView, 4,'Иван', 2)
_GUICtrlListView_AddSubItem ($hListView, 0,'4', 3)
_GUICtrlListView_AddSubItem ($hListView, 1,'23', 3)
_GUICtrlListView_AddSubItem ($hListView, 2,'1', 3)
_GUICtrlListView_AddSubItem ($hListView, 3,'24', 3)
_GUICtrlListView_AddSubItem ($hListView, 4,'123', 3)

GUISetState()

Global $pp=99,$par=0
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
Global $B_DESCENDING[_GUICtrlListView_GetColumnCount ($hListView) ]

While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Exit

;-------------------------------------------------------------------------------------------
Func LV_Sort($namb)

;Счетчик заходов
If $pp=$namb Then $par=1
$pp=$namb
;ListView ---> в массив
$itN=_GUICtrlListView_GetItemCount($hListView)
$colN=_GUICtrlListView_GetColumnCount($hListView)
Dim $iArr[$itN][$colN+2]
For $ii= 0 To $itN-1
$aItem=_GUICtrlListView_GetItem($hListView, $ii)
$iArr[$ii][0]=_GUICtrlListView_GetItemText($hListView, $ii,$namb);Добавление 0-й колонки с текстом сортируемой
For $jj=1 To $colN
$iArr[$ii][$jj]=_GUICtrlListView_GetItemText($hListView, $ii,$jj-1)
$iArr[$ii][$jj+1]=$aItem[4]
Next
Next
;Сортировка массива
_ArraySort( $iArr,'','','',$colN+2)
;Обратная сортировка массива
If $par=1 Then
$p=0
$p1=$itN-1
$p2=Ceiling ( $itN/2)
For $ii=0 To $p2-1
For $jj=1 To $colN+1
_ArraySwap( $iArr[$p][$jj], $iArr[$p1][$jj] )
Next
$p =$p+1
$p1 =$p1-1
Next
EndIf
; массив ---> в ListView
_GUICtrlListView_DeleteAllItems($hListView)
For $ii=0 To $itN-1
_GUICtrlListView_AddItem($hListView,$iArr[$ii][1],$iArr[$ii][$colN+1])
For $jj=1 To $colN
_GUICtrlListView_AddSubItem ($hListView, $ii,$iArr[$ii][$jj], $jj-1)
Next
Next
;Счетчик заходов
If $par=1 Then $pp=99
$Par=0
EndFunc
;--------------------------------------------------------------------------------------------

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")

Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK ; Клик по колонке
$aHit = _GuiCtrlListView_SubItemHitTest ($hWndListView)
LV_Sort($aHit[1])
Case $LVN_BEGINLABELEDIT
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Return False
Case $LVN_ENDLABELEDIT
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
If StringLen(DllStructGetData($tBuffer, "Text")) Then Return True
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc


Поскольку это проба пера просьба дать рекомендации по упрощению ф-ии

kalikanzaros
23-01-2008, 12:07
несколько постов выше приводил пример скрипта, кто-нибудь может подсказать как его модифицировать чтобы он вместо существования ярлыка проверял значения ключа в реесте[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]
"MinAnimate"="0"если значение 1 - скрипт отрабатывает (меняет значение на 0, прописыв себя в автозагрузку и ребутит комп), если значение 0 - выход из скрипта (удаляет себя из автозагрузки)

Creat0R
23-01-2008, 16:40
kalikanzaros,
См. в справке RegRead/RegWrite. Ключ для автозапуска:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

kalikanzaros
23-01-2008, 16:43
Creat0R,
спасибо, вчера вечером долго смотрел справку, но не понял как получить значение ключа для проверки на условие, поэтому и спрашиваю тут...

Creat0R
23-01-2008, 17:08
gregaz, просьба дать рекомендации по упрощению ф-ии
А почему бы не использовать обычную Callback функцию, скорость гораздо выше. Я полагал что совместимость с правкой элементов мешает, но спросив (http://www.autoitscript.com/forum/index.php?s=&showtopic=62412&view=findpost&p=467479) на оф. форуме, эта проблема уже вроде не актуальна :)

#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>

Global $nCurCol = -1
Global $nHold_Column = -1
Global $nSortDir = 1
Global $bSort_Set = 0

$Gui = GUICreate("Demo Func LV_Sort + Editable LV Items", 400, 250)

$hListView = GUICtrlCreateListView("Items|SubItems1|SubItems2", 2, 2, 320, 120, BitOR($LVS_EDITLABELS, $LVS_REPORT))

$hImage = _GUIImageList_Create (16, 16, 5)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 3)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 11)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 22)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 43)
_GUIImageList_AddIcon ($hImage, "shell32.dll", 44)
_GUICtrlListView_SetImageList ($hListView, $hImage, 1)

$ListItem1 = _GUICtrlListView_AddItem ($hListView, "Boris", 0)
$ListItem2 = _GUICtrlListView_AddItem ($hListView, "Anna", 2)
$ListItem3 = _GUICtrlListView_AddItem ($hListView, "Sveta", 1)
$ListItem4 = _GUICtrlListView_AddItem ($hListView, "Misha", 3)
$ListItem5 = _GUICtrlListView_AddItem ($hListView, "Olga", 4)

_GUICtrlListView_AddSubItem ($hListView, 0, '44', 1)
_GUICtrlListView_AddSubItem ($hListView, 1, '22', 1)
_GUICtrlListView_AddSubItem ($hListView, 2, '11', 1)
_GUICtrlListView_AddSubItem ($hListView, 3, '33', 1)
_GUICtrlListView_AddSubItem ($hListView, 4, '55', 1)
_GUICtrlListView_AddSubItem ($hListView, 0, 'Петр', 2)
_GUICtrlListView_AddSubItem ($hListView, 1, 'Елена', 2)
_GUICtrlListView_AddSubItem ($hListView, 2, 'Анна', 2)
_GUICtrlListView_AddSubItem ($hListView, 3, 'Раиса', 2)
_GUICtrlListView_AddSubItem ($hListView, 4, 'Иван', 2)

GUICtrlRegisterListViewSort($hListView, "LVSort") ; Register the function "LVSort" for the sorting callback
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

GUISetState()

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd

; Our sorting callback funtion
Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
Local $iFind_1, $iFind_2
Local $tInfo = DllStructCreate($tagLVFINDINFO)
DllStructSetData($tInfo, "Flags", $LVFI_PARAM)

; Switch the sorting direction
If $nColumn = $nCurCol Then
If Not $bSort_Set Then
$nSortDir *= -1
$bSort_Set = 1
EndIf
Else
$nSortDir = 1
EndIf

$nHold_Column = $nColumn

DllStructSetData($tInfo, "Param", $nItem1)
$iFind_1 = _GUICtrlListView_FindItem ($hWnd, -1, $tInfo)
DllStructSetData($tInfo, "Param", $nItem2)
$iFind_2 = _GUICtrlListView_FindItem ($hWnd, -1, $tInfo)
$iFind_1 = _GUICtrlListView_GetItemText ($hWnd, $iFind_1, $nColumn)
$iFind_2 = _GUICtrlListView_GetItemText ($hWnd, $iFind_2, $nColumn)

$nResult = 0 ; No change of item1 and item2 positions

If $iFind_1 < $iFind_2 Then
$nResult = -1 ; Put item2 before item1
ElseIf $iFind_1 > $iFind_2 Then
$nResult = 1 ; Put item2 behind item1
EndIf

$nResult *= $nSortDir

Return $nResult
EndFunc ;==>LVSort

Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")

Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_COLUMNCLICK
Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
$bSort_Set = 0
$nCurCol = $nHold_Column
GUICtrlSendMsg($hListView, $LVM_SETSELECTEDCOLUMN, DllStructGetData($tInfo, "SubItem"), 0)
DllCall("user32.dll", "int", "InvalidateRect", "hwnd", $hWndListView, "int", 0, "int", 1)
Case $LVN_BEGINLABELEDIT, $LVN_BEGINLABELEDITW
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Return False
Case $LVN_ENDLABELEDIT, $LVN_ENDLABELEDITW
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Local $iTextMax = DllStructGetData($tInfo, "TextMax")
Local $pText = DllStructGetData($tInfo, "Text")
If $pText = 0 Then Return False

Local $sBuffer = "char Text[" & $iTextMax & "]"
If $iCode = $LVN_ENDLABELEDITW Then $sBuffer = "wchar Text[" & $iTextMax & "]"

Local $tBuffer = DllStructCreate($sBuffer, $pText)
Local $sNewText = DllStructGetData($tBuffer, "Text")

If StringLen($sNewText) Then Return True
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY

Creat0R
23-01-2008, 17:22
kalikanzaros,
если значение 1 - скрипт отрабатывает (меняет значение на 0, прописыв себя в автозагрузку и ребутит комп), если значение 0 - выход из скрипта (удаляет себя из автозагрузки)


$WindowMetrics_Value = RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "MinAnimate")

If $WindowMetrics_Value = 1 Then
;Пишем 0 в ветку <HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\MinAnimate>
RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics", "MinAnimate", "REG_SZ", 0)

;Пишем скрипт в автозапуск
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", _
@ScriptName, "REG_SZ", FileGetShortName(@ScriptFullPath))

;Ребутим.
Shutdown(6)
Exit
Else
;Удаляем скрипт из автозапуска
RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", @ScriptName)
Exit
EndIf

Не тестировал :)

kalikanzaros
23-01-2008, 17:47
Creat0R,
большое спасибо, проверю - отпишусь, думаю все будет прекрасно работать

Creat0R
24-01-2008, 00:56
Поправил свой пост (http://forum.oszone.net/post-723900.html#post723873) с примером сортировки и редактирования списка, немного некорректно задавалась переменная ($sNewText) с новым текстом, при юникодной версии нужно использовать wchar а не char.




© OSzone.net 2001-2012