2017-11-07 19 views
-1

WPFのMy Appはシステムモニタの一種であるため、Windows 10の各仮想デスクトップでも常に表示したいと考えています。 C#のみを使用することは可能ですか?すべての仮想デスクトップで表示されるウィンドウ

+0

これまでに何を試みましたか?システムトレイに表示されているので、いつでもアクセスできますか? –

+0

いいえ、私はTryIconの使用が嫌いです。デスクトップの上に常に表示したいと思っています。システムクロックのように。 – Brummell

答えて

0

私は、ラッパーの.Net 4.6は互換性が見つかりました: VirtualDesktop

ニース解決! TYすべて;-)

3

メインウィンドウでWS_EX_TOOLWINDOWを設定するだけです。 https://superuser.com/questions/950960/pin-applications-to-multiple-desktops-in-windows-10

例コードごと:

[DllImport("user32.dll", EntryPoint = "GetWindowLongPtr")] 
public static extern IntPtr GetWindowLongPtr(IntPtr hWnd, GWL nIndex); 

[DllImport("user32.dll", EntryPoint = "SetWindowLongPtr")] 
public static extern IntPtr SetWindowLongPtr(IntPtr hWnd, GWL nIndex, IntPtr dwNewLong); 

const long WS_EX_TOPMOST = 0x00000008L; 

public enum GWL : int 
{ 
    GWL_WNDPROC = (-4), 
    GWL_HINSTANCE = (-6), 
    GWL_HWNDPARENT = (-8), 
    GWL_STYLE = (-16), 
    GWL_EXSTYLE = (-20), 
    GWL_USERDATA = (-21), 
    GWL_ID = (-12) 
} 

public static void SetToolWindow(Window window) 
{ 
    var wih = new WindowInteropHelper(window); 
    var style = GetWindowLongPtr(wih.Handle, GWL.GWL_EXSTYLE); 
    style = new IntPtr(style.ToInt64() | WS_EX_TOPMOST); 
    SetWindowLongPtr(wih.Handle, GWL.GWL_EXSTYLE, style); 
} 
+0

"C#"ではなく "C"言語(低レベル)用です。 – Brummell

+0

あなたのコードで私にアイデアを教えてくれました。 ありがとう;-) – Brummell

+0

私は方法のように使いましたが、excepを上げました。 https://imgur.com/a/FHNE9 私は間違っていますか? – Brummell

関連する問題