相关疑难解决方法(0)

如何在后台启动流程?

我似乎无法在Google或StackOverflow上找到答案.

如何在后台启动进程(在活动窗口后面)?就像,当进程启动时,它不会中断用户正在使用的当前应用程序.

该过程不会在当前应用程序前弹出,它只会启动.

这就是我正在使用的:

Process.Start(Chrome.exe);
Run Code Online (Sandbox Code Playgroud)

当应用程序启动时,Chrome会在我的应用程序前弹出.如何让它在后台启动?

我也尝试过:

psi = new ProcessStartInfo ("Chrome.exe");
psi.UseShellExecute = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(psi);
Run Code Online (Sandbox Code Playgroud)

但是与前一个完全没有区别.

谢谢.

.net c# windows background-process

9
推荐指数
1
解决办法
2万
查看次数

如何防止控件更改 Z 顺序?

我在 .Net 中有用户控制权,我在 WndProc 中使用命中测试来允许在运行时用鼠标调整它的大小。

问题是在命中测试成功(鼠标按下、拖动以调整大小、鼠标释放)之后,控件在 Z 顺序中向上跳跃并破坏了它在表单中的位置。

我需要命中测试,因为它是一个非常定制的控件。

WndProc 有没有办法阻止控件改变它的 Z 顺序?

谢谢。

命中测试代码:

protected override void WndProc(ref Message m) {
  if (!DesignMode && Sizeable && (m.Msg == Win32Wrapper.WM_NCHITTEST)) {
    Point Hit = new Point((int)m.LParam & 0xFFFF, (int)m.LParam >> 16);
    Hit = this.PointToClient(Hit);
    int DistToBorder = 5;
    if (Hit.X < DistToBorder) {
      if (Hit.Y < DistToBorder) {
        m.Result = (IntPtr)Win32Wrapper.HTTOPLEFT;
        return;
      }
      if (Hit.Y > this.ClientRectangle.Bottom - DistToBorder) {
        m.Result = (IntPtr)Win32Wrapper.HTBOTTOMLEFT;
        return;
      }
      m.Result = (IntPtr)Win32Wrapper.HTLEFT;
      return;
    } …
Run Code Online (Sandbox Code Playgroud)

c# windows messaging winapi

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

在电子中更改 BrowserWindow 的系统 z 顺序,可能吗?

我需要控制主窗口的 z-order 可以这么说。总是在最前面不是我的情况。我想把我的窗口放在所有其他窗口和桌面之上。是否可以?是否有类似于 C++ SetWindowPos 的函数?或者也许是一些解决方法?

javascript desktop-application electron

3
推荐指数
2
解决办法
2619
查看次数