문제

나는 플래시 게임을 위해 봇을 만들고 있는데 모든 것을 가져 오는 방법을 알아 냈습니다. 오토이트 내 C# 코드로 기능합니다.

string title = "Minesweeper";
string full = auto.WinGetTitle(title,"");
string handle = auto.WinGetHandle(full, "");
if (auto.WinExists(full, "") == 1)
    textBox1.Text = "window exists";
addressBox.Text = full;

for (int r = 1; r < 40; r++)
{
    auto.ControlClick(full, "", "", "left", 2, r * 10, r * 10);
    //auto.ControlClick(handle, "", "", "left", 2, r * 10, r * 10);
}

(나는 무의미한 사람이 손잡이가있는 사람이어야하고 그 반대도 마찬가지입니다. 광산.)

따라서 Minesweeper에서 작동하며 활성 창이 필요하지 않습니다. 플래시 게임에서 작동하려고 할 때 인터넷 익스플로러 창이 활성화되어야합니다. 이것이 플래시가 필요하거나 게임을 최소화 할 때 작동하도록 할 수있는 일이 있습니까?

Autoit 가져 오기를 사용하여 수행 할 필요가 없습니다. 나는 시도했다 문자 보내 사용자 32에서 한 시점에서도, 그러나 그것은 나에게 플래시 컨텐츠에 전혀 효과가 없었습니다.

방금 플래시 사이트 또는 Minesweeper 대신 임의의 웹 사이트에서 이것을 테스트했으며 어떤 이유로 든 Autoit 스크립팅 프로그램 내에서 실행하면 코드가 작동하지만 C# 프로그램에서는 코드가 작동합니다.

2012 년 6 월 20 일: 나는 이것이 핸들이 통과되는 방식과 관련이 있다고 확신합니다. Autoit Exe 파일을 호출하고 C# 코드에서 얻은 핸들을 인수로 사용하여 몇 가지 테스트를 수행했습니다. 0x 그것에, 그리고 또한 Autoit 코드 내에서 나는 그것을 문자열에서 hwnd로 캐스팅해야하므로 무언가가 될 수 있습니다. 즉, 가져 오는 기능이 핸들.

도움이 되었습니까?

해결책

윈도우 핸들 및 가변 처리 문제를 배제하려고 할 수있는 것. WingEttitle을 사용할 필요가 없어야합니다. "Minesweeper"창 제목은 제대로 작동해야합니다. Windows 7의 Autoit V3 Window Info Tool에 따르면 Minesweeper 창의 제목과 클래스는 모두 Minesweeper입니다. 너무 하드 코딩

auto.controlclick ( [제목 : Minesweeper; 클래스 : Minesweeper]," "," ","왼쪽 ", 2, r * 10, r * 10);

작동 할 수도 있습니다. 작동 방식에 대한 자세한 내용은 참조하십시오 고급 창 설명 Autoit 도움말 파일에서. 이것이 여전히 작동하지 않는다면 wintitlematchmode 도움말 파일에서. 이를 통해 Window Title Matching에서 Leniency에 대한 몇 가지 규칙을 설정하여 쉽게 할 수 있습니다.

Autoit X는 Autoit의 DLL/COM 컨트롤 버전입니다. DLL/COM 지원이있는 모든 언어에 Auotit을 추가하는 방법입니다. 다른 사람이 궁금해하는 경우 C#에서 Autoit를 사용하는 방법. 불행히도 Autoit X는 종종 주요 언어에서 개발 및 테스트에서 뒤쳐집니다. 문제는 AutoITX 프로젝트에 대한 배경을 제공하는 버그로 인해 문제가 발생한다고 생각할 이유가 없지만. 당신이 아직이 질문의 사본을 게시 해야하는 경우 ActiveX/Com 도움말 및 지원 (AutoItx) 법정. 수년에 걸쳐 내 경험에서 Autoit의 가장 좋은 점 중 하나는 커뮤니티 (여기서 많이 움직이지 않았습니다)입니다. 이 특정 포럼 섹션은 기꺼이 도와 줄 언어 개발자들에 의해 자주 사용됩니다.

당신에 관해서 6 월 20 일 Autoit는 모든 변수를 특별한 것을 감지 할 때까지 문자열과 같은 모든 변수를 처리합니다. 당신이 언급 한 0x로 시작하지 않는 한 값이 16 진임을 알지 못합니다. 이것은 과거에 나에게 모든 종류의 이상한 문제를 일으켰습니다. 여러 차례에 따라 Autoit가 올바르게 평가할 수 있도록 변수에 0을 추가해야했습니다. 이것은 AutoIT3에서 자주 발생하는 것이 아니라 명심해야 할 일만 발생합니다.

Autoit 참조 코드가 필요한 경우 Autoit Forum은 광산 봇을 만들었습니다 체크 아웃하고 도움이되는 것을 볼 수 있습니다.

다른 팁

C# 프로그램을 관리자로 실행하는지 확인하십시오. 이것이 한 메서드가 작동하고 다른 방법이 아닌 유일한 차이점입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top