「IDLE のような機能」を C# WinForms アプリケーションに追加したいのですが、その方法がまったくわからず、Google で役立つものを見つけることができませんでした。
したがって、基本的には、ユーザーがPythonコードを入力して実行できるインタラクティブなコマンドラインインターフェイスが必要です(式だけでなく、新しい関数を定義できるはずです)。
では、どこから始めますか?利用可能な優れたチュートリアルやサンプルはありますか?
「IDLE のような機能」を C# WinForms アプリケーションに追加したいのですが、その方法がまったくわからず、Google で役立つものを見つけることができませんでした。
したがって、基本的には、ユーザーがPythonコードを入力して実行できるインタラクティブなコマンドラインインターフェイスが必要です(式だけでなく、新しい関数を定義できるはずです)。
では、どこから始めますか?利用可能な優れたチュートリアルやサンプルはありますか?
私の記憶が正しく私に役立つなら、Pythonを一言で言えば本Pythonに埋め込むことに関する章があります。おそらくそこにいくつかの有用な情報を見つけることができますが、この本はWindows固有のものではないため、自分で調整する必要があるかもしれません。
これが私の最も一般的な解決策です:
Point cursorPoint;
int minutesIdle=0;
private bool isIdle(int minutes)
{
return minutesIdle >= minutes;
}
private void idleTimer_Tick(object sender, EventArgs e)
{
if (Cursor.Position != cursorPoint)
{
// The mouse moved since last check
minutesIdle = 0;
}
else
{
// Mouse still stoped
minutesIdle++;
}
// Save current position
cursorPoint = Cursor.Position;
}
60000間隔で動作するタイマーを設定できます。このようにして、ユーザーがマウスを動かさなかった分数を知ることができます。Tickイベント自体で「isIdle」を呼び出して、各間隔を確認することもできます。
IronRubyには、コマンドラインインタープリターが付属しています。IronPythonにもありませんか?もしそうなら、ソースコードは良いスタートになるでしょう:)ああ、そうでない場合は、IronRubyインタープリターを確認してください。どちらの言語もDLRに基づいているため、両方から学ぶのに十分似ています。
IronPython メーリング リストを通じて、 IronTextBox2を見つけました。これは、物事がどのように行われるかの良い例です。実行するには少し調整が必要ですが、それ以外は良い解決策です。