복사 / 붙여 넣기를 위해 MsgBox 라인으로 입력을 업데이트하는 AutoIt


1

나는 최근에 임의의 스크립트를 많이 만들었습니다. 아무 것도 유용하지 않지만 다양한 것을 이해하는 데 도움이되며 참조를 위해 자주 사용합니다 ... 어쨌든 내 스크립트 중 하나의 개요 버튼 옵션 중 하나 복사하여 붙여 넣을 수있는 코드를 생성하는 팝업 msgbox 생성기입니다 (스크립트에 많은 메시지 상자가 있음)
하지만 입력 '$ codebox'에 변수가 표시되는 데 문제가 있습니다.

$code = "MsgBox(0, $title, $message)"  
GUICtrlSetData($codebox, $code)

이 표시됩니다 :

"MsgBox(0, $title, $message)"   

변수 안에 저장된 데이터보다는.

이런 변수 안에 변수를 넣을 수 있습니까? 나는 이것을 어떻게 다른 방법으로 확신 할 수 없다.. 나는 주변을 수색했지만 비어 있었다.

추신 : 업데이트 된 스크립트는 여기 에서 찾을 수 있습니다


1
MsgBox 주위에 ""없이 시도 했습니까? (죄송 합니다만 코드를 간단히 살펴 보지 않았습니다.) ""$ code가 코드가 아니라 문자열이라고 생각합니다.
다리우스

좋아, 오류가 발생했지만 메시지 상자가 나타나고 코드 상자에 1이 반환됩니다.
ICE

1
나는 여전히 AutoIT 스크립트에 대해 배우고 있지만 MsgBox가 성공적으로 / 실패한 실행 후 값을 반환한다는 것을 알았습니다.
Darius

답변:


2

가능한 해결책 : $ code = MsgBox (0, $ title, $ message)

그러나 이것은 GUICtrlSetData가 아닌 해당 시점에 MessageBox를 트리거하고 표시합니다.

MsgBox에서 "ok"를 클릭하면 다음 링크에 따라 조치 값이 리턴됩니다. http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm

따라서 $ code가 1을 반환하는 이유는 확인을 클릭했음을 나타냅니다.

편집 : (이제 ICE가 얻고 싶은 것을 이해했습니다.)이 코드를 사용하십시오.

$code = 'MsgBox(0, ' & '"' & $title & '"' & ', ' & '"' & $message & '"' & ')'

당신과 다른 사람들이 WTF와 모든 "와 '사용법으로 나를 쏘기 전에 알겠습니다.

$ code를 인쇄하면 다음이 생성됩니다.

MsgBox(0, "test", "messages and messages and messages")

ICE가 원하는대로 해당 코드는 복사하여 ICE 코드에 바로 사용할 수있는 코드입니다. 따라서 왜 위의 코드를 생성하기 위해 작은 따옴표 ( ')를 사용하여 텍스트를 잠그고 큰 따옴표 ( ")를 일반 텍스트로 사용해야 하는가?

작은 따옴표와 큰 따옴표의 조합을 넣지 않으면 생성 된 것입니다 (테스트 후 찾은 것).

MsgBox(0, test, messages and messages and messages)

그리고 위의 코드는 간단한 복사 후 AutoIt에 붙여 넣은 후에는 작동하지 않습니다. 따옴표 (이중 또는 단일)를 추가해야합니다.

AutoIT는 작은 따옴표 나 큰 따옴표를 텍스트 마커로 사용하므로 편한 텍스트를 사용하십시오. 큰 따옴표를 텍스트로 이스케이프해야하는 경우 작은 따옴표를 텍스트 마커로 사용하고 그 반대의 경우도 마찬가지입니다.

도움이 되었기를 바랍니다.


도와 주셔서 감사합니다, 다리우스 코드 상자에 주어진 제목 및 메시지와 함께 MsgBox에 대한 명령을 표시하기 위해 상태 표시 줄을 가져 오려고하거나 실제로 MsgBox 명령을 스크립트에 배치하는 버튼 기능을 포함하여 실제로 입력 할 필요가 없습니다. MsgBox 명령 최종 목표는 스크립트 작성기 또는 텍스트 편집기를 만드는 것입니다. 한 번에 한 조각 씩 작업하고 있습니다.
ICE

@ICE 내가 당신의 의도를 잘못 이해했다면 죄송합니다 .. "상태 표시 줄"이 MsgBox에 대한 명령을 표시하도록하려면 현재 코드 ($ code = "MsgBox .....")가 정확히 무엇을 표시하는지에 따라 정확합니다. 표시되지만- ""이므로 MsgBox가 텍스트로 취급되고 있으므로 MsgBox가 표시되지 않습니다. MsgBox를 표시하고 코드를 표시하려면 ""및 $가없는 $ code2가 필요할 수 있습니다. 코드의 텍스트를 유지하기 위해 ""가있는 code1 또는 뭔가 잘못 이해하고 있습니까?
Darius

(가능한 경우) 실제로 메시지 상자를 표시하지 않고 전체 msgbox 명령을 코드 상자에 표시하고 싶습니다. $ code2 란 정확히 무엇을 의미합니까? 다른 변수에서 명령을 다시 잡아야합니까? 따옴표를 제거하면 명령 대신 1이 반환됩니다. 메시지 상자가 실제로 나타나지 않도록 할 수 있습니까? 그것이 분명하지 않다면 죄송합니다, 지금 제 마음은 온통 온통입니다 : P
ICE

좋아, 편집은 내가 찾던 것과 정확히 일치했습니다. 나는 일반적으로 따옴표에 문제가 있습니다. 이제 이유를 이해합니다. 다시 한번 감사합니다, 다리우스, 당신은 큰 도움이되었습니다!
ICE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.