Войти

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

Medic84
21-09-2008, 20:04
Большая просьба ко всем участникам форума!!! Мне очень нужно создать(точнее преобразовать) одну прогу:
А именно из 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

Creat0R
22-09-2008, 00:21
из 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

semiono
22-09-2008, 06:56
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)


Скрипт работает, однако много ли ошибок? Можно ль оптимизировать что нибудь тут?
:)

gregaz
22-09-2008, 09:29
При работе скрипта :

#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?
Спасибо

Medic84
22-09-2008, 13:29
Creat0R, Я понял, спасибо, но есть небольшие просьбы, можно ли в этот код вставить прогресс бар. И еще, по разделу реестра, мне нужно вырвать именно одно значение из того раздела, а именно "codkey"

P.S. Как изменить иконку на готовом exe ???

Creat0R
22-09-2008, 15:45
Можно ль оптимизировать что нибудь тут? »
Можно, например я бы как можно меньше использовал 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).

Creat0R
22-09-2008, 16:23
как перекодировать в кирилицу ? »
У меня не получилось с теми функциями что имеются в наличии, возможно объект 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

Medic84
22-09-2008, 17:18
Creat0R, Прогресс бар нужен для показа прогресса копирования(иногда копирование затягивается) Поправил свой предыдущий пост с кодом, добавил это »
НЕ работает, всмысле не правильно экспортируестся значение оно получается
楗摮睯⁳敒楧瑳祲䔠楤潴⁲敖獲潩⸵〰਍਍䡛䱋屍潓瑦慷敲䅜瑣癩獩潩屮慃汬漠⁦畄祴㐠൝∊潣此祥㴢㠢䕔奄兑坅儴䵅兙㥇㌰≄਍

shyra1976
22-09-2008, 17:20
Скажите А можно ли по шагово сделат Debugging?
Если да , то как?
Спасибо

gregaz
22-09-2008, 17:33
А вообще лучше использовать 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)

И перекодировку можно выполнить , сравнивая два алфавита : кодированный и русский.
Только где хранить кодированный алфавит (àáâãäåæçèéêëìíîïðñòóôõö÷øùüûýþÿ) ???
В скрипте не получается.
Приходится создавать текстовый файл с кодированным алфавитом , затем читать его и , сравнивая , раскодировать
Это не есть удобно.
А где хранить ???.

gvshil
22-09-2008, 17:46
Вы не могли бы подсказать, как решить такую задачу:
Есть интернет подключение (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")

А вот с зацикленной проверкой не получается...

semiono
22-09-2008, 18:00
Creat0R, а если на основе этого скрипта примерчик?
Типа он для меня как образец, потому-что охватывает многое часто встречающееся,
а я только начинающий. Всмысле можно переделать только диалог, без всяки реестров, файлов итп.
всмысле мне надо, чтоб скрыть все окошки! Типа для тихой установки, чтоб GUI вообще запрятать!
Я вообще-то очарован автоитом и его возможностями, но времени не хватает проникнуться изучением,
хотя я хотел бы его знать от и до! Но щас хотяб один рабочий шаблон наладить, чтоб инсталлеры штамповать! Вообщем этот образец пойдёть, только надо окна убрать...
ЗЫ в chm мало, что понятно и примеры все не к тому что нужно... Я вот своим умом уже доганять стал что
[Class: ;Instanse: ] это то же самое что и слова на окнах, как бы можно и так и так лабать,
конечно же Класс выигрывает повсему! Только я чё-то в Alcohol окне сколько не вбивал класс который
сграбил AutiInfo.exe что -то не пошло... иль я по неопытности ошибок понаделал...
:)

Creat0R
22-09-2008, 18:03
не правильно экспортируестся значение »
А откуда мне было знать что значение должно быть на китайском? http://files.myopera.com/Creat0R/Opera_AC/Icons/Kolobki/crazy.gif

Можно заменить FileOpen($sRegFile, 2) на FileOpen($sRegFile, 128+2).

можно ли по шагово сделат Debugging? »
Можно, я уже ответил на этот вопрос, но вам придётся дать больше информации чтобы получить полноценный ответ ;)

А где хранить ? »
В массиве?
Я только не понял суть перекодирвки...

если на основе этого скрипта примерчик? »
Не уверен что понял, на основе чего?

gregaz
22-09-2008, 19:36
Я только не понял суть перекодирвки... »

Примерно так :


$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 ) . чтобы обойтись без него

Medic84
22-09-2008, 19:59
А откуда мне было знать что значение должно быть на китайском?
Можно заменить FileOpen($sRegFile, 2) на FileOpen($sRegFile, 128+2). »
Почему на китайском??? НА английском... Все равно не работает...

"codkey"="8TEDYQQEW4QEMYQG****"
Это выглядит так.... (**** последние 4 цифры и буквы)
И я так и не понял про прогресс бар можно его вставить??

semiono
22-09-2008, 22:41
На основе этого >
Вобщем вот:
Поправленная версия »
Вот изначальный пост http://forum.oszone.ru/post-905321-923.html

я знаю сумбурно написал... просто там задача была в инсталяторе понажимать кнопки, ввести путь
установки - всё это довольно часто одинакого происходит, больше мне пока ничего не надо.
А тот скрипт, что "Поправленная версия" примерно хорошее начало, только еслиб там скрыть окна.
Мне тут уже подсказывали, но я одно с другим не смог связать самостоятельно.
Лучше уж на этом готовом и работающем скрипте, пожалуста! Надо чтоб окон не было видно! Никаких :)

SyDr
22-09-2008, 22:59
gvshil, а опция перезвонить при разрыве связи не помогает? (В свойствах подключения убери галку Запрашивать имя, пароль и т.д.)

Посмотри ещё в Свойствах обозревателя, вкладку Подключения.


Или чётко напиши, что нужно.

Creat0R
22-09-2008, 23:25
Примерно так : »
Не работает так у меня, сделай полный рабочий пример, а где хранить это не проблема, в переменной :) - Просто сам скрипт перекодировать в UTF-8 (в SciTE есть такая возможность), чтобы сохранилась кодировка.

Почему на китайском??? НА английском »
Просто то что я вижу, это похоже на китайский, как могло до такого дойти не пойму.
Только что проверил, нормально экспортируется.

можно его вставить? »
Для копирования папки? можно, но это займёт больше времени (сам процесс копирования), можно просто вывести прогресс для наглядности, чтобы юзер думал что процесс идёт :)

только еслиб там скрыть окна »
На скрытых окнах может и не сработать, но можно попробовать:

WinSetState($Title, "", @SW_HIDE)

gregaz
23-09-2008, 07:21
Не работает так у меня, сделай полный рабочий пример, а где хранить это не проблема, в переменной - Просто сам скрипт перекодировать в 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