如何使用NSIS始终使用目标安装添加默认文件夹

时间:2017-04-13 06:58:11

标签: nsis

我想在内部始终将默认目录附加到我的INSTALL目录。 我默认设置了它,但是如果用户更改目录,则它不起作用并将文件安装在用户选择的文件夹中。

所以我需要在内部附加一个文件夹(产品名称),并且可以附加用户选择的路径。

如果用户选择了“C:\ Program Files \ My Folder”,那么安装应该在路径“C:\ Program Files \ My Folder \ ProductName”中 也应该与沉默一起工作。 有人可以就此提出建议。

1 个答案:

答案 0 :(得分:1)

<!DOCTYPE html>
<html>
    <head>
        <title>Jeff Test HTML5 WebSocket</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <script src="speed.js"> </script>
    </head>
    <body>
        <div>
            <input type="text" id="messageinput"/>
        </div>
        <div>
            <button type="button" onclick="openSocket();" >Open</button>
            <button type="button" onclick="drawWithInputValue();" ></button>
            <button type="button" onclick="closeSocket();" >Close</button>
        </div>
        <!-- Server responses get written here -->
        <div id="messages"></div>

        <!-- Script to utilise the WebSocket -->
        <script type="text/javascript">

            var webSocket;
            var messages = document.getElementById("messages");

            function openSocket(){
                // Ensures only one connection is open at a time
                if(webSocket !== undefined && webSocket.readyState !== WebSocket.CLOSED){
                   writeResponse("WebSocket is already opened.");
                    return;
                }
                // Create a new instance of the websocket
                webSocket = new WebSocket("ws://localhost:8181/");

                /**
                 * Binds functions to the listeners for the websocket.
                 */
                webSocket.onopen = function(event){
                    // For reasons I can't determine, onopen gets called twice
                    // and the first time event.data is undefined.
                    // Leave a comment if you know the answer.
                    if(event.data === undefined)
                        return;

                    writeResponse(event.data);
                };

                webSocket.onmessage = function(event){
                    writeResponse(event.data);
                };

                webSocket.onclose = function(event){
                    writeResponse("Connection closed");
                };
            }

            /**
             * Sends the value of the text input to the server
             */
            function send(){
                var text = document.getElementById("messageinput").value;
                webSocket.send(text);
            }

            function closeSocket(){
                webSocket.close();
            }

但是,建议的方法是使用InstallDir而不使用结尾反斜杠:

  

请注意,如果用户选择“浏览”,则将使用此字符串后面的部分,并且可以在安装时将其附加到字符串上(要禁用此功能,请结束目录用\(这将需要用引号括起整个参数)。