Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
Подскажите, пожалуйста, как послать комбинацию ctrl+alt+del (нужна для блокировки/разблокировки компьютера). Простой Send не помогает.
Send ("^!{DEL}")
здравствуйте возник маленький вопрос как можно реализовать на autoit включение ПК в определёное время. Видел когдато такую функцию на языке "Ford" компьютер уходил в спящий режим а в указаное времья просыпался. Но это были первые шаги и реализовать это несмог а щас несмог найти эти записи.
как послать комбинацию ctrl+alt+del »
Вроде никак. Разве что только каким-нибудь клавиатурным хуком.
Видел когдато такую функцию на языке "Ford" компьютер уходил в спящий режим а в указаное времья просыпался »
"Ford"? Возможно имеется в виду «Forth (http://ru.wikipedia.org/wiki/Forth)» :) - См. тут (http://www.autoitscript.com/forum/index.php?showtopic=21575) есть вроде функция для просыпания в заданное время.
Maza Faka
24-12-2008, 08:00
послать комбинацию ctrl+alt+del (нужна для блокировки/разблокировки компьютера »
Чем не устраивает сочетание Win + L?
Send("#l")
Grammaton Cleric
24-12-2008, 08:05
Выдержка из справки по автоиту:
N.B. Windows не позволяет проводить симуляцию хорошо известной комбинации "CTRL-ALT-DEL"!
Попробуй, раз тебе это надо для блокировки -
Run (@WindowsDir&'\system32\rundll32.exe user32.dll,LockWorkStation')
------------
По поводу сообщения ниже... Уссацо!!!
Чем не устраивает сочетание Win + L? »
Опасная штука для того кто не юзает это так часто... я вот щас попробовал, и у меня ушло минут 10 на то чтобы вспомнить (точнее перебрать все возможные) пароль :o , а что делать если бы не вспомнил? :help:
Maza Faka
24-12-2008, 08:38
а что делать если бы не вспомнил? »
Есть прожки Линуксовые, для изменения\сброса пароля :)
Grammaton Cleric
24-12-2008, 08:46
Ну если уж начали флудить, то и я присоединюсь... Есть такая тема ERD Commander 2005 (2008) вот там можно управлять и паролями и всякой дребеденью... включая службу восстановления системы.
TERMINAL
24-12-2008, 09:50
Народ, подскажите плз...
1. Как определить наличие папки?
2. Имеется на С:\ папка "ПОЛЬЗОВАТЕЛЬ" и на D:\ в папке "Документы" папка "ПОЛЬЗОВАТЕЛЬ".... В папке "Документы" кроме папки "ПОЛЬЗОВАТЕЛЬ" могут присутствовать и другие папки (тоже самое и с диском С:\). Мне нужна как бы сверка, если на С:\ есть такАЯ папкА как и диске D:\ в папке "Документы", то выводится сообщение...если нет...ничего не происходит...
Заранее спс.
Grammaton Cleric
24-12-2008, 10:28
TERMINAL, ты уточни, что тебе надо. Просто проверить наличие папки с таким-же названием или надо сравнивать по размерам, контрольным суммам или еще чему нибудь?
----------
Можно, конечно и так:
if FileExists ('C:\ПОЛЬЗОВАТЕЛЬ')=1 AND FileExists ('D:\ДОКУМЕНТЫ\ПОЛЬЗОВАТЕЛЬ')=1 THEN MsgBox (0, 'test', 'есть обе папки!')
----------
Если что-то не так - уточни требования.
Как определить наличие папки? »
$IsFolder = _PathIsFolder(@ScriptDir)
ConsoleWrite("[" & @ScriptDir & "] IsFolder = " & $IsFolder & @CRLF)
Func _PathIsFolder($sPath)
Return Not StringInStr(FileGetAttrib($sPath & "\"), "D") = 0
EndFunc
2. Имеется на С:\ папка "ПОЛЬЗОВАТЕЛЬ" и на D:\ в папке "Документы" папка "ПОЛЬЗОВАТЕЛЬ".... В папке "Документы" кроме папки "ПОЛЬЗОВАТЕЛЬ" могут присутствовать и другие папки (тоже самое и с диском С:\). Мне нужна как бы сверка, если на С:\ есть такАЯ папкА как и диске D:\ в папке "Документы", то выводится сообщение...если нет...ничего не происходит... »
Не ясно, что нужно проверять? Если в обеихз местах есть папка "ПОЛЬЗОВАТЕЛЬ"? В чём тогда проблема, FileExists() вроде для этого и есть :) Ну или юзаем функцию выше.
TERMINAL
24-12-2008, 10:35
Grammaton Cleric, сравнивать по названиям папок...
Creat0R, спасибо, чесно говоря я думал что команда FileExists() только для файлов, а не для папок-это ставит всё на свои места.
Grammaton Cleric
24-12-2008, 10:40
Creat0R, А это что за выкладку ты дал в последнем сообщении? Чего-то я не могу понять, что это за функции....
это ставит всё на свои места »
На одного лишь FileExists я бы не стал полагаться, т.к указанный путь может быть и файлом (без расширения), т.ч _PathIsFolder самый надёжный вариант. Можно ещё и так для проверки сделать:
$IsFolder = _PathIsFolder(@WindowsDir)
ConsoleWrite("[" & @WindowsDir & "] IsFolder = " & $IsFolder & @CRLF)
Func _PathIsFolder($sPath)
If Not FileExists($sPath) Then Return SetError(1, 0, 0)
Return Not StringInStr(FileGetAttrib($sPath & "\"), "D") = 0
EndFunc
Чего-то я не могу понять, что это за функции.... »
Для проверки указанного пути на придмет каталога? :unsure:
TERMINAL
24-12-2008, 11:22
Подскажите плз как сделать, если дата больше указаной-выводится сообщение что больше, если дата меньше указанной-выводится сообщение что меньше
Работает только на целый год, а если выставить с 2008 по 2009 то неправильно паказывает:
If @MDAY&@MON&@YEAR>"09032009" Then MsgBox(64,@MDAY&@MON&@YEAR,"больше чем 09032009")
If @MDAY&@MON&@YEAR<"24122008" Then MsgBox(64,@MDAY&@MON&@YEAR,"меньше чем 25122008")
Заранее спс.
Creat0R, Во первых эта функция у меня ошибку выдаёт, а во вторых, где прописывать папку которую я хочу сверить?
как сделать, если дата больше указаной-выводится сообщение что больше, если дата меньше указанной-выводится сообщение что меньше »
См. функцию _DateDiff() и подобные.
эта функция у меня ошибку выдаёт »
Какую? :o
где прописывать папку которую я хочу сверить? »
Как где, вместо @WindowsDir (подставляй вместо параметра).
Maza Faka
24-12-2008, 11:43
если выставить с 2008 по 2009 то неправильно паказывает: »
У тебя во второй строчке - опечатка 24122008, наверное 25-е число хотел указать?
TERMINAL
24-12-2008, 11:59
Creat0R, Вроде вот ошибка
>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\test.au3" /autoit3dir "C:\Program Files\AutoIt3" /UserParams
+> Starting AutoIt3Wrapper v.1.7.3
>Running AU3Check (1.54.3.0) params: from:C:\Program Files\AutoIt3
+>AU3Check ended.rc:0
>Running:(3.2.0.1):C:\Program Files\AutoIt3\autoit3.exe "C:\test.au3"
[C:\WINDOWS] IsFolder = True
Maza Faka, да разницы нет и так и так пробовал...
Creat0R, не понял нужды в функции _DateDiff() и ей подобных-все пересмотрел раньше и ещё раз-думаю они в этом случае неполезны
Maza Faka
24-12-2008, 13:14
Вроде вот ошибка »
Ну и где там сообщение об ошибке?
да разницы нет и так и так пробовал »
А если наоборот?
If @YEAR & @MON & @MDAY > 20090309 Then MsgBox(64, @MDAY & @MON & @YEAR, "больше чем 09032009")
If @YEAR & @MON & @MDAY < 20081225 Then MsgBox(64, @MDAY & @MON & @YEAR, "меньше чем 25122008")
Чем не устраивает сочетание Win + L? »
Тем что этой же комбинацией нельзя разблокировать :(
Попробуй, раз тебе это надо для блокировки -
Run (@WindowsDir&'\system32\rundll32.exe user32.dll,LockWorkStation') »
А какой ключ для разблокировки? Или такого не существует?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.