小编rai*_*rle的帖子

进程 WaitForExit() 永远不会结束(cmd openfiles)

这段代码在我的测试系统上运行良好(原始 Windows-Server 2008 R2 的副本)

private string _getNetFiles()
{
    // prepare execution process
    ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe", "/c openfiles /query /Fo list");
    processStartInfo.CreateNoWindow = true;
    processStartInfo.UseShellExecute = false;
    processStartInfo.RedirectStandardError = true;
    processStartInfo.StandardOutputEncoding = System.Text.Encoding.GetEncoding(437);
    processStartInfo.RedirectStandardOutput = true;

    // execute
    Process process = Process.Start(processStartInfo);
    process.WaitForExit();


    // read outputs
    string stdOutput = process.StandardOutput.ReadToEnd();
    string stdError = process.StandardError.ReadToEnd();

    return stdOutput;
}
Run Code Online (Sandbox Code Playgroud)

在原始系统上:我在任务管理器中看到“cmd.exe /c openfiles /query /Fo list”任务,但该任务永远不会结束(process.WaitForExit() process never end)。在原始系统上使用 Cmd:openfiles /query /fo list也可以正常工作!

问题可能出在哪里?

问候提高者

编辑:我可以使用任务管理器停止该过程。stdOutput 是正确的。为什么不结束 cmd-taks。

c# cmd process windows-server-2008-r2

4
推荐指数
1
解决办法
1883
查看次数

使用自动滚动向面板添加控件 (c#)

AutoScroll我有一个带有 property =的面板true。通过动态地将其他控件添加到面板而不滚动 - 一切正常!

void addControl(){
    int top = 13 + ( this.Controls.Count * cmdSet.Height );
    ucCommandSet cmdSet = new ucCommandSet() { Top = top };
    this.Controls.Add( cmdSet );
}
Run Code Online (Sandbox Code Playgroud)

但是,如果滚动条插入到 TOP [0] 以外的位置,则控件会添加到更靠下的位置。

我需要在计算中包含哪些属性?

问候提高者


@LarsTech 的解决方案:

void addControl(){
    int top = 13 + ( this.Controls.Count * cmdSet.Height ) + this.AutoScrollPosition.Y;
    ucCommandSet cmdSet = new ucCommandSet() { Top = top };
    this.Controls.Add( cmdSet );
}
Run Code Online (Sandbox Code Playgroud)

.net c# controls scroll addition

3
推荐指数
1
解决办法
1685
查看次数

标签 统计

c# ×2

.net ×1

addition ×1

cmd ×1

controls ×1

process ×1

scroll ×1

windows-server-2008-r2 ×1