ショートカットの読み込みでエラー
おはようございます。どうにも手に負えないバグに遭遇してしまったので、こちらに投下させていただきます。
自分の環境(WinXP SP3)では、d0b6ff5 以降、ショートカットからシナリオを読み込むとエラーが出ます。
CWPy の Scenario フォルダに、「シナリオへの」ショートカットしかない場合、そのシナリオの貼り紙表示までは問題なく動き、シナリオを開始するとエラー&フリーズ。
Exception in thread Thread-3:
Traceback (most recent call last):
(中略)
File "D:_cwpy\cw\util.py", line 1438, in get_linktarget
shortcut = wsh.CreateShortcut(file)
File "<COMObject WScript.Shell>", line 2, in CreateShortcut
com_error: (-2147352567, '\x97\xe1\x8aO\x82\xaa\x94\xad\x90\xb6\x82\xb5\x82\xdc\x82\xb5\x82\xbd\x81B', (0, None, None, None, 0, -2147221008), None)
Scenario フォルダに「フォルダへの」ショートカットが存在すると、まず「貼り紙を見る」を実行した時点でエラー。表示されている貼り紙を切り替えて、該当フォルダを表示した段階でまたエラー。ちなみにエラーを表示するたび、「Exception in thread Thread-(数字):」の数字が大きくなっていきます。不気味。
com_error でぐぐっても分からなかったので、d0b6ff5 を眺めてみたものの……if 文分岐を外せば不具合がなくなりますが、ここを削ると高速化にならないし、じゃあ他にどうすれば?…という状況です。
お手数をおかけいたしますが、一度見ていただいてよろしいでしょうか? よろしくお願いします。
Comments (7)
-
repo owner -
Account Deleted ありがとうございます。さっそく開発用から pull して動かしてみました。
今回は、まず起動直後に次のようなエラーが出るようになりました。
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 808, in __bootstrap_inner
self.run()
File "D:_cwpy\cw\scenariodb.py", line 35, in run
db.update()
File "D:_cwpy\cw\util.py", line 1417, in acquire
return f(args, *kw)
File "D:_cwpy\cw\scenariodb.py", line 107, in update
ltarg = cw.util.get_linktarget(path)
File "D:_cwpy\cw\util.py", line 1436, in get_linktarget
win32com.shell.shell.IID_IShellLink)
com_error: (-2147221008, 'CoInitialize \x82\xcd\x8c\xc4\x82\xd1\x8fo\x82\xb3\x82 \xea\x82\xc4\x82\xa2\x82\xdc\x82\xb9\x82\xf1\x81B', None, None)「張り紙を見る」をクリックすると、Scenarioフォルダが空だろうがフリーズします。曲が流れたまま応答なしの世界へ。
……せっかくお時間を割いてくださったのに申し訳ありませんが、このような結果に……。うーん、何がどうダメなんだろう。
-
repo owner pull requestに更新をかけてみました。これならどうでしょう。
-
Account Deleted 作業ありがとうございます。症状には変化なく、エラーメッセージの最後の3行だけ変わりました。
(略)
File "D:_cwpy\cw\scenariodb.py", line 107, in update
ltarg = cw.util.get_linktarget(path)
File "D:_cwpy\cw\util.py", line 1443, in get_linktarget
shortcut.QueryInterface(pythoncom.IID_IPersistFile).Load(file)
com_error: (-2147024894, '\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83t\x83@\x83C\x 83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B', No ne, None) -
repo owner エラーメッセージからすると、ファイルが見つからないというエラーが出ているようですね。ファイルシステムの文字コードの問題かもしれません。
文字コードを変換して処理を行うようにしてpushしてみました。これならどうでしょうか。
-
reporter - changed status to resolved
無事動くようになりました! ありがとうございます。起動直後のエラーも出ないし、フォルダ・シナリオ両方のショートカットが正常に動作することを確認いたしました。お疲れ様です。
-
repo owner 検証ありがとうございました。問題解決ということでマージしておきます。
- Log in to comment
ありがとうございます。そういえばこの手の問題を以前にも見たような……それを忘れてまたやってしまったのかもしれません。
pull request #72を作成しました。このパッチで改善するかどうか見ていただけないでしょうか(私の開発用リポジトリからpullする事で手許で確認できます。確認後はrollbackすればOK)。