![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Заставить скрипт расставлять по шаблону |
|
[решено] Заставить скрипт расставлять по шаблону
|
Старожил Сообщения: 410 |
Продолжение темы Сохранение результата работы скрипта
#include <GuiListView.au3> #include <Array.au3> #include <File.au3> $LogFile = @ScriptDir & "/Desktop.log" ;Переменная имени логфайла $sp=@DesktopWidth & "X" & @DesktopHeight ;Текущее разрешение $fo=@DesktopWidth/@DesktopHeight ;Соотношение сторон $sLines = _FileCountLines($LogFile) ;Если файла не существует его нужно создать, и вбить в него информацию по текущему состоянию рабочего стола. If Not FileExists($LogFile) Then _FileCreate($LogFile) GetPositions($sp,$fo) ElseIf FileExists($LogFile) Then For $i = 1 To $sLines ; от 1 до количества строк в файле выполнять: $command = FileReadLine($LogFile, $i) ; читаем строку в файле MsgBox(0,"Test",$command) ;выводим её на экран Next FileClose($LogFile) ;закрываем файл EndIf Func GetPositions($sp,$formula) Local $hWnd = ControlGetHandle("Program Manager", "", "[CLASS:SysListView32; INSTANCE:1]") If @error Then Return 0 Dim $Position[_GUICtrlListView_GetItemCount($hWnd)+1][3] If Not IsArray($Position) Then Return 0 $Position[0][0] = UBound($Position) -1 ;Сколько значков на рабочем столе FileWrite ($LogFile,"Параметры дисплея" & @CRLF & "Разрешение " & $sp & @CRLF & "Формат " & $fo & @CRLF);Записывам в файл информацию по дисплею. ;Запускаем цикл обработки массива For $i = 1 To $Position[0][0] ;Начало счетчкика 1, конец счетчика - количество значков $Position[$i][0] = _GUICtrlListView_GetItemText($hWnd, $i -1) ;Название значка $Position[$i][1] = _GUICtrlListView_GetItemPositionX($hWnd, $i -1) ;X-позиция значка $Position[$i][2] = _GUICtrlListView_GetItemPositionY($hWnd, $i -1) ;Y-позиция значка FileWrite($LogFile,$Position[$i][0] & "%" & $Position[$i][1] & "%" & $Position[$i][2] & @CRLF) ;Записываем полученные данные в файл Next EndFunc 1. Проверить существование файла Desktop.log Если его нет то: 2. Создать и записать в него всю нужную информацию. Если он есть то: 3. Прочитать имя ярлыка 4. Найти его координаты в файле Desktop.log 5. Если текущие координаты ярлыка не совпадают с тем что записано в файле, то переместить ярлык в нужное место экрана. Вот только с пунктами 4-5 проблема. Пока не могу сообразить как это сделать. |
|
------- Отправлено: 11:21, 02-04-2012 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:26, 02-04-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 410
|
Профиль | Отправить PM | Цитировать ferget, я так и делал, но почему-то $array[2] выдаёт ошибку
А это сам фрагмент, который выдаёт ошибку |
------- Отправлено: 13:46, 02-04-2012 | #3 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:52, 02-04-2012 | #4 |
Старожил Сообщения: 410
|
Профиль | Отправить PM | Цитировать Блин, точно! Вот я чайник!
СПАСИБО! тяжко писать первый скрипт на языке, который вообще не знаешь = ) а есть _GUICtrlListView_SetItemPosition по 64bit? |
|
------- Последний раз редактировалось McLotos, 02-04-2012 в 14:12. Отправлено: 13:58, 02-04-2012 | #5 |
Старожил Сообщения: 410
|
Профиль | Отправить PM | Цитировать Switch $aArray[1]
Case "Корзина" _GUICtrlListView_SetItemPosition($aArray[1], 1, $aArray[2], $aArray[3]) EndSwitch Почему не работает? =( |
------- Отправлено: 15:34, 02-04-2012 | #6 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать в функции _GUICtrlListView_SetItemPosition, первый аргумент HWND рабочего стола
|
Отправлено: 16:07, 02-04-2012 | #7 |
Старожил Сообщения: 410
|
Профиль | Отправить PM | Цитировать а что такое HWND? В гугле про него не написано.
|
------- Отправлено: 21:50, 02-04-2012 | #8 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:57, 02-04-2012 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Офис и Текст - Печать документов по шаблону. | DavyJohnes | Программное обеспечение Windows | 2 | 29-08-2011 22:20 | |
Как заставить скрипт от Sanja Alone (oeminfo.cmd) видеть обновы с 9-тизначным номером | JohnnyD | Автоматическая установка Windows 2000/XP/2003 | 0 | 21-02-2011 12:03 | |
Сортировка прокси по шаблону | zbruy | AutoIt | 0 | 21-12-2010 01:12 | |
[решено] Изменение голоса по шаблону | S.T.R.E.L.O.K. | Видео и аудио: обработка и кодирование | 6 | 30-07-2010 14:23 | |
putty как заставить крон запускать скрипт в назначенное время? | Вебмастеру | 3 | 30-09-2005 14:46 |
|