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»).