posted by 범벙이 2012. 9. 5. 23:03
RegWrite("HKEY_CURRENT_USER\Software\autoit", "autoitKey", "REG_SZ", "jnb")
   RegWrite ; 레지스트 생성..
   autoit      ; autoit 으로 생성될 이름 Software 하위키 밑에 autoit라는 키 가 없다면  autoit키를

                    생성해 줍니다.
    autoitKey ; autoit 의 하위 키
    "REG_SZ" -> 키의 종류를 나타 냅니다. 이 외에도 사용자의 설정에 따라 "이진값","DWORD값"

     등을 설정할 수 있습니다상기 내용은 문자열 값을 생성한다는 내용 입니다.
    jnb  ; autoitKey 안에 생성될 데이터 값.
 RegDelete("HKEY_CURRENT_USER\Software\autoit", "autoitKey ")
       RegDelete ; autoit 이라는 하위 값 autoitKey를 삭제

 

RegDelete("HKEY_CURRENT_USER\Software\autoit")
      RegDelete ; autoit 이라는 하위 값 을 포함한 모든 값 을 삭제..

♣ 레지스트리 값을 읽어와서 메세지 박스로 사용자에게 보여주기

$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
MsgBox(4096, "Program files are in:", $var)

 1. $var -> 이것은 변수를 선언 한 것입니다. 변수의 정의는 "언제든지 변할수 있는 값" 이며
      $var 이라는 변수에는 어떠한 값들을 넣을수 있습니다.
        프로그래밍에 대해서 기초가 없으신 분들은 조금 어려우실 듯 하여 예를 들자면
        1. a = 1, 
        2. 출력해라  
        3. 1  --->, a라는 변수에 1이라는 값을 넣고 a를 출력하면 1이라는 값이 나옵니다.
2. RegRead -> 레지스트리를 읽어라
3. "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion"
     -> 레지스트리를 읽어올 경로명 입니다.
4. "ProgramFilesDir"
      -> "ProgramFilesDir"이라는 키 안의 데이터를 말합니다.
, 일단 여기까지 정리하자면 RegRead                                              "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion"

  경로명에 있는  "ProgramFilesDir" 키 안의 데이터 값을 읽어서 $var 이라는 변수에

   넣으라는 애기 입니다.
5. MsgBox -> 메세지 박스 를 생성해라
6. 4096 -> 이것은 MsgBox 옵션인데 일단 넘어 가겠습니다.

    추후에 MsgBox에 대해 공부하고 자세히 설명해 드리겠습니다.^^;
7. "Program files are in:" -> 메세지 박스의 Title로 제목을 나타냅니다.
8. $var -> 메세지 박스에 보여줄 내용을 나타냅니다.

, 이제 위의 내용을 토탈 정리 하자면 아래와 같습니다.


RegRead"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion"

    경로명에 있는"ProgramFilesDir" 키 안의 데이터 값을 읽어서 $var 이라는 변수에 넣고
    메세지박스 제목이 "Program files are in:" 이고 $var에 저장된 데이터 값을

    메세지박스 내용으로 출력 하라는 내용 입니다.

♣ 레지스트리의 서브 키 값을 불러와 메세지 창을 불러 보기..........

For $i= 1 to 10
    $var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
    If @error <> 0 then ExitLoop
    MsgBox(4096, "SubKey #" & $i & " under HKLM\Software: ", $var)
Next

1. For $i= 1 to 10 -> For문은 반복문 입니다. $i 라는 변수에 1부터 10까지 의 값을 저장 합니다.
2. $var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i) -> $var이라는 변수에 
  "HKEY_LOCAL_MACHINE\SOFTWARE" 아래 서브키 1부터 10까지의 이름을 불러와

    입력하는 것을 나타 냅니다.
3. If @error <> 0 then ExitLoop -> 0(거짓)을 나타냅니다. <>같지 않다면을 뜻합니다.
       특, 조건이 거짓이 아니라면 해당 반복문을 계속 수행하는 것을 나타 냅니다.
4. MsgBox(4096, "SubKey #" & $i & " under HKLM\Software: ", $var) -> &

     구문을 연결하는 역할을 합니다.
    메세지 박스를 생성해라 제목은 "Subkey # & $i니까 "Subkey # 1" 부터

    "Subkey # 10"까지 나오겠죠
     그리고 또 &로 묶여졌네요, 그래서 전반적인 제목 문자열은 Subkey # 1 under HKLM\Software:

     부터 Subkey # 10 under HKLM\Software: 까지 나오겠네요
     그 다음이 나타낼 문자열인데 $var를 나타내군요 즉, 위에서 해석해 드린 2번 사항을

     문자열로 나타내겠네요

♣ 레지스트리의 서브 키 의 하위 값을 불러와 메세지 창을 불러오기

For $i = 1 to 100
$var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit", $i)
if @error <> 0 Then ExitLoop
MsgBox(4096, "Value Name  #" & $i & " under in AutoIt3 key", $var)
next

1. For $i= 1 to 100 -> For문은 반복문 입니다. $i 라는 변수에 1부터 100까지 의 값을 저장 합니다.
2. $var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit", $i)

    -> $var이라는 변수에 
    "HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit"

    서브키 아래 키값을 1부터 100까지의 이름을 불러와 입력하는 것을 나타 냅니다.
3. If @error <> 0 then ExitLoop -> 0(거짓)을 나타냅니다. <>같지 않다면을 뜻합니다.
    특, 조건이 거짓이 아니라면 해당 반복문을 계속 수행하는 것을 나타 냅니다.
4. MsgBox(4096, "Value Name  #" & $i & " under in AutoIt3 key", $var)

     -> &는 구문을 연결하는 역할을 합니다.
   메세지 박스를 생성해라 제목은 "Value Name # & $i니까 "Value Name # 1" 부터

    "Value Name # 100"까지 나오겠죠

  그리고 또 &로 묶여졌네요, 그래서 전반적인 제목 문자열은

  Value Name # 1 under in AutoIt2 key" 부터 Value Name # 100 under in AutoIt2 key 까지 나오겠네요
  그 다음이 나타낼 문자열인데 $var를 나타냄  즉, 위에서 해석해 드린 2번 사항을 문자열로 나타냄.

 


출처 // http://autoit.ip.ne.kr:8000/index.php?mid=lecture&document_srl=5292

posted by 범벙이 2012. 9. 5. 17:48
포함할 파일들이 너무 많거나 또는 복잡한 디렉토리 구조 일때

 

다량의 디렉토리를 만들어야 하며

 

많은 행을 FileInstall 함수로 채워야 합니다.

 

그럼 소스가 복잡해지고 소스를 작성하는데 오래 걸립니다...

복잡한 디렉토리 구조와 많은 파일을 하나의 압축 파일로 만들고

실행 했을때 그게 압축이 풀리며 실행 되게 하는 방법.

소스...

FileInstall("C:\Temp\archive.7z", @TempDir & "\archive.7z", 1)
FileInstall("C:\Temp\7za.exe", @TempDir & "\7za.exe", 1)
ShellExecuteWait(@TempDir & "\7za.exe", " x " & @TempDir & "\archive.7z" & " -aoa -y -o" & @TempDir, "", "open", @SW_HIDE)

archive 폴더를 7zip로 압축 합니다.

FileInstall 함수로 압축 파일과 7zip standalone console 파일 두가지를 포함하고

ShellExecuteWait 함수로 압축 파일의 압축을 푼거밖에는 없습니다.

7za.exe7zip standalone console로 dll 파일 필요없이 실행 파일 하나로

7zip의 모든 기능을 할 수있는 프로그램입니다.

 


 출처 // http://autoit.ip.ne.kr:8000/index.php?mid=lecture&document_srl=7499

posted by 범벙이 2012. 9. 5. 17:27
MsgBox(1,"Windows Type",@OSArch)

If @OSVersion = "X64" Then; or @OSArch depends on AutoIt version
    Send("HELLO WELCOME TO DOS PROMPT THIS IS X64 BIT WINDOWS")
    Send("{ENTER}")
EndIf

If @OSVersion = "X86" Then; or @OSArch depends on AutoIt version
    Send("HELLO WELCOME TO DOS PROMPT THIS IS X86 BIT WINDOWS")
    Send("{ENTER}")
EndIf