2011-01-13 3 views
0

하나의 파일을 사용하여 전역 파일의 전역 변수에 데이터를 보내고 다른 파일에 전역 파일에서 해당 데이터를 가져오고 시도합니다.데이터가 autoit에 보존되지 않습니다.

예 :

홈페이지 파일이 글로벌 파일에 데이터를 전송하고 다른 파일은 데이터가 보존되지 않는 몇 가지 이유를 들어 글로벌 파일

에서 데이터를 가져옵니다. 전역 파일에서 데이터를 가져올 때 해당 파일이 없습니다. 왜 이런거야?

;main.au3 
#include-once 
#include "global.au3" 


$g1 = "stuff" 
$g2 = "stuff" 

Run("copy.exe") 

;global.au3 
#include-once 

Global $g1 = "" 
Global $g2 = "" 

;copy.au3 
#include-once 
#include "global.au3" 

MsgBox(0, $g1, $g2) 

main.au3 및 copy.au3가 .EXE에 내장되어 있고 나는 그것을 실행하는 주에 두 번 클릭 : 여기

몇 가지 예제 코드입니다.

결과 : $의 G1 및 G2 $은 동일하다 ""와 ""그것은

답변

2

"물건"인쇄해야 global.au3가 업데이트되지 않기 때문입니다 경우. 변수에 초기 값을 제공합니다. #include "global.au3"를 사용하여 작성과 동일합니다 :

;main.au3 
#include-once 
Global $g1 = "" 
Global $g2 = "" 

$g1 = "stuff" 
$g2 = "stuff" 

Run("copy.exe") 

;copy.au3 
#include-once 
Global $g1 = "" 
Global $g2 = "" 

MsgBox(0, $g1, $g2) 

당신이 볼 수 있듯이, copy.au3 (copy.exe가) $g1""$g2 세트가 있습니다.

는 명령 행 매개 변수로 변수를 읽기/.ini 파일을 작성하거나 전달하는 IniRead()/IniWrite()을 사용할 수 있습니다, copy.exe$g1$g2 변수를 전달합니다.

주요

(; 컴파일 main.au3 및 copy.au3 더블 클릭 메인 .exe 실행하는 데 global.au3 필요 없음) : 여기

옵션 매개 변수 명령 줄의 예 .au3

;main.au3 

$g1 = "stuff" 
$g2 = "stuff" 

ShellExecute('copy.exe', $g1 & ' ' & $g2) 

copy.au3

;copy.au3 

$g1 = $CmdLine[1] 
$g2 = $CmdLine[2] 

MsgBox(0, $g1, $g2) 

Run()은 (나를 위해) 과거 $$의 고통 이었기 때문에 Run() 대신 ShellExecute()을 사용했습니다. 보통 ShellExecute()ShellExecuteWait()과 관련하여 문제가 없습니다.

또한 명령 줄 매개 변수에 대한 자세한 내용은 AutoIt 도움말의 "명령 줄 매개 변수"에서 검색 할 수 있습니다.

관련 문제