Запуск ехе файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 11.05.2006 (Чт) 0:42

AjaxVS
Сравни 2 варианта, предложенные алибеком и тебе откроется Дао, и увидишь ты что Shell "ping > c:\buff" не пишет в файл, а лишь выводит окно консоли
Если всё делать своими ручками, они скоро отвалятся !

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 11.05.2006 (Чт) 0:47

Kovu, прочитай топик, может, тебе откроется ДАО? +_+

Я использую БАТНИК, а не "Shell"..

У кого еще хватит "ума" сказать, что "exe > txt" не работает?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 11.05.2006 (Чт) 1:06

AjaxVS
Вай вай вай, плохо ты изучаешь Дао. Для примера напиши на ВБ программу консольную, выводящую в консоль просто пару строчек. (ну то есть пишется как стандартный екзе, а после компиляции изменяется режим екзе в консольный) И ты увидишь, что файл будет пуст. Ну что ж, предположим тебе этого недостаточно. Хорошо возьми файл rexec.exe (в system32) и засунь в батник и выполни свое
"exe > txt"

И тебе откроется истинный Дао.
Если всё делать своими ручками, они скоро отвалятся !

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 11.05.2006 (Чт) 1:31

Тока не надо распальцовки +_+ Знаю я, что такое консоль на VB..
Я это сделаю... после того как ты проделаешь это все с Far-ом +_+

ЗЫ. Я в курсе о WriteConsole.. Эти исключения не обсуждаются по известным тебе причинам..

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.05.2006 (Чт) 8:33

AjaxVS, ты правда, что ли, считаешь, что два временных файла для запуска одного ехе-шника -- это мегакруто?

Чем пайпы-то не устроили?
Изображение

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 11.05.2006 (Чт) 18:56

2 Tyomich:
Ни в коем случае! Просто я указал, что это один из возможных вариантов (причем, далеко не самый лучший), зато очень простой для понимания автором топика.

Предлагаю прекратить это обсуждение.

bodja
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 02.04.2006 (Вс) 15:18
Откуда: Ukraina

Сообщение bodja » 23.05.2006 (Вт) 2:13

Всем еще раз здрасте :)
Вот нарыл в инете такой код
Код: Выделить всё
=== Закусили тут ===
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
  "GetOpenFileNameA" (ofnFile As OpenFileName) As Long
Public Const OFN_FileEx = &H1000
Public Const OFN_ReadOnly = &H1
Public Const OFN_HideRO = &H4
Type OpenFileName
  lStructSize As Long       ' Длина типа данных
  hwndOwner As Long         ' Окно ПОД диалогом
  hinstance As Long         '?
  sFilter As String         ' Фильтр(ы)
  sCustomFilter As String   '?
  lMaxCustFilters As Long   '?
  lFilterIndex As Long      ' 1, если исп.фильтр
  sInputFile As String      ' Выбранный пользователем путь\файл
  lMaxLenFile As Long       ' Длина предыдущей строки
  sFileName As String       ' Имя файла без пути
  lMaxFileTitle As Long     '?
  sDefDir As String         ' Путь по умолчанию
  sTitle As String          ' Заголовок окна диалога
  lFlags As Long            ' Флаги файла
  iFileOffset As Integer    '?
  iFileExt As Integer       '?
  sDefExt As String         ' Расширение по умолчанию
  lCustData As Long         '?
  lHook As Long             '?
  lTempName As Long         '?
End Type

Public Function fsInputFileName(Optional vExtFile, Optional vDefDir, _
                                Optional vFilter, Optional vTitle) As String
Dim i As Integer
  Dim sNewFileName As String
  Dim sNewTitle As String
  Dim sNewFilter As String
  Dim sNewExt As String
  Dim sNewDefDir As String
  Dim ofnDialog As OpenFileName
  sNewFileName = String$(512, 0)
  sNewDefDir = fsDef(CurDir$, vDefDir)
  sNewTitle = fsDef("Открытие файла", vTitle)
  sNewFilter = _
    fsDef("Все файлы" & Chr$(0) & "*.*" & Chr$(0), vFilter) & Chr$(0)
  sNewExt = fsDef("", vExtFile)
  With ofnDialog
    .lStructSize = Len(ofnDialog)
    .hwndOwner = Screen.ActiveForm.Hwnd
    .sFilter = sNewFilter
    .lFilterIndex = 1
    .sInputFile = sNewFileName
    .lMaxLenFile = Len(sNewFileName)
    .sDefDir = sNewDefDir
    .sTitle = sNewTitle
    .lFlags = OFN_FileEx ' Or OFN_ReadOnly
    .sDefExt = sNewExt
    i = GetOpenFileName(ofnDialog)
    If i <> 0 Then  ' отделение Null-значений
      fsInputFileName = Left$(.sInputFile, InStr(.sInputFile, Chr$(0)) - 1)
    Else
      fsInputFileName = ""
    End If
  End With
End Function

'

  Возвращает строку, преобразуя ее из второго входного параметра, если
' он существует. В противном случае возвращает строку, передаваемую
' в функцию первым параметром.
Public Function fsDef(sStrDef As String, Optional vValue) As String
  Dim sStr As String
  If IsMissing(vValue) Then
    sStr = sStrDef
  Else
    sStr = vValue
  End If
  fsDef = Z(sStr)
End Function
=== Кончили закусывать, выпили опять ===



Короче открывает стандартное диалоговое окно винды
для открывания файла,можно определить путь к файлу.
Проверено работает .
У меня вопрос как сделать тоже самое но для сохранения файла,
название окна конечно можно поменять,но кнопку "открыть" переименовать на "сохранить" у меня никак не получается.

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 23.05.2006 (Вт) 2:53

Ну и что этот вопрос делает в теме "Запуск EXE файла"??? Хотя..

В общем, в следущий раз, если что-то хочешь спросить, создавай новую тему. Да и вопрос твой легко находиться..

Ладно, держи. Из собственной коллекции:
Код: Выделить всё
Private Declare Function GetOpenFileName Lib "comdlg32" Alias "GetOpenFileNameA" (pOPENFILENAME As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (ByRef pOPENFILENAME As OPENFILENAME) As Long
Private Type OPENFILENAME
  lStructSize As Long
  hwndOwner As Long
  hInstance As Long
  lpstrFilter As String
  lpstrCustomFilter As String
  nMaxCustomFilter As Long
  nFilterIndex As Long
  lpstrFile As String
  nMaxFile As String
  lpstrFileTitle As String
  nMaxFileTitle As String
  lpstrInitialDir As String
  lpstrTitle As String
  flags As Long
  nFileOffset As Integer
  nFileExtension As Integer
  lpstrDefExt As String
  lCustData As Long
  lpfnHook As Long
  lpTemplateName As String
End Type

Function funAjDlgFile(s_title As String, Optional s_filter As String = "", Optional s_filter_all As String = "All Files" + vbNullChar + "*.*" + vbNullChar, Optional i_save As Byte = 0) As String
Dim st_file As OPENFILENAME
Dim s_name As String
Dim i_val As Long

With st_file
.lStructSize = Len(st_file)
.lpstrTitle = s_title
.lpstrFile = Space(255)
.nMaxFile = 255
.hwndOwner = 0   'can edit
.lpstrFilter = s_filter + s_filter_all 'can edit
End With

If i_save = 0 Then
i_val = GetOpenFileName(st_file)
Else
i_val = GetSaveFileName(st_file)
End If
If i_val = 0 Then
funAjDlgFile = ""
Exit Function
End If
s_name = Left$(st_file.lpstrFile, InStr(1, st_file.lpstrFile, vbNullChar) - 1)
funAjDlgFile = s_name
End Function

Private Sub Form_Click()
Dim s As String
s = funAjDlgFile("Имитация сохранения файла..", "Text Files" + vbNullChar + "*.txt" + vbNullChar, , 1)
If Len(s) = 0 Then Exit Sub
Print "Выбран файл: " & s
End Sub


ЗЫ. Чтоб в последний раз..

bodja
Новичок
Новичок
 
Сообщения: 40
Зарегистрирован: 02.04.2006 (Вс) 15:18
Откуда: Ukraina

Сообщение bodja » 23.05.2006 (Вт) 15:05

Вау!
СПАСИБО!!!

ЗЫ А по такому вопросу совсем мало инфы,или у меня инет тупой или у меня тупые ключевые слова для поиска . :):):)

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 35

    TopList  
cron