• ベストアンサー

C♯で言語バーをデスクトップ上でフロート表示する?

言語バーのアイコンをクリック ⇒ 設定を選択 ⇒ TabControl(耳のついている奴)の中から言語バーを選択 ⇒ デスクトップ上でフロート表示する の操作を行うとタスクバーにあった言語バーがデスクトップに移動します これと同じことをC#でプログラム的に行うにはどの様にすれば良いのでしょうか???調べたのですが分かりません、教えてください、お願い申し上げます

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

参照の追加のリストには表示されないようなので、ComImport を使ってやってみました。 using System; using System.Runtime.InteropServices; namespace FloatLangBar { class Program { static Guid CLSID_TF_LangBarMgr = new Guid("EBB08C45-6C4A-4FDC-AE53-4EB8C4C7DB8E"); [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("00000000-0000-0000-C000-000000000046")] public interface IUnknown { IntPtr QueryInterface(ref Guid riid); [PreserveSig] UInt32 AddRef(); [PreserveSig] UInt32 Release(); } [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("87955690-e627-11d2-8ddb-00105a2799b5")] public interface ITfLangBarMgr { int AdviseEventSink(IUnknown pSink, IntPtr hwnd, uint dwFlags, ref uint pdwCookie); int UnadviseEventSing(uint dwCookie); int GetThreadMarshalInterface(uint dwThreadId, uint dwType, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid, ref IntPtr ppunk); int GetThreadLangBarItemMgr(uint dwTrheadId, ITfLangBarMgr pplbi, uint pdwThreadid); int GetInputProcessorProfiles(uint dwThreadId, ref IUnknown ppaip, ref uint pdwThreadId); int RestoreLastFocus(ref uint pdwThreadId, [MarshalAs(UnmanagedType.Bool)] bool fPrev); int SetModalInput(IUnknown pSink, uint dwThreadId, uint dwFlags); int ShowFloating(uint dwFlags); int GetShowFloatingStatus(ref uint pdwFlags); } static void Main(string[] args) { try { Type classtype = Type.GetTypeFromCLSID(CLSID_TF_LangBarMgr, true); ITfLangBarMgr tflbm = (ITfLangBarMgr)Activator.CreateInstance(classtype); if (tflbm != null) { tflbm.ShowFloating(1); Marshal.ReleaseComObject(tflbm); tflbm = null; } } catch (Exception e) { Console.WriteLine(e.Message); } } } }

sato-may
質問者

お礼

出来ました 本当に助かりました

その他の回答 (1)

回答No.1

とりあえず、C++ だと #include <windows.h> #include <Ctfutb.h> int main() { ITfLangBarMgr *pLangBarMgr; CoInitialize( NULL ); HRESULT hr = CoCreateInstance( CLSID_TF_LangBarMgr, NULL, CLSCTX_INPROC_SERVER, IID_ITfLangBarMgr, (void**)&pLangBarMgr ); if( hr == S_OK ) { pLangBarMgr->ShowFloating( TF_SFT_SHOWNORMAL ); } else { MessageBox( NULL, _T("CoCreateInstance Error."), _T("Test"), MB_ICONINFORMATION ); } CoUninitialize(); return 0; } のようになります。 これを C# で実装すればいいのですが、私の環境 ( Windows7 ) では、参照設定にはそれらしいものが見当たりませんでした。

参考URL:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms628765(v=VS.85).aspx
sato-may
質問者

お礼

ありがとうございます ・・・・・ でもC++はあまり得意ではないので ・・・・・ 上のご回答で助かりました

関連するQ&A

  • 使っていない言語バーが表示されるときがある。

    WindowsXP Professional を IBM ThinkPad X60 で使っています。 IME 2003の言語バーはタスクバー内に最小化して使っていますが、 たまにデスクトップ上にwin95のときのような言語バーが表示されるときがあります。 クリックしても使えませんが移動はできます。 1クリックして違うデスクトップ上を触ると消えてしまいます。 このときタスクバー上の言語バーは存在していて特に問題ありません。 通常動作に問題はありませんが、いらないものが表示されてしまうので気持ち悪いです。 DELLのデスクトップももっていて、こちらもXP Proですが、そのようなことはありません。 修正することはできるのでしょうか?

  • 言語バーが消えた

    気が付いたら言語バーがどこかへ行ってしまいました。コントロールパネル・地域と言語のオプション・キーボードと言語・キーボードの変更・言語バー・デスクトップ上でフロート表示するになってますので、タスクバーに固定するに変更しても出ませんし、また、デスクトップ上でフロート表示するに戻っています。どうしたら良いでしょうか?

  • 言語バーが表示されなくなった

    過去の回答を参考にいろいろ試してみましたが、どうにもならないので 質問いたします(長文です) Windows Vista Home Premium、 メーカーはFMV-BIBLOを使用しています 言語バーが表示されなくなりました。 タスクバーを右クリックして「ツールバー」から復元しようとしてもツールバーに 「言語バー」自体がない状態です。 まずシステムの復元をしたら、ツールバーに言語バーのチェックが入ったのですが タスクバーには表示されず、デスクトップ上にもありません コントロールパネルの「地域と言語のオプション」の言語バーで確認してみると 「タスクバーに固定する」「言語バーのアイコンをタスクバーで表示する」 にチェックが入っています。 「キーボードの変更」 から 「フロート表示する」 に変更しても、再度開いてみると 「タスクバーに固定する」に勝手に戻ってしまいました。 何度か操作してみると「フロート表示する」に出来たのですが、言語バーが表示されず 何度かコントロールパネルの「地域と言語のオプション」でMicrosoft IMEパッドを再び 日本語で再インストールしてみても表示されません ウイルスチェックもしましたが何もなく、レジストリ修正も確認しましたが正しく設定 されていました(数値がちゃんと1になっている) ワードなど、文字を入力するソフトを立ち上げても表示されません。 で、過去の回答で[Windows]キー+[R]で[ファイル名を指定して実行]を出し、[ctfmon.exe]と 入力して表示されたとの事で試してみたら、やっと表示されました。 しかし、今度は、立ち上げるたびに[ファイル名を指定して実行]を出し、[ctfmon.exe]と入力 しなければ言語バーが表示されなくなってしまいました。 しかも、表示された言語バーが一部英語表記になってしまっています (ひらがな半角変換モードを右クリックしたら、hiraganaというふうに表示されます) FMVなので、マイリカバリをしようと思ったのですが、言語バーが表示されない状態のときに とったものなので、また言語バーが表示されないのではないかと不安です・・・ 良きアドバイスをお願いします。

  • 言語バー表示法を実行してもダメでした。

    言語バーが消えてしまい、同様の質問を検索したら以下のような回答があり実行しましたが表示されません。 他の方はちゃんとなるようです。 【ご回答】引用 Vistaの場合は次の手順で 1.スタートボタンをクリック 2.コントロールパネルをクリック 3.左側の「クラシック表示」の文字をクリック 4.「地域と言語のオプション」をクリック 5.「キーボードのオプション」タブをクリック 6.「キーボードの変更(C)」のボタンをクリック 7.「言語バー」タブをクリック 言語バーを画面上に表示させたいなら「デスクトップ上でフロート表示する(F)」にチェックを入れます。 下のタスクバーに入れたいなら「タスクバー上に固定する(D)」にチェックを入れます。 通常はタスクバーに置いたほうがデスクトップを有効に使えます。 尚、どちらの場合も「言語バーアイコンをタスクバーで表示する(I)」にチェックを入れ「OK」ボタンを押します。 全てのウィンドを閉じれば言語バーが復元します。 http://oshiete.nikkeibp.co.jp/qa3598585.html どうしたらよろしいでしょうか?

  • 言語バーが・・・

    こんばんは。WindowsXP使用です。 ある日ふと気付くと、デスクトップにあったはずの 言語バー(「あ」とか「A]とか書いてあるバーです) が消えてなくなってました。 タスクバーをさんざん右クリックしてたら 何かの拍子に言語バーが出現しました。 ですが何故かJPや赤い風船?マークは出るのに 「あ」やマウスで字を書いて目当ての字を探すヤツ は出てきません。 しかもタスクバー内に入ったまま何をしても デスクトップに出てきてくれないのです。 言語バーの一番右はしにある小さい四角のマークで 復元を押したり、右クリックして言語バーの 復元を選んでもダメでした。 もう私にはお手上げです。どなたか教えて下さい。 宜しくお願いいたします

  • 言語バーについて

    言語バーが表示されなくなりました。 タスクバーを右クリックして「ツールバー」をクリックすると 「言語バー」自体がありません。 コントロールパネルの地域と言語のオプションの言語バーでは タスクバーに固定する 言語バーのアイコンをタスクバーで表示する にチェックが入っています。 どの様にすれば表示されるのでしょうか?教えて下さい。

  • 言語バーについて

    言語バー(office 2007、OSはビスタ)がソフトやネットのウインドウより前に来て困っています。 以前はウインドウに言語バーが隠れていましたが、先日、設定を確認した時にうっかりどこか弄ってしまったのかもしれません。ネットやソフトのウインドウの上に、言語バーが現れてとてもうるさいです。 今の設定は、「タスクバーとスタートメニュー」の「タスクバー」には「タスクバーを固定する」にチェックが入っており、「地域と言語のオプション」では「全般」に[office IME 2007」、「言語バー」は「デスクトップ上でフロート表示する」、「言語バーアイコンをタスクバーで表示する」にチェックが入っています。 設定を見てはいましたが、設定を変更してはいないはずなのに、言語バーがウインドーの上に来て隅を隠してしまっています。 最小表示にすればいいのですが、今まで通りフロート表示でできるだけしたいので、よろしくお願いします。

  • 言語バーをタスクバーに入れると表示されない

    Windows XP SP2を使っています。 デスクトップに表示されている言語バーの右上にある四角をクリックして最小化させると通常はタスクバー内に表示されるのですが、消えてしまいます。 再度表示させるには、コントロールパネルの地域と言語のオプションにてデスクトップに表示させるを選択するとデスクトップには表示されます。 しかし、タスクバーに表示させるを選択してもタスクバーには表示されません。どなたかアドバイス願います。

  • 「使用可能な場合にデスクトップ言語バーを使用する」

    Windows10で起動後に「使用可能な場合にデスクトップ言語バーを使用する」のチェックが外れてしまいます。 起動直後は、タスクバーに横長の言語バーが表示されるのですが、すぐに横長の言語バーが消えて、右の方にアイコンだけの表示になってしまいます。 「使用可能な場合にデスクトップ言語バーを使用する」を確認しに行くとチェックも外れてしまっています。 起動直後にタスクバーに横長の言語バーが表示されてる間に、「使用可能な場合にデスクトップ言語バーを使用する」のチェックが入っているか確認したら、チェックは入っていましたが、すぐにタスクバーの横長の言語バーが消えて、右側にアイコンだけの表示に成ってしまい、「使用可能な場合にデスクトップ言語バーを使用する」の表示ページを閉じてから、再度確認したらチェックが外れていました。 手動操作で「使用可能な場合にデスクトップ言語バーを使用する」にチェックを入れ直すと、電源を切るまでは、タスクバーに横長の言語バーは表示されています。 Windows10 バージョンは1903でその前のバージョンから同じ症状です。 ※OKWAVEより補足:「NEC 121ware : Windows」についての質問です

  • 言語バーが一部しか見えない

    言語バーをタスクバーに入れていますが、 IMEのアイコン?と、「あ」の向かって左半分しか見えません。 半角英数にすると文字「 A」の左半分になるので文字は見えない状態です。 言語バーを右クリック→言語バーの復元としデスクトップに出すと全容が見えます。 言語バーをタスクバーに入れて全てが見えるようにするにはどうすればよろしいでしょうか?

専門家に質問してみよう