小编Seb*_*awe的帖子

的Process.Start( "EXPLORER.EXE"); 不会带回任务栏

截至目前,我正在通过WinForms开发一个模拟操作系统,用作电影的道具.在运行应用程序时,它会杀死explorer.exe,以便您在拍摄期间不会意外地显示Windows任务栏.问题是,关闭模拟操作系统后,我想再次启动explorer.exe.但是,Process.Start("explorer.exe");会打开一个资源管理器窗口,而不会重新启动窗口任务栏.

我知道,事实上,任务管理器能够通过在新任务下键入"explorer.exe"来恢复窗口任务栏,尽管我没有找到传递给任务管理器的命令行参数.

编辑: 我在Windows 7下运行.同样,我正在深入研究这个模拟操作系统.我控制了Windows使用的很多按键.出于这个原因,我杀了explorer.exe,以便我可以使用按键,如"Alt-Tab",并显示模拟应用程序切换器等.该应用程序已经全屏运行,但它仍然可以有基础Windows GUI弹出备份.我基本上用我自己的模拟探索器替换explorer.exe.关闭我的自定义资源管理器后,我似乎无法通过启动explorer.exe来恢复常规Windows GUI Process.Start();.

c# process taskmanager winforms

6
推荐指数
1
解决办法
6842
查看次数

UNET 客户端无法发送服务器命令,主机可以

所以正如标题所暗示的那样,我遇到了一个问题,即客户端发送的命令没有被触发。

我正在尝试使用的基本功能是,当一个敌人出现在玩家面前并且我点击时,该玩家将被暂时惊呆。如果我是主持人,效果很好,并且双方都完美注册。

如果我作为客户端玩游戏,我会到达“应该”发送命令的地步,但我注意到我收到一条警告,上面写着“正在尝试为非本地玩家发送命令”。同样,两端都没有任何反应。显然,我一定是在客户端做错了什么,但不知道还有什么其他方法可以解决这个问题。

“问题”代码。

            if (Input.GetButtonDown("Fire1")) {
            Ray ray = new Ray(transform.position, transform.forward);
            RaycastHit hit = new RaycastHit();
            Physics.Raycast(ray, out hit, 20f);
            if (hit.transform != null) {
                if (hit.rigidbody != null) {
                    PlayerController controller = hit.rigidbody.GetComponent<PlayerController>();
                    if (controller != null) {
                        if (!controller.stunned) {
                            // Send the stun command to the server
                            controller.CmdStun();
                        }
                    }
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

该方法调用

[Command]
public void CmdStun() {
    // Report that the stun was sent
    UnityEngine.Debug.Log("Stun Sent");
    RpcStun();
}

[ClientRpc]
public void RpcStun() { …
Run Code Online (Sandbox Code Playgroud)

c# network-programming unity-game-engine unity-networking

5
推荐指数
1
解决办法
9044
查看次数