>>203
使い方は、[ディレクトリ][空白][検索文字]でいいのかな。

>> os.startfile
Windows 以外の環境を考慮するなら wibbrowser.open
(winでは内部でstartfileが呼ばれるはず)

>> D:/pysearch/logo.jpg
アーカイブに含めて相対pathで指定する。
icon程度ならxpmを圧縮したデータをスクリプト内に埋め込む方法もある。

>> OnTextCtrl1KeyDown のイベント伝搬
searchBoxのstyleにwxTE_PROCESS_ENTER指定して、
wx.EVT_KEY_DOWN, OnTextCtrl1KeyDown の代わりに
wx.EVT_TEXT_ENTERイベントにOnSearchButtonButtonを登録。

>> pathの区切り文字
os.path.dirname, os.path.join, os.path.split を使う

>> searchが busy loop
スレッド内で処理するか、検索ループ内で適度に Sleep や Yield 系の関数呼ぶ。
具体的に言うと、search関数の中の最初のforブロック内にwx.YieldIfNeeded()

>> if str in name.lower():
strを正規表現にコンパイルしてmatchさせる。

>> for x in search(path,str):yield x
ディレクトリの深さに比例して遅くなるので、
再帰ないでyieldするより、callbackにした方が効率良い。

他には psyco モジュールを使ってpsyco.bind(search)とすると、早くなるかも。
ステータスバーにでも速度計って、比較してみてはどうでしょう。