2017-03-06 3 views
0

現在、Discordチャンネルに接続するためのPython Discord premadeスクリプトがあります。私はそれがうまくセットアップし、それが動作します。私はコマンドを作成して、自分が望むようにすることができます。しかし、Discordの!dir、!net use、!wmicなどのコマンドを送信し、マシンと直接対話しているかのように接続されたクライアント上で実行できるかどうかは疑問でした。シェルのようですが、Discordを通して? https://github.com/Rapptz/discord.pyDiscordを使用して入力を受け付け、接続されたクライアントで実行する

私はソケットでこれを行うと、サブプロセスを使用したが、確執のAPIでこれを行う方法がわからないで遊んでされています:

私の現在のコードはここで見つけるスクリプトです。

答えて

0

私が探していた答えが見つかりました。

if message.content.startswith('!cmd'): 
    await client.send_message(message.channel, 'Enter command') 
    msg = await client.wait_for_message() 
    proc = subprocess.Popen(msg.content, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, 
          stdin=subprocess.PIPE) 
    stdout_value = proc.stdout.read() + proc.stderr.read() 
    await client.send_message(message.channel, stdout_value) 

基本的に、ボットは私が!cmdと言うことを検出すると、コマンドを要求します。次に、ipconfig、net userなどのコマンドを入力して、コマンドプロンプトのようにコマンドを実行します。

関連する問題