■
2005-07-01の日記に書いたディレクトリを監視する件でうちではロングファイルネームが取得できなかったんだがシロさんの情報によりロングファイルネームを取得する方法が判明.どうやら,XPや2000がファイルが生成されたときにショートファイルネームも一緒に作ってしまうためのようだ.なので,ショートファイルネームを作るのをやめてしまえばロングファイルネームで取得できるようになる.ショートファイルネームを作るのをやめる方法は, regedit.exeで[HKEY_LOCAL_MACHINE]->[SYSTEM]->[CurrentControlSet]->[FileSystem] にある、NtfsDisable8dot3NameCreationを 1 にする。ただし古いプログラムが動かなくなる可能性ありなので,自己責任で.
■
CraftLaunchExから,win32allの関数(例えばwin32gui.SetWindowPosやwin32gui.SetForegroundWindowなど)を使うとランタイムエラーで落ちたりするのだが,その回避法がわかったのでメモっておく.
どうやら,CraftLaunchExがアクティブの状態で,これらの関数を実行するとエラーが発生することがあるらしい.なので,関数を実行する前に,clcore.RaiseNextWindow()を実行すれば回避できる.
2005-06-17の日記に書いたMSNメッセンジャーのインスタントメッセージを実行した時にエラーが出るのだが,これもこの方法で回避できるみたいだ.
■
PythonからCプログラムを使う方法を書こうかと思ったけど、ちょうどシロさんとこでまとめてくれたようなので今日インストールしたDocutilsの使い方を忘れないうちにメモっときます.
docutilsとは
docutilsは reStructuredText形式のTextファイルをhtmlとかtexとかxmlに変換してくれるものです.pythonで実装されているのでpythonがインストールされていないと使えません.
reStructuredText
reStructuredTextの書き方は以下をを参考に.
http://www.planewave.org/translations/rst/quickstart.ja.html
http://www.planewave.org/translations/rst/quickref.html
ダウンロード
docutilsのダウンロードはここから
http://docutils.sourceforge.net/
インストール
インストールは docutils-*.*.*.tgzを解凍して、解凍したディレクトリ(ここではD:/temp/docutilsとする)でpythonにパスが通った状態で
D:/temp/docutils> python setup.py install
を実行.
使ってみる
reStructuredTextをhtmlに変換するコマンドrst2html.pyを使ってみる.
ここでは、D:/temp/docutils/にあるFAQ.txtをhtmlに変換してみる.変換するには,
D:/temp/docutils/tools>python rst2html.py ..\FAQ.txt ..\FAQ.html
を実行.するとD:/temp/docutilsにFAQ.htmlをいうファイルが出来てるはず.これで完了.
■
pythonで音量調節しようと思ったけどやり方がよくわからなかったので,dllで作ってみた.
mixer.dll
使える関数は以下のとおり.
GetVolume()
現在のVolumeを0〜100で表示する.
GetMute()
現在のミュートの状態を得る. TrueでミュートOn、FalseでミュートOff.
SetMute(bool)
ミュートをセットする.TrueでOn, FalseでOff.
SetVolume(int)
ボリュームをセットする.0〜100で指定.
UpDownVolume(int)
ボリュームの増減を行う.
ReverseMute()
ミュートの状態を反対にする.
CraftLaunchExから使うにはconfig.pyに下のように書く.キーは適当に変えてください.
import mixer #音量を5%増加させる SetKeyDownHandler(VK_UP, MODKEY_WIN, lambda:mixer.UpDownVolume(5)) #音量を5%減少させる SetKeyDownHandler(VK_DOWN, MODKEY_WIN, lambda:mixer.UpDownVolume(-5))
最近やっとlambdaのこういう使い方に気づきました….
■
MenuModeの更新です.中身的にはかなり変更しています。オリジナルメニューの参考用にfilermodeもどきをつけました。あとすこしおまけもつけました。ソースがかなりごちゃごちゃしてきたのでバグがあるかもしれません。見つけた人は教えてください。
ESCキーの挙動を少し変更.タイプミスは受け付けないようにした.
optionにabbrevと,skipの設定にMenuNoMatchを追加した.
さらにoptionにmenuを追加した.menuは直接メニューを指定できるようになります.
menu.iniにdefaultのセクションを追加した,
内部の動作を結構変更した.
BaseMenuList, MenuItem を継承してオリジナルのメニューを作れるようにした.
追記
ちょっとしたバグがあったので修正しました。