Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
Большая просьба ко всем участникам форума!!! Мне очень нужно создать(точнее преобразовать) одну прогу:
А именно из cmd скрипта в AutoIt3
@echo off
Color 0A
set A1=E:\Backup
set A2=E:\Games\CallofDuty4\players\profiles
echo.
echo Вы хотите:
echo.
echo 1. Сделать Backup личных данных
echo.
echo 2. Восстановить личные данные
echo.
Set /P Ch=Сделайте ваш выбор:
If "%Ch%"=="2" GoTo restore
If "%Ch%"=="1" GoTo backup
Exit /B
:backup
xcopy /E /I /H /Y %A2% %A1%
REG EXPORT "HKLM\Software\Activision\Call of Duty 4" %A1%\key.reg
pause
:restore
xcopy /E /I /H /Y %A1% %A2%
regedit /s %A1%\key.reg
pause
Поясню
1. Нужно сделать выбор, восстановления, или создания резерва
2.
set A1=E:\Backup
set A2=E:\Games\CallofDuty4\players\profiles
Строчки, для путей, т.к. они будут разные (думаю вы поняли...)
3. Експортировать 1 значение реестра "codkey" из "HKLM\Software\Activision\Call of Duty 4
из cmd скрипта в AutoIt3 »
Вот что получилось:
#include <GuiConstantsEx.au3>
;Указываем переменные
$A1 = "E:\Backup"
$A2 = "E:\Games\CallofDuty4\players\profiles"
;Строим GUI
$GUI = GUICreate("Backup & Restore", 300, 200)
GUICtrlCreateGroup("Укажите действие для выполнения:", 20, 30, 260, 120)
$Backup_Radio = GUICtrlCreateRadio("Сделать Backup личных данных", 40, 60)
GUICtrlSetState(-1, 1) ;Это будет действием "По умолчанию".
$Restore_Radio = GUICtrlCreateRadio("Восстановить личные данные", 40, 100)
$Start_Button = GUICtrlCreateButton("Выполнить", 20, 160, 80, 20)
GUISetState(@SW_SHOW, $GUI)
;Запускаем цикл для обработки событии
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Start_Button
If GUICtrlRead($Backup_Radio) = 1 Then
Backup_Proc()
ElseIf GUICtrlRead($Restore_Radio) = 1 Then
Restore_Proc()
EndIf
EndSwitch
WEnd
;Функция Backup'а
Func Backup_Proc()
DirCopy($A2, $A1, 1)
_RegExport("HKLM\Software\Activision\Call of Duty 4", "codkey", $A1 & "\key.reg")
EndFunc
;Функция Restore'а
Func Restore_Proc()
DirCopy($A1, $A2, 1)
Run("Regedit.exe /s " & $A1 & "\key.reg")
EndFunc
Func _RegExport($sKeyName, $sValueName, $sRegFile)
Local $sRegRead = RegRead($sKeyName, $sValueName)
Local $hOpen = FileOpen($sRegFile, 2)
FileWrite($hOpen, 'Windows Registry Editor Version 5.00' & @CRLF & @CRLF & _
"[" & $sKeyName & "]" & @CRLF & _
'"' & $sValueName & '"="' & StringRegExpReplace($sRegRead, '([\\"])', '\\\1') & '"' & @CRLF)
FileClose($hOpen)
EndFunc
Power Archiver 2007
$Title="PowerArchiver"
$SetupFile="powarc1022.exe" ; powarc1100b4.exe
$InstallPath=@ProgramFilesDir & "\Parch\"
BlockInput(1)
Run($SetupFile)
WinWaitActive($Title,"Welcome to PowerArchiver")
Send("{ENTER}")
If WinExists($Title,"Modify, Repair or Remove installation") Then
ControlClick($Title,"Modify, Repair or Remove installation","[Class:Button; Instance:3]","Left",1)
Send("&Remove")
WinWaitActive($Title,"Completing the PowerArchiver")
Send("{ENTER}")
DirRemove($InstallPath,1)
FileDelete(@UserProfileDir & "\SendTo\Parch.lnk")
FileDelete(@ProgramsDir & "\Parch.lnk")
FileDelete(@SystemDir & "\Parch.cmd")
RegDelete("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Parch")
RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Parch.exe")
exit
EndIf
WinWaitActive($Title,"Additional Install Options")
ControlClick($Title,"Additional Install Options","[Class:Button; Instance:4]","Left",1)
ControlClick($Title,"Additional Install Options","[Class:Button; Instance:5]","Left",1)
ControlClick($Title,"Additional Install Options","[Class:Button; Instance:7]","Left",1)
ControlClick($Title,"Additional Install Options","[Class:Button; Instance:8]","Left",1)
ControlClick($Title,"Additional Install Options","[Class:Button; Instance:9]","Left",1)
ControlClick($Title,"Additional Install Options","[Class:Button; Instance:10]","Left",1)
Send("{ENTER}")
WinWaitActive($Title,"Select Installation Folder")
ControlClick($Title,"Select Installation Folder","[Class:Button; Instance:2]","Left",1)
WinWaitActive($Title,"Change current destination folder")
ControlSetText($Title,"Change current destination folder","[Class:RichEdit20W]",$InstallPath,1)
ControlClick($Title,"Change current destination folder","[Class:Button; Instance:1]","Left",1)
WinWaitActive($Title,"Select Installation Folder")
ControlClick($Title,"Select Installation Folder","[Class:Button; Instance:1]","Left",1)
WinWaitActive($Title,"Ready to Install")
Send("{ENTER}")
WinWaitActive($Title,"Completing the PowerArchiver")
ControlClick($Title,"","[Class:Button; Instance:4]","Left",1)
ControlClick($Title,"","[Class:Button; Instance:5]","Left",1)
Send("{ENTER}")
$file = FileOpen($InstallPath & "\desktop.ini", 10)
FileWrite($file, "[.ShellClassInfo]" & @CRLF)
FileWrite($file, "IconFile=Powerarc.exe" & @CRLF)
FileWrite($file, "IconIndex=0" & @CRLF)
FileClose($file)
FileSetAttrib($InstallPath, "+R")
FileCreateShortcut($InstallPath & "\Powerarc.exe", @UserProfileDir & "\SendTo\Parch.lnk", $InstallPath, "", "Parch", "", "", 0, @SW_SHOWNORMAL)
FileCreateShortcut($InstallPath & "\Powerarc.exe", @ProgramsDir & "\Parch.lnk", $InstallPath, "", "Parch", "", "", 0, @SW_SHOWNORMAL)
; Registry
RegWrite("HKCU\Software\PowerArchiver\General", "Regname", "REG_SZ", "*")
RegWrite("HKCU\Software\PowerArchiver\General", "Regnumber", "REG_SZ", "*")
;
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Parch", "", "REG_SZ", "&Parch")
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Parch\command", "", "REG_SZ", $InstallPath & "\Powerarc.exe")
;
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Parch.exe", "", "REG_SZ", $InstallPath & "\Powerarc.exe")
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Parch.exe", "Path", "REG_SZ", $InstallPath & "\")
$file = FileOpen(@SystemDir & "\Parch.cmd", 10)
FileWrite($file, "@start " & $InstallPath & "\Powerarc.exe " & """%1""" & @CRLF)
FileClose($file)
BlockInput(0)
Скрипт работает, однако много ли ошибок? Можно ль оптимизировать что нибудь тут?
:)
При работе скрипта :
#include <array.au3>
$patch="C:\Documents and Settings\All Users\Документы\Моя музыка\Образцы музыки"
$file =FileOpenDialog('',$patch, "(*.mp3)", 1 )
$oId3 = ObjCreate("CDDBControl.CddbID3Tag")
$oId3.LoadFromFile ($file, False)
MsgBox(0,'Композиция',$oId3.Title)
тег файла , записанный в кирилице , возвращается в виде : Íåòðóäîâûå äîõîäû
Подскажите , ,пожалуйста , как перекодировать в кирилицу ?
shyra1976
22-09-2008, 11:14
Скажите А можно ли по шагово сделат Debugging?
Спасибо
Creat0R, Я понял, спасибо, но есть небольшие просьбы, можно ли в этот код вставить прогресс бар. И еще, по разделу реестра, мне нужно вырвать именно одно значение из того раздела, а именно "codkey"
P.S. Как изменить иконку на готовом exe ???
Можно ль оптимизировать что нибудь тут? »
Можно, например я бы как можно меньше использовал Send().
В ControlClick() не обязательно CLASS указывать, а в конце вместо "Left" лучше использовать "Primary", т.к кнопки мышки могут быть изменены (для левшей):
ControlClick($Title, "Modify, Repair or Remove installation", "Button3", "Primary", 1)
Также используется WinWaitActive(), хотя после запуска приложения окно не обязательно будет активированно, например если в системе будет выведенно какое то сообщение :) - Поэтому лучше просто ждать окно, потом активировать его, а потом ждать активирования..
Вобщем вот: Opt("WinWaitDelay", 1) ;Это чтобы быстрее окна отлавливал
Global $iShowErrorMessages = False ;Если тут выставить 'True' то будут отображаться сообщения об ошибках
Global $Title = "PowerArchiver"
Global $SetupFile = "powarc1022.exe" ; powarc1100b4.exe
Global $InstallPath = @ProgramFilesDir & "\Parch\"
BlockInput(1)
Run($SetupFile)
If @error Then _ProduceErrorMsg("There was an error (%i) to execute [powarc1022.exe]", 1, 1)
_WinWaitWinActivate($Title, "Welcome to PowerArchiver")
Send("{ENTER}")
If WinExists($Title, "Modify, Repair or Remove installation") Then
ControlClick($Title, "Modify, Repair or Remove installation", "Button3", "Primary", 1)
Send("&Remove")
_WinWaitWinActivate($Title, "Completing the PowerArchiver")
Send("{ENTER}")
DirRemove($InstallPath, 1)
FileDelete(@UserProfileDir & "\SendTo\Parch.lnk")
FileDelete(@ProgramsDir & "\Parch.lnk")
FileDelete(@SystemDir & "\Parch.cmd")
RegDelete("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Parch")
RegDelete("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Parch.exe")
Exit
EndIf
_WinWaitWinActivate($Title, "Additional Install Options")
ControlClick($Title, "Additional Install Options", "Button4", "Primary", 1)
ControlClick($Title, "Additional Install Options", "Button5", "Primary", 1)
ControlClick($Title, "Additional Install Options", "Button7", "Primary", 1)
ControlClick($Title, "Additional Install Options", "Button8", "Primary", 1)
ControlClick($Title, "Additional Install Options", "Button9", "Primary", 1)
ControlClick($Title, "Additional Install Options", "Button10", "Primary", 1)
Send("{ENTER}")
_WinWaitWinActivate($Title, "Select Installation Folder")
ControlClick($Title, "Select Installation Folder", "Button2", "Primary", 1)
_WinWaitWinActivate($Title, "Change current destination folder")
ControlSetText($Title, "Change current destination folder", "RichEdit20W", $InstallPath, 1)
ControlClick($Title, "Change current destination folder", "Button1", "Primary", 1)
_WinWaitWinActivate($Title, "Select Installation Folder")
ControlClick($Title, "Select Installation Folder", "Button1", "Primary", 1)
_WinWaitWinActivate($Title, "Ready to Install")
Send("{ENTER}")
_WinWaitWinActivate($Title, "Completing the PowerArchiver")
ControlClick($Title, "", "Button4", "Primary", 1)
ControlClick($Title, "", "Button5", "Primary", 1)
Send("{ENTER}")
$hFile = FileOpen($InstallPath & "\desktop.ini", 10)
If $hFile = -1 Then
_ProduceErrorMsg("There was an error (%i) to open the file [desktop.ini]", 2, 0)
Else
FileWrite($hFile, "[.ShellClassInfo]" & @CRLF)
FileWrite($hFile, "IconFile=Powerarc.exe" & @CRLF)
FileWrite($hFile, "IconIndex=0" & @CRLF)
FileClose($hFile)
EndIf
FileSetAttrib($InstallPath, "+R")
FileCreateShortcut($InstallPath & "\Powerarc.exe", @UserProfileDir & "\SendTo\Parch.lnk", _
$InstallPath, "", "Parch", "", "", 0, @SW_SHOWNORMAL)
FileCreateShortcut($InstallPath & "\Powerarc.exe", @ProgramsDir & "\Parch.lnk", _
$InstallPath, "", "Parch", "", "", 0, @SW_SHOWNORMAL)
; Registry
RegWrite("HKCU\Software\PowerArchiver\General", "Regname", "REG_SZ", "*")
RegWrite("HKCU\Software\PowerArchiver\General", "Regnumber", "REG_SZ", "*")
;
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Parch", "", "REG_SZ", "&Parch")
RegWrite("HKLM\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Parch\command", "", _
"REG_SZ", $InstallPath & "\Powerarc.exe")
;
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Parch.exe", "", "REG_SZ", $InstallPath & "\Powerarc.exe")
RegWrite("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\Parch.exe", "Path", "REG_SZ", $InstallPath & "\")
$hFile = FileOpen(@SystemDir & "\Parch.cmd", 10)
If $hFile = -1 Then
_ProduceErrorMsg("There was an error (%i) to open the file [Parch.cmd]", 3, 1)
Else
FileWrite($hFile, "@start " & $InstallPath & "\Powerarc.exe " & """%1""" & @CRLF)
FileClose($hFile)
EndIf
Func OnAutoItExit()
BlockInput(0)
EndFunc ;==>OnAutoItExit
Func _WinWaitWinActivate($sTitle, $sText, $iWait = 0)
WinWait($sTitle, $sText, $iWait)
WinActivate($sTitle, $sText)
WinWaitActive($sTitle, $sText, $iWait)
EndFunc ;==>_WinWaitWinActivate
Func _ProduceErrorMsg($sMsg, $iError, $iExit = 0)
If $iShowErrorMessages Then
If $iExit Then $sMsg &= @CRLF & @CRLF & "OK ===> EXIT"
MsgBox(262144 + 16, $Title & " - Auto-Installer", StringFormat($sMsg, $iError))
EndIf
If $iExit Then Exit
EndFunc ;==>_ProduceErrorMsg
P.S
При проверке синтаксиса в версии 3.2.12.x будут ошибки на ControlClick(), там забли обновить утилиту проверки синтаксиса в соответствии с новыми параметрами функции, в последних бетах этот баг исправили (http://svn.autoitscript.com/trac/ticket/551).
как перекодировать в кирилицу ? »
У меня не получилось с теми функциями что имеются в наличии, возможно объект CDDBControl.CddbID3Tag имеет свойство указывать кодировку?
А вообще лучше использовать UDF ID3 (http://www.autoitscript.com/forum/index.php?showtopic=43950), там вроде нормально с кириллицей.
можно ли по шагово сделат Debugging? »
Полагаю что да.
можно ли в этот код вставить прогресс бар »
Можно, но для какой цели? см. в справке «GUICtrlCreateProgress».
нужно вырвать именно одно значение из того раздела, а именно "codkey" »
Поправил свой предыдущий пост с кодом, добавил это:
_RegExport("HKLM\Software\Activision\Call of Duty 4", "codkey", $A1 & "\key.reg")
Func _RegExport($sKeyName, $sValueName, $sRegFile)
Local $sRegRead = RegRead($sKeyName, $sValueName)
Local $hOpen = FileOpen($sRegFile, 2)
FileWrite($hOpen, 'Windows Registry Editor Version 5.00' & @CRLF & @CRLF & _
"[" & $sKeyName & "]" & @CRLF & _
'"' & $sValueName & '"="' & StringRegExpReplace($sRegRead, '([\\"])', '\\\1') & '"' & @CRLF)
FileClose($hOpen)
EndFunc
Creat0R, Прогресс бар нужен для показа прогресса копирования(иногда копирование затягивается) Поправил свой предыдущий пост с кодом, добавил это »
НЕ работает, всмысле не правильно экспортируестся значение оно получается
楗摮睯敒楧瑳祲䔠楤潴敖獲潩⸵〰䡛䱋屍潓瑦慷敲䅜瑣癩獩潩屮慃汬漠畄祴㐠൝∊潣此祥㴢㠢䕔奄兑坅儴䵅兙㥇㌰≄
shyra1976
22-09-2008, 17:20
Скажите А можно ли по шагово сделат Debugging?
Если да , то как?
Спасибо
А вообще лучше использовать UDF ID3, там вроде нормально с кириллицей. »
Однако в UDF ID3.au3 нет функции записи тега , а CDDBControl.CddbID3Tag позволяет и запись !
Кстати своя запись кирилицы воспроизводится нормально
Пример :
#include <array.au3>
$patch="C:\Documents and Settings\All Users\Документы\Моя музыка\Образцы музыки"
$file =FileOpenDialog('',$patch, "(*.mp3)", 1 )
$oId3 = ObjCreate("CDDBControl.CddbID3Tag")
$oId3.LoadFromFile ($file, False)
$New3 = ObjCreate("CDDBControl.CddbID3Tag")
$New3.LoadFromFile ($file, False)
$New3.Title='Иван'
$New3.SaveToFile ($file)
MsgBox(0,'Композиция',$oId3.Title & @cr & $New3.Title)
И перекодировку можно выполнить , сравнивая два алфавита : кодированный и русский.
Только где хранить кодированный алфавит (àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ) ???
В скрипте не получается.
Приходится создавать текстовый файл с кодированным алфавитом , затем читать его и , сравнивая , раскодировать
Это не есть удобно.
А где хранить ???.
Вы не могли бы подсказать, как решить такую задачу:
Есть интернет подключение (ADSL, Стрим). Раз в сутки провайдер разрывает соединение.
Т.к. модем USB - подключаться заново приходиться вручную.
Как реаливать в AutoIt:
Постоянная проверка соcтояния подключения и при его отсутствии производить подключение.
Как подключить - на форуме нашел:
$ConnectionName="AccessRunner DSL"
Run(@SystemDir&"\rasphone.exe -f """&@AppDataCommonDir&"\Microsoft\Network\Connections\Pbk\rasphone.pbk"" -d """&$ConnectionName&"""")
WinWait ("Подключение к AccessRunner DSL", "По&льзователь")
WinActivate ("Подключение к AccessRunner DSL", "По&льзователь")
ControlClick ("Подключение к AccessRunner DSL", "По&льзователь", "Button4")
А вот с зацикленной проверкой не получается...
Creat0R, а если на основе этого скрипта примерчик?
Типа он для меня как образец, потому-что охватывает многое часто встречающееся,
а я только начинающий. Всмысле можно переделать только диалог, без всяки реестров, файлов итп.
всмысле мне надо, чтоб скрыть все окошки! Типа для тихой установки, чтоб GUI вообще запрятать!
Я вообще-то очарован автоитом и его возможностями, но времени не хватает проникнуться изучением,
хотя я хотел бы его знать от и до! Но щас хотяб один рабочий шаблон наладить, чтоб инсталлеры штамповать! Вообщем этот образец пойдёть, только надо окна убрать...
ЗЫ в chm мало, что понятно и примеры все не к тому что нужно... Я вот своим умом уже доганять стал что
[Class: ;Instanse: ] это то же самое что и слова на окнах, как бы можно и так и так лабать,
конечно же Класс выигрывает повсему! Только я чё-то в Alcohol окне сколько не вбивал класс который
сграбил AutiInfo.exe что -то не пошло... иль я по неопытности ошибок понаделал...
:)
не правильно экспортируестся значение »
А откуда мне было знать что значение должно быть на китайском? http://files.myopera.com/Creat0R/Opera_AC/Icons/Kolobki/crazy.gif
Можно заменить FileOpen($sRegFile, 2) на FileOpen($sRegFile, 128+2).
можно ли по шагово сделат Debugging? »
Можно, я уже ответил на этот вопрос, но вам придётся дать больше информации чтобы получить полноценный ответ ;)
А где хранить ? »
В массиве?
Я только не понял суть перекодирвки...
если на основе этого скрипта примерчик? »
Не уверен что понял, на основе чего?
Я только не понял суть перекодирвки... »
Примерно так :
$tagRus=Decodering($tag)
MsgBox(0, "", $tag & @cr & $tagRus)
;===================================
Func Decodering($str)
;===================================
$var = FileOpen(@ScriptDir & '\' & "Alphavit.txt", 0)
If $var = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$line1 = FileReadLine($var);строка алф-та в виде : àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ
$line2 = FileReadLine($vaк);строка алф-та в виде : абвгдежзийклмнопрстуфхцчшщьыэюя
FileClose($var)
;MsgBox(0, "Lines read:", $line1 & @cr & $line2)
dim $AA
For $i = 1 To StringLen($str)
$M=StringMid($str, $i, 1);
$k = StringInStr($line1, $M);
If $k=0 Then
$M2=$M ;
Else
$M2=StringMid($line2, $k, 1);
EndIf
If Asc($M)< 91 and Asc($M)>64 Then $M2 = Chr (Asc($M2)-32); Замена строчных букв на заглавные
$AA&=$M2
Next
Return $AA
EndFunc ; ===> Decodering
Текстовый файл Alphavit.txt содержит 2 строки :
àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ
абвгдежзийклмнопрстуфхцчшщьыэюя
Вопрос : Куда заложить эту строку àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ на постоянное хранение ?
(вместо файла Alphavit.txt ) . чтобы обойтись без него
А откуда мне было знать что значение должно быть на китайском?
Можно заменить FileOpen($sRegFile, 2) на FileOpen($sRegFile, 128+2). »
Почему на китайском??? НА английском... Все равно не работает...
"codkey"="8TEDYQQEW4QEMYQG****"
Это выглядит так.... (**** последние 4 цифры и буквы)
И я так и не понял про прогресс бар можно его вставить??
На основе этого >
Вобщем вот:
Поправленная версия »
Вот изначальный пост http://forum.oszone.ru/post-905321-923.html
я знаю сумбурно написал... просто там задача была в инсталяторе понажимать кнопки, ввести путь
установки - всё это довольно часто одинакого происходит, больше мне пока ничего не надо.
А тот скрипт, что "Поправленная версия" примерно хорошее начало, только еслиб там скрыть окна.
Мне тут уже подсказывали, но я одно с другим не смог связать самостоятельно.
Лучше уж на этом готовом и работающем скрипте, пожалуста! Надо чтоб окон не было видно! Никаких :)
gvshil, а опция перезвонить при разрыве связи не помогает? (В свойствах подключения убери галку Запрашивать имя, пароль и т.д.)
Посмотри ещё в Свойствах обозревателя, вкладку Подключения.
Или чётко напиши, что нужно.
Примерно так : »
Не работает так у меня, сделай полный рабочий пример, а где хранить это не проблема, в переменной :) - Просто сам скрипт перекодировать в UTF-8 (в SciTE есть такая возможность), чтобы сохранилась кодировка.
Почему на китайском??? НА английском »
Просто то что я вижу, это похоже на китайский, как могло до такого дойти не пойму.
Только что проверил, нормально экспортируется.
можно его вставить? »
Для копирования папки? можно, но это займёт больше времени (сам процесс копирования), можно просто вывести прогресс для наглядности, чтобы юзер думал что процесс идёт :)
только еслиб там скрыть окна »
На скрытых окнах может и не сработать, но можно попробовать:
WinSetState($Title, "", @SW_HIDE)
Не работает так у меня, сделай полный рабочий пример, а где хранить это не проблема, в переменной - Просто сам скрипт перекодировать в UTF-8 (в SciTE есть такая возможность), чтобы сохранилась кодировка »
Вот полный рабочий пример :
#include <array.au3>
$patch="C:\Documents and Settings\All Users\Документы\Моя музыка\Образцы музыки"
$file =FileOpenDialog('',$patch, "(*.mp3)", 1 )
$oId3 = ObjCreate("CDDBControl.CddbID3Tag")
$oId3.LoadFromFile ($file, False)
$tag=$oId3.Title
$tagRus=Decodering($oId3.Title); ===>
MsgBox(0, "", $tag & @cr & $tagRus)
$oId3.Title='Новый тег'
$oId3.SaveToFile ($file)
;===================================
Func Decodering($str)
;===================================
$var = FileOpen(@ScriptDir & '\' & "Alphavit.txt", 0)
If $var = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$line1 = FileReadLine($var);строка алф-та в виде : àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ
$line2 = FileReadLine($var);строка алф-та в виде : абвгдежзийклмнопрстуфхцчшщьыэюя
FileClose($var)
;MsgBox(0, "Lines read:", $line1 & @cr & $line2)
dim $AA
For $i = 1 To StringLen($str)
$M=StringMid($str, $i, 1);
$k = StringInStr($line1, $M);
If $k=0 Then
$M2=$M ;
Else
$M2=StringMid($line2, $k, 1);
EndIf
If Asc($M)< 91 and Asc($M)>64 Then $M2 = Chr (Asc($M2)-32); Замена строчных букв на заглавные
$AA&=$M2
Next
Return $AA
EndFunc ; ===> Decodering
Текстовый файл Alphavit.txt содержит 2 строки :
àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ
абвгдежзийклмнопрстуфхцчшщьыэюя
Однако если выполнить перекодировку в UTF-8 в SciTE , тогда уже текст русского алфавита воспринимается неверно ???
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.