Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] скрипт для автоподключения CS:Source (http://forum.oszone.net/showthread.php?t=171114)

rustsss 24-03-2010 16:43 1376179

скрипт для автоподключения CS:Source
 
Писал в раздел про командную строку,посоветовали обратится в этот раздел, суть проблемы описана здесь:
суть проблемы
так как AutoIt не дружу совсем, прошу помочь тех кто в этом деле знаток.

madmasles 24-03-2010 19:42 1376313

rustsss,
1. Порт у Вас всегда 27016?
2. Проверку наличия интернета надо делать?

rustsss 24-03-2010 23:25 1376454

madmasles, вообще сервера два у одного порт 27016 у другого 1800, желательно для обоих, проверку можно не делать

madmasles 25-03-2010 08:24 1376624

rustsss,
У меня так получилось
порт 27016
Код:

#include <WinAPIEx.au3>
#include <Misc.au3>

Opt("TrayMenuMode", 1)
TraySetState(4)
$port = "27016"
If _Singleton(@ScriptName, 1) = 0 Then
    TrayTip("Подключение порт " & $port, "Уже работаем!", 0, 1)
    Sleep(3000)
    Exit
EndIf

If _WinAPI_IsNetworkAlive() = 0 Then
    TrayTip("Подключение порт " & $port, "Отсутствует подключение к интернету", 0, 1)
    Sleep(3000)
    Exit
EndIf

If Not FileExists(@ScriptDir & "\Launcher_CSS.exe") Then
    TrayTip("Подключение порт " & $port, "В этой папке отсутствует файл Launcher_CSS.exe", 0, 1)
    Sleep(3000)
    Exit
EndIf
TCPStartup()
$IP = TCPNameToIP("316774-local.dyn.ufanet.ru")
RunWait(@ComSpec & " /c start Launcher_CSS.exe -console +connect " & $IP & ":" & $port, "", @SW_HIDE)
$socket = TCPConnect($IP, $port)
If $socket <> -1 Then
    TrayTip("Подключение порт " & $port, "Подключение установлено.", 0, 1)
    Sleep(3000)
    Exit
Else
    TrayTip("Подключение порт " & $port, "Произошла ошибка подключения. Попробуйте еще раз.", 0, 1)
    Sleep(3000)
    Exit
EndIf


порт 1800
Код:

#include <WinAPIEx.au3>
#include <Misc.au3>

Opt("TrayMenuMode", 1)
TraySetState(4)
$port = "1800"
If _Singleton(@ScriptName, 1) = 0 Then
    TrayTip("Подключение порт " & $port, "Уже работаем!", 0, 1)
    Sleep(3000)
    Exit
EndIf

If _WinAPI_IsNetworkAlive() = 0 Then
    TrayTip("Подключение порт " & $port, "Отсутствует подключение к интернету", 0, 1)
    Sleep(3000)
    Exit
EndIf

If Not FileExists(@ScriptDir & "\Launcher_CSS.exe") Then
    TrayTip("Подключение порт " & $port, "В этой папке отсутствует файл Launcher_CSS.exe", 0, 1)
    Sleep(3000)
    Exit
EndIf
TCPStartup()
$IP = TCPNameToIP("316774-local.dyn.ufanet.ru")
RunWait(@ComSpec & " /c start Launcher_CSS.exe -console +connect " & $IP & ":" & $port, "", @SW_HIDE)
$socket = TCPConnect($IP, $port)
If $socket <> -1 Then
    TrayTip("Подключение порт " & $port, "Подключение установлено.", 0, 1)
    Sleep(3000)
    Exit
Else
    TrayTip("Подключение порт " & $port, "Произошла ошибка подключения. Попробуйте еще раз.", 0, 1)
    Sleep(3000)
    Exit
EndIf


В прикрепленном архиве скомпилированные скрипты. Их надо положить в ту папку, в которой лежит Launcher_CSS.exe.

PS
По идее надо как-то проверку соединения организовать, но так как у меня всего этого нет, то не знаю как.

PPS
Может быть проверить вот так?
Код:

$socket = TCPConnect($IP, $port)
If $socket <> -1 Then
    TrayTip("Подключение", "Подключение установлено.", 0, 1)
    Sleep(3000)
    Exit
Else
    TrayTip("Подключение", "Произошла ошибка подключения. Попробуйте еще раз.", 0, 1)
    Sleep(3000)
    Exit
EndIf


rustsss 25-03-2010 14:52 1376874

madmasles, Попробовал , сама CS:Source запускается но вот соединения с этим адресом и портом в игре не происходит, все проходит без ошибок. Спасибо что пытаетесь помочь!
А нельзя сделать по такой схеме 1) сначала узнается Ip 2) к нему прибавляется порт-получается готовая строка для консоли connect ip:port все это копируется в буфер 3) запускается CS с консолью и в эту консоль вставляется connect ip:port и эмулируется нажатие клавиши Энтер. Вот как то так или это из области научной фантастики? :)

madmasles 25-03-2010 15:08 1376888

rustsss,
То есть Вам надо, чтобы в командной строке было выполнено следующее:
Код:

start Launcher_CSS.exe connect ip:port
Я правильно понял?

И еще, для того, чтобы сделать проверку соединения, прикрепите, пожалуйста, скриншот окна ком.строки.

rustsss 25-03-2010 15:43 1376921

madmasles,
Даже не знаю как объяснить, скажем если создать такой батник:

Код:

set commandline=-console +connect 172.27.21.85:1800
set execute=Launcher_CSS.exe
start %execute% %commandline%

то запустится CS с консолью и сразу же пойдет подключение к этому ip но поскольку ip динамический, а наш провайдер раз в сутки делает дисконнект то ip меняется, поэтому и нужно брать ip с DNS вставлять его между connect и:1800 и запускать игру с авто подключением.

а что именно должно быть отображено на скриншоте?

madmasles 25-03-2010 15:56 1376933

rustsss,
То есть должно быть так?
Код:

start Launcher_CSS.exe -console +connect 172.27.21.85:1800
Или нет? Вы сделайте батник, который точно подключает. Последней строкой напишите pause? запустите его и, не нажимая любую кнопку, сделайте скриншот окна.

rustsss 25-03-2010 16:08 1376939

madmasles, Да должно быть так тока ip из должен браться от 316774-local.dyn.ufanet.ru

скриншот батника

если его запустить то CS запускается и происходит подключение к серверу по данному ip

madmasles 25-03-2010 16:56 1376983

rustsss,
Я в 4-ом посте код и вложения поменял. Попробуйте. А скриншот мне был нужен, так как я думал, что в консоли какой-то ответ будет, а его нет.

rustsss 25-03-2010 17:08 1376996

madmasles, Огромное Вам Спасибо :Beer: ! Теперь всё работает и прекрасно соединяется!

madmasles 25-03-2010 17:15 1377002

rustsss,
Может окно сделать с возможностью выбора порта?

rustsss 25-03-2010 17:21 1377010

madmasles, Если Вам не сложно, то сделайте пожалуйста, буду очень благодарен!

madmasles 26-03-2010 09:17 1377466

rustsss,
Вот что у меня получилось. Попробуйте, должно работать. Скомпилированный лежит здесь: Connect_Launcher_CSS. Сам скрипт в прикрепленном архиве. Отпишитесь работает или нет.

rustsss 26-03-2010 13:39 1377690

madmasles, Спасибо! Всё работает! Единственное,когда CS закрываешь в трее и в процессах висит процесс Connect_Launcher_CSS.exe и выгрузить можно только через диспетчер задач, нельзя ли приделать кнопку выход?

madmasles 26-03-2010 14:27 1377733

rustsss,
Не понимаю, почему Connect_Launcher_CSS.exe висит в процессах. После того, как Вы выбрали порт и нажали кнопку Подключиться, какое в трее сообщение появляется?

rustsss 26-03-2010 14:49 1377752

madmasles, Сообщений никаких нет просто значок в трее, когда из CS выходишь, значок продолжает висеть в трее и в процессах, сообщений никаких нет.

madmasles 26-03-2010 15:03 1377764

rustsss,
А cmd.exe вместе с Connect_Launcher_CSS.exe не висит в процессах?

PS
Вроде нашел ошибку. Попробуйте этот вариант 1-Connect_Launcher_CSS.7z.

rustsss 26-03-2010 15:27 1377783

madmasles, а можно попросить выложить сам скрипт?

madmasles 26-03-2010 15:40 1377796

rustsss,
Держите.

rustsss 26-03-2010 17:04 1377874

madmasles, все равно в трее висит,и в процессах тоже :)

madmasles 26-03-2010 17:25 1377889

rustsss,
1. Какая у Вас система? У меня Windows XP SP3, только на ней и проверял.
2. Вы не ответили, висит ли в процессах cmd.exe.
3. В последнем варианте есть сообщения в трее или нет?

rustsss 26-03-2010 17:41 1377899

madmasles,
1. Система Windows 7 Ultimate
2. Процесса cmd.exe нету в процессах
3.Сообщений никаких в трее нету

madmasles 26-03-2010 17:55 1377908

rustsss,
Надо было сразу сказать, что у Вас Windows 7.
Надеюсь, что Вы работаете из под админа? После того, как скрипт подключает Launcher_CSS.exe, этот Launcher_CSS.exe появляется в процессах? То есть я пытаюсь найти точки проверки правильности отработки скрипта.

rustsss 26-03-2010 18:01 1377912

madmasles, Работаю из под админа, Launcher_CSS.exe в процессах появляется

madmasles 26-03-2010 18:26 1377931

rustsss,
Попробуйте очередной вариант :)
2-Connect_Launcher_CSS

PS
Забыл спросить. А вчерашние два варианта (без окон) в процессах тоже висят?

rustsss 26-03-2010 22:48 1378140

madmasles, Всё равно в трее остается висеть :(
оба вчерашних варианта в процессах не висят

madmasles 27-03-2010 06:36 1378290

rustsss,
Попробуйте этот вариант: Connect_Launcher_CSS_port.7z. В архиве два экзешника. Оба надо положить в папку с Launcher_CSS.exe. Запускать надо Connect_Launcher_CSS.exe.

rustsss 27-03-2010 09:06 1378323

madmasles, Теперь все нормально, значка в трее нет, в процессах ничего не висит! При желаний, добавьте пункт меню "О программе", и впишите кто автор этого уже не скрипта, а целой программы :) ! Страна должна знать своих героев, тем более этой программкой будут пользоваться много юзеров нашего провайдера! И если не затруднит пункт "Пожертвования серверу" где можно было бы указать электронный кошелек сервера, т.к. сервер не коммерческий, а держится на средства группы людей. :) Но это если не затруднит, а то я уже по моему совсем обнаглел :blush2:

madmasles 27-03-2010 09:22 1378330

rustsss,
Ну слава Богу, наконец заработало как надо! :)
Вы мне в ПМ пришлите текст, который Вам нужен. Я его дословно внесу в меню "О программе".


Время: 10:16.

Время: 10:16.
© OSzone.net 2001-