下面代码实现隐藏C#
控制台程序打开的cmd
窗口 public static string Execute(string exe, string args) { string output = ""if (exe != null &&exe != "") { Process process = new Process()//创建进程对象 ProcessStartInfo startinfo = new ProcessStartInfo()//创建进程时使用的一组值,如下面的属性 startinfo.FileName = exe//设定需要执行的命令程序 //以下是隐藏cmd窗口的方法 startinfo.Arguments = args//设定参数,要输入到命令程序的字符 startinfo.UseShellExecute = false//不使用系统外壳程序启动 startinfo.RedirectStandardInput = false//不重定向输入 startinfo.RedirectStandardOutput = true//重定向输出,而不是默认的显示在dos控制台上 startinfo.CreateNoWindow = true//不创建窗口 process.StartInfo = startinfotry { if (process.Start())//开始进程 { output = process.StandardOutput.ReadToEnd()//读取进程的输出 } } finally { if (process != null) { process.Close()} } } return output} 下面代码通过win32API来实现,注意导入DllImport所在名字空间 using System.Runtime.InteropServices[DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)] static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow)[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName)Console.Title = "WAHAHA"//为控制台窗体指定一个标题 IntPtr intptr = FindWindow("ConsoleWindowClass", "WAHAHA")if (intptr != IntPtr.Zero) { ShowWindow(intptr, 0)//隐藏这个窗口 }Java。IO里面的FILE好象没有类似功能,我查了一下,eclipse的core.resources里面的IFILE有这个功能,重要代码示例如下:
IFile f = new org.eclipse.core.internal.resources.File(XX,XX)
f.getResourceAttributes().setHidden(true)
但是这段代码在ECLIPSE工作区内比较方便,如果不是ECLIPSE环境而是纯JAVA应用的话,就显得太麻烦了。
所以我估计要完成这个功能,需要一个本地调用才能解决问题。
可以考虑调用Windows系统API的SetFileAttributes 函数
评论列表(0条)