tmyt/VDMHelper

動きがおかしいプロセス一覧

Closed this issue · 10 comments

tmyt commented

動かない

  • 32bitプロセス全般
  • Edge
  • コンソールアプリケーション (#3)
  • Janetter
  • Jane Style

時々動く

  • Explorer
tmyt commented

32bitプロセスだとIServiceProvider をCoCreateInstance したときにE_ACCESSDENIED っていわれるけどこれ実は

CoCreateInstance(CLSID_VirtualDesktopManager, nullptr, CLSCTX_LOCAL_SERVER, PPV_IID_ARGS(&pVdm));

でいいんじゃないの?って思ったりした。

VDM は ImmersiveShell 経由する必要なかった感

tmyt commented

だよね、つまり普通に32bitプロセスで叩けるのではないか感がある

tmyt commented

CLSCTX_INPROC_SERVER でいいっぽいきがする、32bitのコンソールアプリケーションで試したら普通に動いたし参考にしたロシアのページが間違って雰囲気

IVirtualDesktopManagerInternal のほうは ImmersiveShell 経由しないとだめなのかな
ロシア語のページは Internal 作ったついでに ImmersiveShell 経由で VDM インスタンスも作ったんだろうか

tmyt commented

おそらくそうっぽい?でも、直接CoCreateInstanceしたのに32bitだと上手く動かないのよなあ

shell\twinapi\virtualdesktops\lib\virtualdesktops.cpp(104)\twinapi.dll!625CC56A: (caller: 625CC72C) ReturnHr[PreRelease](21) tid(b14c) 80070005 アクセスが拒否されました。
    CallContext:[\MoveWindowToDesktop] 
shell\twinapi\virtualdesktops\lib\virtualdesktops.cpp(87)\twinapi.dll!625CC743: (caller: 625CC197) ReturnHr[PreRelease](22) tid(b14c) 80070005 アクセスが拒否されました。
    CallContext:[\MoveWindowToDesktop] 
shell\twinapi\virtualdesktops\lib\virtualdesktops.cpp(39)\twinapi.dll!625CC216: (caller: 625CCA02) ReturnHr[PreRelease](23) tid(b14c) 80070005 アクセスが拒否されました。
    CallContext:[\MoveWindowToDesktop] 
shell\twinapi\virtualdesktops\lib\virtualdesktops.cpp(73)\twinapi.dll!625CCA19: (caller: 5D337D34) ReturnHr[PreRelease](24) tid(b14c) 80070005 アクセスが拒否されました。
    CallContext:[\MoveWindowToDesktop] 

ここが作ってるアプリのウィンドウ、MoveWindow できないっぽい
http://janesoft.net/

SmileDownloader (ニコ動の動画保存するやつ (公開終了してるっぽいけど)) つかってるんだけど、もともと変な挙動してたんよなー
別モニターにもっていってもタスクバー ボタンがそのモニターに移動しなかったりしてた

tmyt commented

Jane StyleはなおったけどJanetterはそもそもキーフックの挙動があやしめ
インストーラから起動したら権限昇格してて動かなかっただけでした

tmyt commented

#3 が解決したのでひとしきり対応できないアプリは現状なさそうなのでClose