我搜索了有关如何隐藏自己的控制台窗口的信息.令人惊讶的是,我能找到的唯一解决方案是通过其标题FindWindow()找到控制台窗口的 hacky解决方案.我深入挖掘了Windows API,发现有更好更简单的方法,所以我想在这里发布,供其他人查找.
如何隐藏(和显示)与我自己的C#控制台应用程序关联的控制台窗口?
我正在寻找很多方法来获取.NET中的父进程,但只找到了P/Invoke方式.
我正在尝试为自己自动执行某些任务,并编写了一些.NET Core 1.0控制台应用程序.其中之一是BrowserRouter--一个简单的应用程序,基于url模式,决定在我点击http(s)链接时打开哪个浏览器/浏览器配置文件.
这工作正常,但总会出现控制台窗口,并立即消失.
有没有办法静默运行.NET Core控制台应用程序(隐藏控制台窗口)?
我知道在完整的.NET Framework中,可以将输出类型更改为Windows应用程序,但是对于.NET Core,这是不可用的(但是?).
我想创建一个将访问我的数据库的Windows服务.我的数据库是SQL Server 2005.
其实我在网站上工作,我的数据库在我们的服务器内.我需要每秒访问我的数据库并更新记录.为此,我需要制作一个将安装到我们的服务器并执行任务的Windows服务.
我一直在从我的本地机器访问数据库,然后运行该服务,但问题是我不知道如何测试这项服务.
我试着安装到我的本地机器上.它安装然后我运行服务但它没有执行任务,我认为服务无法连接数据库.
服务及其安装程序没有问题.唯一的问题是如何测试我的Windows服务.
能否请您解释一下我,什么是API函数之间的不同AllocConsole和AttachConsole(-1)?我的意思是如果AttachConsole得到ATTACH_PARENT_PROCESS(DWORD)-1.
我正在编写一个可以作为标准WinForms应用程序启动的应用程序,也可以从命令行以无人值守模式启动.该应用程序是使用VS 2k5标准WinForms模板构建的.
当从命令行执行应用程序时,我希望它输出可由执行应用程序的脚本捕获的信息.当我直接从Console.WriteLine()执行此操作时,输出不会出现,尽管它可以通过管道传输到文件来捕获.
另一方面,我可以通过在kernel32上对AllocConsole()执行P/Invoke来强制应用程序弹出第二个控制台.但这不是我想要的.我希望输出出现在调用应用程序的同一窗口中.
这是允许我从命令行弹出控制台的显着代码:
<STAThread()> Public Shared Sub Main()
If My.Application.CommandLineArgs.Count = 0 Then
Dim frm As New ISECMMParamUtilForm()
frm.ShowDialog()
Else
Try
ConsoleControl.AllocConsole()
Dim exMan As New UnattendedExecutionManager(ConvertArgs())
IsInConsoleMode = True
OutputMessage("Application started.")
If Not exMan.SetSettings() Then
OutputMessage("Execution failed.")
End If
Catch ex As Exception
Console.WriteLine(ex.ToString())
Finally
ConsoleControl.FreeConsole()
End Try
End If
End Sub
Public Shared Sub OutputMessage(ByVal msg As String, Optional ByVal isError As Boolean = False)
Trace.WriteLine(msg)
If IsInConsoleMode Then
Console.WriteLine(msg)
End If
If isError Then
EventLog.WriteEntry("ISE …Run Code Online (Sandbox Code Playgroud) 我正在使用命令行应用程序输出类型编写应用程序,以在MOGRE处理实际窗口创建时在控制台中显示调试信息.我想在编译应用程序时隐藏控制台.通过进入项目属性,应用程序选项卡并将输出类型更改为Windows应用程序,可以轻松地显示控制台.这样做时,只会显示MOGRE窗口.
虽然我相信创建一个Windows应用程序并将控制台连接到它时会更加清晰,但是当我想要这种行为时,我仍然很好奇天气可以以编程方式执行此操作.
也就是说,有没有办法以编程方式确定在调试模式下编译时应用程序编译为命令行应用程序,何时在发布模式下编译为Windows应用程序?如果是这样,怎么办呢?
编辑:我不是问如何将控制台附加到Windows窗体应用程序.我把重要的部分放在斜体中,希望能让我更清楚自己想要的东西.
嗯,您好,我如何让这个控制台写一行?我设法使它在处理时运行cmd.exe,但它没有写入行.
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "alpha")
{
progressBar1.Value = 100;
if (progressBar1.Value == 100)
{
MessageBox.Show("Welcome back master!");
System.Diagnostics.Process.Start(@"C:\Windows\System32\cmd.exe");
Console.WriteLine("Hello!!!");
}
}
Run Code Online (Sandbox Code Playgroud)