CreateTextFile не работает, если hta по умолчанию открыт как блокнот (javascripting)

Я получаю эту действительно странную проблему, когда пытаюсь создать текстовый файл, используя javascripting и hta файл.

Это код, разбитый на его основы:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>

alert("creating file");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("test.txt", true);
s.WriteLine("it works");
s.Close();
alert("file created");
</script>
</head>

<body>
</body>
</html>

Это находится в hta-файле с именем «Untitled.hta». Пока я устанавливаю «Открыть с помощью> Выбрать программу по умолчанию» в «Microsoft (R) HTML Application Host», а затем открываю hta-файл, текстовый файл создается просто отлично.

Но если я выберу «Открыть с помощью»> «Выбрать программу по умолчанию» «Блокнот», а затем «Открыть с помощью« Microsoft (R) HTML Application Host »), текстовый файл не будет создан.

Кто-нибудь знает, почему это происходит? Обычно это не имеет значения, но если на клиентском компьютере hta-файлы по умолчанию открыты как блокнот, тогда мой hta-файл не будет работать так, как задумано.

Чтобы усложнить вещи в дальнейшем заменить

var s = fso.CreateTextFile("test.txt", true);

с участием

var s = fso.CreateTextFile("TestFolder/test.txt", true);

и где находится файл hta, создайте папку с именем «TestFolder»

Если вы сделаете то же самое, что и раньше, то, установив для него значение «Блокнот» по умолчанию, вы получите ошибку «Путь не найден» (но он будет работать нормально, если по умолчанию установлено значение «Microsoft (R) HTML Application Host»).

Ответы на вопрос(1)

Ваш ответ на вопрос