Что нового

Правый клик мыши (ПКМ) на рабочем столе -> Сортировка -> Имя

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Версия AutoIt: 3.3.14.2

Описание:
Здравствуйте.

Моя ОС: MS Windows 7 Pro SP1 x64 Rus

Шаг 1

1) Делаю правый клик мыши (ПКМ) на рабочем столе
2) Появляется контекстное меню
3) Выбираю Сортировка
4) Выбираю Имя

Значки выстраиваются по имени от А до Я

Шаг 2

1) Делаю правый клик мыши (ПКМ) на рабочем столе
2) Появляется контекстное меню
3) Выбираю Сортировка
4) Выбираю Имя

Значки выстраиваются по имени от Я до А

Все действия видны на видео: https://cloud.mail.ru/public/7znF/foQTJKWeb

Пожалуйста, напишите мне, как сделать проверку:
- если значки на рабочем столе отсортированы по имени, от А до Я - то ничего не делать
- если значки на рабочем столе отсортированы по имени, от Я до А - то сделать правый клик мыши (ПКМ) на рабочем столе -> Сортировка -> Имя

Спасибо.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Создайте ярлык с именем "яяя". Если этот ярлык в левом верхнем углу, значит сортировка - обратная.
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
InnI сказал(а):
Создайте ярлык с именем "яяя". Если этот ярлык в левом верхнем углу, значит сортировка - обратная.
Не, мне надо сделать скрипт Autoit, который при запуске будет за меня делать эти действия:
Код:
1) Делаю правый клик мыши (ПКМ) на рабочем столе
2) Появляется контекстное меню
3) Выбираю Сортировка
4) Выбираю Имя
 

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 3}')
Send ('{RIGHT}')
Send ('{ENTER}')
    MsgBox(4096, 'Сообщение', 'Сортировка завершена')
    Exit
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
ZeVSalt сказал(а):
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 3}')
Send ('{RIGHT}')
Send ('{ENTER}')
MsgBox(4096, 'Сообщение', 'Сортировка завершена')
Exit
У меня это работает только с Send ('{DOWN 2}').
При Send ('{DOWN 3}') у меня выбирается пункт Обновить

Такой вопрос: а если у меня уже было выполнено Правый клик мыши (ПКМ) на рабочем столе -> Сортировка -> Имя и ярлыки выстроены от А до Я, то повторное выполнение
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 2}')
Send ('{RIGHT}')
Send ('{ENTER}')
MsgBox(4096, 'Сообщение', 'Сортировка завершена')
Exit
приведет сортировку от Я до А.

Вот мне бы и хотелось проверку - если ярлыки выстроены от А до Я, то при запуске
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 2}')
Send ('{RIGHT}')
Send ('{ENTER}')
MsgBox(4096, 'Сообщение', 'Сортировка завершена')
Exit
сразу выход, не выполняя код
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 2}')
Send ('{RIGHT}')
Send ('{ENTER}')
MsgBox(4096, 'Сообщение', 'Сортировка завершена')
Exit

А если ярлыки выстроены от Я до А, то при запуске
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 2}')
Send ('{RIGHT}')
Send ('{ENTER}')
MsgBox(4096, 'Сообщение', 'Сортировка завершена')
Exit
выполняется код
Код:
;~ Координаты введите свои, задержку тоже
Sleep (5000)
MouseClick("right", 0, 0)
Send ('{DOWN 2}')
Send ('{RIGHT}')
Send ('{ENTER}')
MsgBox(4096, 'Сообщение', 'Сортировка завершена')
Exit

Или такая проверка невозможна?

Спасибо.
 

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
только такие грабли придумал.

Код:
$oFile = FileOpen("c:\log.txt", 8)
$rFile = FileRead ("c:\log.txt")
If $rFile = "1" Then
FileClose($oFile)
Sleep (10000)
MouseClick("right", 0, 0)
Send ('{DOWN 3}')
Send ('{RIGHT}')
Send ('{ENTER}')
$oFile = FileOpen("c:\log.txt", 2)
$wFile = FileWrite ("c:\log.txt", "0")
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Сортировка "1" завершена')
Exit

 Else
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Сортировка "0"' & @CRLF & 'Задача отменена')
    Exit
EndIf
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
ZeVSalt сказал(а):
только такие грабли придумал.

Код:
$oFile = FileOpen("c:\log.txt", 8)
$rFile = FileRead ("c:\log.txt")
If $rFile = "1" Then
FileClose($oFile)
Sleep (10000)
MouseClick("right", 0, 0)
Send ('{DOWN 3}')
Send ('{RIGHT}')
Send ('{ENTER}')
$oFile = FileOpen("c:\log.txt", 2)
$wFile = FileWrite ("c:\log.txt", "0")
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Сортировка "1" завершена')
Exit

 Else
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Сортировка "0"' & @CRLF & 'Задача отменена')
    Exit
EndIf
Что-то у меня этот Ваш код вообще ничего не делает...
Сколько раз не запускай - пишется Сортировка "0"
 

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
файл c:\log.txt скорее всего не создался
хм... флаг 8 вообще то стоит :scratch:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
ZeVSalt
На Win7 с включённым UAC для создания файла в корне системного диска нужны права администратора.
 

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Код:
#requireadmin
не помог, если создать файл ручками, с содержимым 1, тогда все работает


Добавлено:
Сообщение автоматически объединено:

переделал теперь все работает
Код:
; Запускаем скрипт с админскими правами
#requireadmin
If FileExists ("d:\log\log.txt") Then

$oFile = FileOpen("d:\log\log.txt", 8)
$rFile = FileRead ("d:\log\log.txt")
If $rFile = "1" Then
FileClose($oFile)
Sleep (10000)
MouseClick("right", 0, 0)
Send ('{DOWN 3}')
Send ('{RIGHT}')
Send ('{ENTER}')
$oFile = FileOpen("d:\log\log.txt", 2)
$wFile = FileWrite ("d:\log\log.txt", "0")
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Сортировка "1" завершена')
Exit

 Else
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Сортировка "0"' & @CRLF & 'Задача отменена')
    Exit
EndIf

Else
$oFile = FileOpen("d:\log\log.txt", 10)
$wFile = FileWrite ("d:\log\log.txt", "1")
FileClose($oFile)
MsgBox(4096, 'Сообщение', 'Файл log создан' & @CRLF & 'Запустите задачу еще раз')
Exit
EndIf
 
Верх