Страница 2 из 2

Добавлено: 26 сен 2005, 10:25
treider
Вообще это вопрос в раздел API

Функция GetModuleFileName

Описание:
function GetModuleFileName(Module: THandle; FileName: PChar; Size: Integer): Integer;

Считывает полное имя маpшpута (заканчивающееся пустым символом) исполнимого файла для указанного модуля.

Паpаметpы:
Module: Идентификатоp модуля.
FileName: Пpинимающий буфеp.
Size: Размеp буфеpа.

Возвpащаемое значение:
Фактическое число скопиpованных байт.

Добавлено: 26 сен 2005, 10:59
Avsha
Почему вопрос не сюда...

Например мне надо в программе C:\Sample\programm.exe
открыть файл из папки "C:\Sample\DataFiles,
т.е. из папки находящейся внутри относительно папки расположения выполняемого файла.

А потом эту папку Sample перенесли в другое место, например С:\user1\Sample, и программа должна
соответственно открыть файл из папки "C:\user1\Sample\DataFiles.

Как будет выглядеть программный код для определения пути к файлам в таком случае?

Добавлено: 26 сен 2005, 12:36
treider
Насколько я знаю VBA в exe не компилируют.

На каком языке пишите?

Добавлено: 26 сен 2005, 13:13
Avsha
treider,

Ситуация следующая:
Я работаю в SCADA-пакете iFix, который поддерживает VBA.
Разрабатываю форму, которая отображает протокол событий, данные для этого протокола берутся из текстового файла, находящегося в папке C:\Sample\DataFiles.
Насколько я знаю VBA в exe не компилируют.
Правильно.
Затем хочу запускать этот протокол отдельно в виде exe-файла, без запуска пакета iFix.
Для некоторых наших пользователей это необходимо.
Вот поэтому и забираю форму в VB и компилирую.

Добавлено: 26 сен 2005, 19:01
Naeel Maqsudov
Как получить в программе имя папки, из которой запускается скомпилированный файл .exe?
Напримeр запускаем C:\Sample\programm.exe
Надо получить MyPath="C:\Sample"
А нельзя ли в чистом VB как в VBA сделать Application.Path?

Добавлено: 27 сен 2005, 08:19
treider
Вроде как в VB такого свойства нет, но есть

Application.ExecutablePath

Добавлено: 27 сен 2005, 13:47
Avsha
Всем спасибо !!!
я все проверил, как и предполагалось, это просто решается:

в VBA работает Application.Path
а в VB работает App.Path

Добавлено: 17 ноя 2005, 12:15
Avsha
Возникла необходимость запускать Сетевые подключения из Excel (конкретно одно из модемных по выбору), кто-нибудь сталкивался с этой задачей?

Добавлено: 18 ноя 2005, 14:20
Avsha
Если подключение уже создано в папке "Сетевые подключения"
то можно запускать bat-файл со строкой:
rasdial "Модемное подключение" "MyLogin" "MyPassword"

или обходиться без bat-файла...

Код: Выделить всё

Private Sub CommandButton1_Click()
start "rasdial ""Модемное подключение"" MyLogin MyPassword"
End Sub

Sub start(command As String)
Set WshScript = CreateObject("WScript.Shell")
 D = WshScript.Run(command, 4, False)
End Sub
Т.е. здесь используется команда Rasdial, про которую информация приведена в справке Windows.
Есть некоторый недостаток, что подключение соединения идет через "текстовое окно", а стандартное окно подключения не вызывается.