Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


amel27

Цитата:
Можно через вызов внешнего (скомпилированного) скрипта:
Дело в том, что мне нужно именно в том же скрипте...

Пример который ты привёл, а точнее фраза которую я процетировал, навела меня на идею, которая решает эту проблему.
Вместо того, чтобы запускать ещё один скрипт, можно запустить этот-же скрипт, но с параметром ком. строки, а запуск мелодии в цикле, поставить под условие - т.е если скрипт запущен с ключём, то запустить цыкл с проигрыванием мелодии:

Код: Выделить весь код
#NoTrayIcon
Dim $SoundText, $Flag = 64

Select
 
Case $CmdLine[0] = 0

$Ask = MsgBox(36, "question", "Play the sound?")

If $Ask = 6 Then
	Run(@AutoItExe & " """ & @ScriptFullPath & """ /ps")
$SoundText = ", exit the script and stop the sound?"
$Flag = 36
EndIf

$Else = MsgBox($Flag, "else", "I am somthing else" & $SoundText)
If $Else = 6 Then
	Send("^!s")
Exit
ElseIf $SoundText <> "" Then
	MsgBox(64, "close msg", "for stop the sound, hold down thees hotkeys:" & @CR & "CTRL+ALT+S")
EndIf

Case $CmdLine[1] = "/ps"
HotKeySet("^!s", "ExitScript")

While 1
SoundPlay (@WindowsDir & "\media\tada.wav", 1)
Wend

EndSelect

Func ExitScript()
Exit 0
EndFunc
Там где выделенный текст, это позволяет запустить не закомпелированный скрипт с ком. строкой, для того чтобы вызвать этот-же закомпелированный скрипт с ком. срокой, нужно поменять выделенный код на это - Run(@ScriptFullPath & " /ps")

Цитата:
Например так:
Большое спасибо! -Правда в некоторых случаях, у минут и у часов будет нехватать нуля (0) . Например, если время будет такое: - 01:10:43, то отняв от него 8, результат мы получмим такой - 1:2:43. Поэтому я немного модифицыровал скрипт, и добавил определение для часов и минут на отсутствие нулей (см. выделенный текс в коде):

Код: Выделить весь код
$Time = 01:10:43
$Mins = 8

Dim $TMS0 = StringSplit ($Time,":")
Dim $TMS1 = $TMS0

$Mins = Mod (24*60 + $TMS0[1]*60 + $TMS0[2] - $Mins, 24*60)
$TMS1[2] = Mod ($Mins, 60)
$TMS1[1] = ($Mins - $TMS1[2])/60

Switch $TMS1[1]
	
Case 0 to 9
	$TMS1[1] = "0" & $TMS1[1]
EndSwitch
	
Switch $TMS1[2]
	
Case 0 to 9
	$TMS1[2] = "0" & $TMS1[2]
EndSwitch

$TimeResult = $TMS1[1] & ":" & $TMS1[2] & ":" & $TMS1[3]

EndIf
-----------------------------------

Есть один глупый вопрос, но я его всё же задам (любопытство преодаливает ) - Чем отличаются между собой: @CR, @LF, и @CRLF ?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 05:11, 20-09-2006 | #370