2017-05-17 29 views
-2

ボーダーなしでメモ帳を開く最も簡単で簡単な方法は何ですか?ここ(VB.net - Visual Basic) - メモ帳を開くフチなしウィンドウ

Private Sub Button_StartQuiz_Click(sender As Object, e As EventArgs) Handles Button_StartQuiz.Click 

    Dim vPID As Object 
    vPID = Shell("notepad.exe", vbNormalFocus) 

End Sub 
+1

あなたは、WindowsのDLLを使用して、彼らはあなたがそのために設計されていないアプリのウィンドウスタイルを変更することが可能かどうかを確認する必要があるだろう。ネットで直接それを行うことができないだろう。ワーストケースのシナリオでは、ボーダーレスフォームを作成してテキストボックスを作成して、ボーダレスノートパッドを作成することができます – Mederic

+0

おかげさまで、ありがとうございました。私はちょうどウィンドウdllファイルをインポートすることはできませんし、特定のウィンドウの境界を操作するために、この場合はメモ帳を使用することはできますか?それが私が問題を抱えているからです。 – EliasWick

+0

もしそれが可能であれば、あなたは研究をする必要があるかどうか分かりません。申し訳ありません。 – Mederic

答えて

1

結果は以下のとおりです。

enter image description here

私がこれまで持っているコード[メモ帳を開きます]: は、私が欲しいのは、あなたが下の画像の中に見える青色のマーキングを削除することです完璧ではないので、APIパラメータを混乱させる必要があるかもしれませんが、これらの行に沿ったもの(VB.NETポートthis answer)は近いかもしれません。メニューがまだ表示され、すべてが国境の占有スペースを取るためにシフトしているが、取るに展開されていないので、

Dim p = Process.Start("notepad.exe") 
p.WaitForInputIdle() 

Dim styles As WindowStyles = GetWindowLong(p.MainWindowHandle, GWL_STYLE) 
styles = styles And Not (WindowStyles.WS_CAPTION Or WindowStyles.WS_THICKFRAME Or WindowStyles.WS_MINIMIZE Or WindowStyles.WS_MAXIMIZE Or WindowStyles.WS_SYSMENU) 
SetWindowLong(p.MainWindowHandle, GWL_STYLE, styles) 

Dim stylesex As ExtendedWindowStyles = GetWindowLong(p.MainWindowHandle, GWL_EXSTYLE) 
stylesex = stylesex And Not (ExtendedWindowStyles.WS_EX_DLGMODALFRAME Or ExtendedWindowStyles.WS_EX_CLIENTEDGE Or ExtendedWindowStyles.WS_EX_STATICEDGE) 
SetWindowLong(p.MainWindowHandle, GWL_EXSTYLE, stylesex) 

SetWindowPos(p.MainWindowHandle, IntPtr.Zero, 0, 0, 0, 0, SetWindowPosFlags.SWP_FRAMECHANGED Or SetWindowPosFlags.SWP_NOMOVE Or SetWindowPosFlags.SWP_NOSIZE Or SetWindowPosFlags.SWP_NOZORDER Or SetWindowPosFlags.SWP_NOOWNERZORDER) 


<DllImport("User32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> 
Shared Function GetWindowLong(hWnd As IntPtr, nIndex As Int16) As Int32 
End Function 

<DllImport("User32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> 
Shared Function SetWindowLong(hWnd As IntPtr, nIndex As Int16, dwNewLong As Int32) As Int32 
End Function 

<DllImport("User32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> 
Shared Function SetWindowPos(hWnd As IntPtr, hWndInsertAfter As IntPtr, X As Int16, Y As Int16, cx As Int16, cy As Int16, uFlags As UInt16) As Boolean 
End Function 

Const GWL_STYLE As Int16 = -16 
Const GWL_EXSTYLE As Int16 = -20 

<Flags> 
Enum WindowStyles 
    WS_CAPTION = &HC00000 
    WS_THICKFRAME = &H40000 
    WS_MINIMIZE = &H20000000 
    WS_MAXIMIZE = &H1000000 
    WS_SYSMENU = &H80000 
End Enum 

<Flags> 
Enum ExtendedWindowStyles 
    WS_EX_DLGMODALFRAME = &h00000001 
    WS_EX_CLIENTEDGE = &h00000200 
    WS_EX_STATICEDGE = &h00020000 
End Enum 

<Flags> 
Enum SetWindowPosFlags As UInt16 
    SWP_FRAMECHANGED = &h0020 
    SWP_NOMOVE = &h0002 
    SWP_NOSIZE = &h0001 
    SWP_NOZORDER = &h0004 
    SWP_NOOWNERZORDER = &h0200 
End Enum 

結果は私のPCにはほとんどファンキーである、(青は私のデスクトップの色です)余分な部屋をアップ。たぶん異なるパラメータがそれを修正するでしょうか?

Borderless Notepad.exe

+0

私が欲しかったもののために完璧に動作します!どうもありがとうございました! :) – EliasWick