2016-09-19 4 views
0

Я создал командный файл, который открывает относительную ссылку. Он отлично работает, но я бы предпочел изменить его на исполняемый файл с помощью значка. Вот код для Meal Master.bat:Соответствующий простой командный файл для exe не работает

"code\index.html" 

Вот мой каталог:

Meal Master 
    Meal Master.bat 
    code 
     index.html 
     style.css 
     (other files for the offline website) 

Я использовал эту ссылку в качестве учебника: http://hintdesk.com/how-to-create-relative-shortcut-to-exe-file-with-icon/.

Пакетный файл автоматически открывает автономный веб-сайт с браузером по умолчанию. Однако, как только я последовал за учебником и сделал exe, появилось небольшое окно и говорит: «Ошибка! Произошла неизвестная ошибка. Программа будет прекращена».

Как я могу сделать exe или относительный ярлык, который работает (или какой-либо файл со значком)?

+0

Обновление: По какой-то причине он работает, когда я выбираю «видимое приложение» и не использую значок в компиляторе. –

+2

Преобразователи Bat-to-Exe являются мусором, никогда не используют их. – SomethingDark

+0

Да, согласен. Есть ли другой способ сделать это? Я просто хочу, чтобы файл, который вы можете дважды щелкнуть, открывает мою относительную ссылку со значком. –

ответ

0

Хорошо! Это было немного сложно, потому что я должен был случайно изменять параметры в конвертере bat-to-exe. Не используйте значок и делайте его видимым. После этого используйте что-то вроде Resource Hacker (http://download.cnet.com/Resource-Hacker/3000-2352_4-10178587.html). Действие> Добавить новый ресурс. Выберите значок и измените имя ресурса на значок. Это оно! Оно работает.

0

Создать текстовый файл RunFile.vb на рабочий стол.

Вставьте это в него.

Imports System 
Imports System.Runtime.InteropServices 
Imports Microsoft.Win32 

Public Module MyApplication 


Sub Main() 
    Dim X as Object 
    X = CreateObject("wscript.shell") 
    X.Run("c:\windows\notepad.exe") 
End Sub 
End Module 

Чтобы тип программы это

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:winexe /out:"%userprofile%\desktop\RunFile.exe" "%userprofile%\desktop\RunFile.vb" /verbose 

X.Run может быть что угодно, вы можете ввести в диалоговом окне Start Run (WinKey + R)

Помощь Окна Найти программы и документы

Программы и документы могут быть добавлены в реестр, поэтому введите их имя без их пути в диалоговом окне «Пуск - Запуск» или ярлыке позволяет Windows их находить.

Это общий рег-файл. Скопируйте строки ниже в новый текстовый документ и сохраните его как anyname.reg. Отредактируйте его с помощью ваших программ или документов.

В путях используйте \ для разделения имен папок в путях ключей, так как regedit использует одиночный \ для разделения имен ключей. Все рег-файлы начинаются с REGEDIT4. Точка с запятой превращает строку в комментарий. Символ @ означает присвоение значения ключу, а не именованному значению.

Файл не обязательно должен существовать. Это можно использовать для установки Word.exe для открытия Winword.exe. Или зарегистрировав несуществующий веб-сайт.exe, чтобы указать на website.html, вы можете открыть website.html, просто набрав веб-сайт.

Этот образец добавляет IE.Txt (из IE5) в реестр, поэтому ввод текста IE.Txt откроет его. Я думаю, что файл называется IE4.txt в IE4. REGEDIT4 ; жирным шрифтом называется имя документа или программы.

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\IE.txt] 

;The @ means the path to the file is assigned to the default value for the key. 
;The whole path in enclosed in a quotation mark ". 

@="\"C:\\Program Files\\Internet Explorer\\IE.txt\"" 

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry 

;Informs the shell that the program accepts URLs. 

;"useURL"="1" 

;Sets the path that a program will use as its' default directory. This is commented out. 

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\" 
+0

Это отлично работает для абсолютных местоположений, и у него может быть значок с Resource Hacker. Тем не менее, я искал относительные местоположения (если мне не хватает чего-то с величиной X.Run). Спасибо, в любом случае. –

+0

Он также делает относительные пути. Но относительные пути зависят от конфигурации. Это зависит от консоли/GUI, от того, как она была запущена, и структуры папок, поэтому пример кода, который работает на моем компьютере, может не работать на вашем. –

+0

Также даже мой полностью определенный путь не будет работать на компьютерах, которые были обновлены с Win NT4, поскольку каталог Windows назывался WinNT (и он поддерживает имя NT4 во время обновлений). Я должен был указать '% windir% \ system32 \ notepad.exe', который будет работать со всеми версиями окон. –