TS_Directlink

  • Hab n kleines Hilfsmittel für TS geschrieben.

    Vieleicht hat jemand Verbesserungsvorschläge.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $scriptname = StringTrimRight(@ScriptName,4)
    Global $version = Number(2.5)
    Global $ini= (@scriptdir & "\"&$scriptname&"_V"&$version&".ini")
    ProcessSetPriority ($scriptname&".exe", 4)

    [/autoit] [autoit][/autoit] [autoit]

    if (RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Teamspeak 2 RC2_is1", "Inno Setup: App Path")) ="" then
    MsgBox(0,"ERROR!","Please install TeamSpeak2 first.",5)
    Exit
    endif
    if FileExists($ini) not then
    FileWriteLine($ini,"62.75.202.223:9006")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $maingui = GUICreate($scriptname&"_V"&$version, 332, 440, 193, 125)
    $Label2 = GUICtrlCreateLabel("Insert a name for the link", 16, 16, 127, 17)
    $Label3 = GUICtrlCreateLabel("Adress of your teamspeakserver:", 16, 96, 162, 17)
    $Label4 = GUICtrlCreateLabel("Insert a nickname", 16, 144, 90, 17)
    $Label6 = GUICtrlCreateLabel("Loginname:", 16, 232, 59, 17)
    $Label7 = GUICtrlCreateLabel("Passwort:", 16, 280, 50, 17)
    $Label8 = GUICtrlCreateLabel("Defaultchannel", 16, 336, 76, 17)
    $Label9 = GUICtrlCreateLabel("Channelpassword:", 16, 384, 91, 17)
    $okbutton = GUICtrlCreateButton("CREATE", 232, 104, 83, 233, 0)
    $linkname = GUICtrlCreateInput("", 16, 32, 201, 21)
    $Inputse = GUICtrlCreateInput(FileReadLine($ini,1), 16, 112, 201, 21)
    $Inputnn = GUICtrlCreateInput("", 16, 160, 201, 21)
    $Inputln = GUICtrlCreateInput("", 16, 248, 201, 21)
    $inputpw = GUICtrlCreateInput("", 16, 296, 201, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Inputdc = GUICtrlCreateInput("", 16, 352, 201, 21)
    $Inputdcp = GUICtrlCreateInput("", 16, 400, 201, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $testbutton = GUICtrlCreateButton("TEST", 232, 24, 81, 57, 0)
    $exitbutton = GUICtrlCreateButton("EXIT", 232, 360, 81, 57, 0)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $testbutton
    _read ()
    run ("C:\Programme\Teamspeak2_RC2\TeamSpeak.exe "&$server&"?nickname="&$nickname&"?loginname="&$loginname&"?password="&$password&"?channel="&$channel&"?channelpassword="&$channelpassword)
    Case $okButton
    _read ()
    if $filename = (".au3") Then
    MsgBox(0,"ERROR","Please insert any name for your link",5)
    else
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\Aut2exe.exe","Aut2exe.exe")
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\AutoItASC.bin","AutoItASC.bin")
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\AutoItASC.bin","AutoItSC.bin")
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\upx.exe","upx.exe")
    FileWriteLine($filename,"run ('C:\Programme\Teamspeak2_RC2\TeamSpeak.exe "&$server&"?nickname="&$nickname&"?loginname="&$loginname&"?password="&$password&"?channel="&$channel&"?channelpassword="&$channelpassword&"')")
    runwait ("Aut2exe.exe /in "&$filename)
    FileDelete("upx.exe")
    FileDelete("AutoItASC.bin")
    FileDelete("AutoItSC.bin")
    FileDelete("Aut2exe.exe")
    FileDelete($filename)
    endif
    Case $exitbutton
    Exit
    EndSwitch
    sleep(1)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func _read ()
    global $server = GUICtrlRead($inputse)
    global $nickname = GUICtrlRead($inputnn)
    global $loginname = GUICtrlRead($inputln)
    global $password = GUICtrlRead($inputpw)
    global $filename = (GUICtrlRead($linkname)&".au3")
    global $channel=GUICtrlRead($inputdc)
    global $channelpassword=GUICtrlRead($inputdcp)
    endfunc

    [/autoit]

    Einmal editiert, zuletzt von Vollnoob (22. November 2007 um 22:08)

  • habe das script jetzt nicht ausprobiert aber nen bisl durchgeguckt.

    Du gehst davon aus, dass TS immer bei C:\Programme\Teamspeak2_RC2\TeamSpeak.exe installiert ist.
    Dies wird aber bei vielen(wie bei mir) nicht so sein.
    Vielleicht den Pfad von TS aus der Registry auslesen :)

    Rechtschreibfehler:

    Please insert any name for your link
    ist falsch

    Please choose a name for your link
    wäre richtig

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]

    Einmal editiert, zuletzt von Blubkuh (23. November 2007 um 00:05)

  • Damit kämpfe ich noch.

    Mein problem liegt in dieser Zeile:

    [autoit]

    FileWriteLine($filename,"run ('C:\Programme\Teamspeak2_RC2\TeamSpeak.exe "&$server&"?nickname="&$nickname&"?loginname="&$loginname&"?password="&$password&"?channel="&$channel&"?channelpassword="&$channelpassword&"')")

    [/autoit]

    Wenn ich hier den TS-Pfad als Parameter reinbaue gibts probleme.

    Einmal editiert, zuletzt von Vollnoob (23. November 2007 um 09:12)

  • Zitat

    Wenn ich hier den TS-Pfad als Parameter reinbaue gibts probleme.


    Warum? Wegen den "?

    teste mal:

    [autoit]

    $exe = "C:\Programme\Teamspeak2_RC2\TeamSpeak.exe"
    FileWriteLine($filename,"run (' "&$exe&" "&$server&"?nickname="&$nickname&"?loginname="&$loginname&"?password="&$password&"?channel="&$channel&"?channelpassword="&$channelpassword&"')")

    [/autoit]

    :!: "If you make something idiot proof, someone will invent a better idiot." :!:

  • so, habs gelöst, danke für die tips.


    sieht jetzt so aus:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #NoTrayIcon

    [/autoit] [autoit][/autoit] [autoit]

    Global $scriptname = StringTrimRight(@ScriptName,4)
    Global $version = Number(3.1)
    Global $ini= (@scriptdir & "\"&$scriptname&"_V"&$version&".ini")
    global $TS = (RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Teamspeak 2 RC2_is1", "Inno Setup: App Path")&"\teamspeak.exe ")

    [/autoit] [autoit][/autoit] [autoit]

    ProcessSetPriority ($scriptname&".exe", 4)

    [/autoit] [autoit][/autoit] [autoit]

    if (RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Teamspeak 2 RC2_is1", "Inno Setup: App Path")) ="" then
    MsgBox(0,"ERROR!","Please install TeamSpeak2 first.",5)
    Exit
    endif
    if FileExists($ini) not then
    FileWriteLine($ini,"62.75.202.223:9006")
    EndIf

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $maingui = GUICreate($scriptname&"_V"&$version, 332, 440, 193, 125)
    $Label2 = GUICtrlCreateLabel("Insert a name for the link", 16, 16, 127, 17)
    $Label3 = GUICtrlCreateLabel("Adress of your teamspeakserver:", 16, 96, 162, 17)
    $Label4 = GUICtrlCreateLabel("Insert a nickname", 16, 144, 90, 17)
    $Label6 = GUICtrlCreateLabel("Loginname:", 16, 232, 59, 17)
    $Label7 = GUICtrlCreateLabel("Password:", 16, 280, 50, 17)
    $Label8 = GUICtrlCreateLabel("Defaultchannel", 16, 336, 76, 17)
    $Label9 = GUICtrlCreateLabel("Channelpassword:", 16, 384, 91, 17)
    $okbutton = GUICtrlCreateButton("CREATE", 232, 104, 83, 233, 0)
    $linkname = GUICtrlCreateInput("", 16, 32, 201, 21)
    $Inputse = GUICtrlCreateInput(FileReadLine($ini,1), 16, 112, 201, 21)
    $Inputnn = GUICtrlCreateInput("", 16, 160, 201, 21)
    $Inputln = GUICtrlCreateInput("", 16, 248, 201, 21)
    $inputpw = GUICtrlCreateInput("", 16, 296, 201, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $Inputdc = GUICtrlCreateInput("", 16, 352, 201, 21)
    $Inputdcp = GUICtrlCreateInput("", 16, 400, 201, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
    $testbutton = GUICtrlCreateButton("TEST", 232, 24, 81, 57, 0)
    $exitbutton = GUICtrlCreateButton("EXIT", 232, 360, 81, 57, 0)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $testbutton
    _read ()
    run ($ts&$server&"?nickname="&$nickname&"?loginname="&$loginname&"?password="&$password&"?channel="&$channel&"?channelpassword="&$channelpassword)
    Case $okButton
    _read ()
    if $filename = (".au3") Then
    MsgBox(0,"ERROR","Please insert any name for your link",5)
    else
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\Aut2exe.exe","Aut2exe.exe")
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\AutoItASC.bin","AutoItASC.bin")
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\AutoItASC.bin","AutoItSC.bin")
    FileInstall("C:\Programme\AutoIt3\Aut2Exe\upx.exe","upx.exe")
    FileWriteLine($filename,'$TS = (RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Teamspeak 2 RC2_is1", "Inno Setup: App Path")&"\teamspeak.exe ")')
    FileWriteLine($filename,"run ($ts&'"&$server&"?nickname="&$nickname&"?loginname="&$loginname&"?password="&$password&"?channel="&$channel&"?channelpassword="&$channelpassword&"')")
    runwait ("Aut2exe.exe /in "&$filename)
    FileDelete("upx.exe")
    FileDelete("AutoItASC.bin")
    FileDelete("AutoItSC.bin")
    FileDelete("Aut2exe.exe")
    FileDelete($filename)
    endif
    Case $exitbutton
    Exit
    EndSwitch
    sleep(1)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    func _read ()
    global $server = GUICtrlRead($inputse)
    global $nickname = GUICtrlRead($inputnn)
    global $loginname = GUICtrlRead($inputln)
    global $password = GUICtrlRead($inputpw)
    global $filename = (GUICtrlRead($linkname)&".au3")
    global $channel=GUICtrlRead($inputdc)
    global $channelpassword=GUICtrlRead($inputdcp)
    endfunc

    [/autoit]
  • Also, dein Erfindergeist in allen ehren, aber ich versteh den Sinn nicht ganz. Genauso gut kann ich diese Daten doch auch einfach in TS eingeben, oder hat das noch nen tieferen Sinn?


    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

  • da, muss ich dir recht geben, das geht alles im teamspeak auch,
    nur, grade wenn du auf mehreren servern logierst ist es praktisch, einfach auf nen link auf dem Desktop zu klicken, und sofort zu sein, wo man hinwill.
    (ohne vorher Ts öffnen zu müssen, in die serverliste zu gehen, usw.)

    Vor allen aber hab ichs gebaut, um leuten, die keine ahnung von Teamspeak haben nen schnellen zugang zu verschaffen.

    Ich registrier die auf dem Server, bau denen mit dem Tool schnell n link, und verschick den über icq.

    Nun brauch der TS-noob nur noch den link ausführen, und ich hab ihn im TS wo ich will.


    Und der wichtigste Punkt:
    Ich hab wieder ne menge dazugelernt.

  • Alternativ kannst du auch einfach so nen link verschicken ;)


    teamspeak://IP?nickname=Nickname

    PW und so kannste natürlich auch noch angeben

    ...und der Lernaspekt ist natürlich eig das wichtigste, da haste recht ;)

    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    2 Mal editiert, zuletzt von Waluev (23. November 2007 um 17:11)

  • is schon klar, mit nem normalen link geht das auch, nur dann ist alles sichtbar PW,Loginname usw. Ausserdem bin ich sowieso immer anderer Meinung. Also versuch erst gar nicht mir was auszureden :D ;)

    Einmal editiert, zuletzt von Vollnoob (23. November 2007 um 23:24)

  • Ich will es dir auch nicht ausreden :)

    Der Lerneffekt und so ist ja gegeben, das Programm funktioniert ja an sich auch, nur ist mir der Funktionssinn etwas zweifelhaft *g*

    Wenn du jemanden auf einen Server lässt, wieso darf er dann das Passwort nicht wissen? :D


    Naja, was soll es jetzt noch groß drüber zu diskutieren...^^


    Waluev

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    Einmal editiert, zuletzt von Waluev (24. November 2007 um 10:05)