Alf*_*a07 4 f# winforms f#-interactive
我有一个使用Windows窗体的f#脚本,我希望它在没有显示控制台窗口(fsi.exe)的情况下运行.有可能吗?怎么样?下面是一个脚本示例.
#r "mscorlib.dll"
#r "System.dll"
open System.IO
open System.Windows.Forms
let DoUsefulThing() = ()
let form = new Form()
let button = new Button(Text = "Do useful thing")
button.Click.AddHandler(fun _ _ -> DoUsefulThing())
form.Controls.Add(button)
form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)
des*_*sco 10
作为一个选项,您可以PInvoke并隐藏控制台窗口
#r "mscorlib.dll"
#r "System.dll"
open System.IO
open System.Windows.Forms
module FSI =
[<System.Runtime.InteropServices.DllImport("user32.dll")>]
extern bool ShowWindow(nativeint hWnd, int flags)
let HideConsole() =
let proc = System.Diagnostics.Process.GetCurrentProcess()
ShowWindow(proc.MainWindowHandle, 0)
FSI.HideConsole()
let DoUsefulThing() = ()
let form = new Form()
let button = new Button(Text = "Do useful thing")
button.Click.AddHandler(fun _ _ -> DoUsefulThing())
form.Controls.Add(button)
form.ShowDialog()
Run Code Online (Sandbox Code Playgroud)