Войти

Показать полную графическую версию : [Архив - Часть 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

6757439
23-12-2008, 18:17
Подскажите, пожалуйста, как послать комбинацию ctrl+alt+del (нужна для блокировки/разблокировки компьютера). Простой Send не помогает.
Send ("^!{DEL}")

litus
24-12-2008, 07:28
здравствуйте возник маленький вопрос как можно реализовать на autoit включение ПК в определёное время. Видел когдато такую функцию на языке "Ford" компьютер уходил в спящий режим а в указаное времья просыпался. Но это были первые шаги и реализовать это несмог а щас несмог найти эти записи.

Creat0R
24-12-2008, 07:57
как послать комбинацию 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')
------------
По поводу сообщения ниже... Уссацо!!!

Creat0R
24-12-2008, 08:10
Чем не устраивает сочетание 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', 'есть обе папки!')
----------
Если что-то не так - уточни требования.

Creat0R
24-12-2008, 10:34
Как определить наличие папки? »

$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, А это что за выкладку ты дал в последнем сообщении? Чего-то я не могу понять, что это за функции....

Creat0R
24-12-2008, 11:13
это ставит всё на свои места »
На одного лишь 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, Во первых эта функция у меня ошибку выдаёт, а во вторых, где прописывать папку которую я хочу сверить?

Creat0R
24-12-2008, 11:43
как сделать, если дата больше указаной-выводится сообщение что больше, если дата меньше указанной-выводится сообщение что меньше »
См. функцию _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")

6757439
24-12-2008, 13:27
Чем не устраивает сочетание Win + L? »
Тем что этой же комбинацией нельзя разблокировать :(

Попробуй, раз тебе это надо для блокировки -
Run (@WindowsDir&'\system32\rundll32.exe user32.dll,LockWorkStation') »
А какой ключ для разблокировки? Или такого не существует?




© OSzone.net 2001-2012