Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

Командная строка   Найти похожие ветки 

 
Oitxr ©   (2004-12-10 04:45) [0]

Например, печатаю  в командной строке команду «dir d:\». А как выполнить это с помощью Delphi? Как открыть к.строку понятно, а вот как выполнить в ней команду?


 
Рамиль ©   (2004-12-10 08:57) [1]

набери в командной строке
cmd /?


 
megabyte-ceercop ©   (2004-12-10 09:29) [2]

Нафига. Любую команду команденой строки (или альтернативную) можно выполнить без вызова командной строки.


 
Oitxr ©   (2004-12-10 09:32) [3]

Как это можно сделать?


 
Александр Иванов ©   (2004-12-10 09:35) [4]

А что тебе нужно конкретно?

Список файлов в директории, тогда - FindFirst, FindNext.
Вызов cmd, тогда CreateProcess.


 
Oitxr ©   (2004-12-10 09:42) [5]

Хочу написать триальную прогу и хранить данные о количестве запусков в альтернативном файловом потоке.
А с потоком умею работать только с помощью консоли.


 
megabyte-ceercop ©   (2004-12-10 09:49) [6]

Если нужна именно команда d:\ то делай:

ShellExecute(Form1.Handle,"open","d:\",NULL,"d:\",SW_SHOW);

описание см в хелпе.


 
Александр Иванов ©   (2004-12-10 10:04) [7]

megabyte-ceercop ©   (10.12.04 09:49) [6]
Точнее:
ShellExecute(Form1.Handle,"open","d:\","","d:\",SW_SHOW);

Oitxr ©   (10.12.04 09:42) [5]
Насколько я понял вам нужно при каждом запуске приложения знать номер этого запуска?


 
Oitxr ©   (2004-12-10 11:50) [8]

Я хочу с помощью делфи выполнить любую команду командной строки
не запуская её(cmd).Вот.Можно ли это сделать на делфи?


 
Александр Иванов ©   (2004-12-10 12:12) [9]

Некоторые команды жестко "зашиты" в cmd, тогда придется их переписывать :)


 
Anatoly Podgoretsky ©   (2004-12-10 12:24) [10]

Команды командной строки зашиты в командный интерпритатор.


 
Leksiy ©   (2004-12-10 12:28) [11]

это исходник функции

function RunCaptured(const _dirName, _exeName, _cmdLine: string): Boolean;
 var
  start: TStartupInfo;
  procInfo: TProcessInformation;
  tmpName: string;
  tmp: Windows.THandle;
  tmpSec: TSecurityAttributes;
  return: Cardinal;
  Begin
    Result := False;
    try
     //Создание временного файла
      tmpName := "Test.tmp";
      FillChar(tmpSec, SizeOf(tmpSec), #0);
      tmpSec.nLength := SizeOf(tmpSec);
      tmpSec.bInheritHandle := True;
      tmp := Windows.CreateFile(PChar(tmpName), Generic_Write, File_Share_Write, @tmpSec, Create_Always, File_Attribute_Normal, 0);
      try
        FillChar(start, SizeOf(start), #0);
        start.cb := SizeOf(start);
        start.hStdOutput := tmp;
        start.dwFlags := StartF_UseStdHandles or StartF_UseShowWindow;
        start.wShowWindow := SW_Minimize;
       //Запуск программы
        if CreateProcess(nil, PChar(_exeName + " " + _cmdLine), nil, nil, True, 0, nil, PChar(_dirName), start, procInfo) then
          begin
            SetPriorityClass(procInfo.hProcess, Idle_Priority_Class);
            WaitForSingleObject(procInfo.hProcess, Infinite);
            GetExitCodeProcess(procInfo.hProcess, return);
            Result := (return = 0);
            CloseHandle(procInfo.hThread);
            CloseHandle(procInfo.hProcess);
            Windows.CloseHandle(tmp);
            Windows.DeleteFile(PChar(tmpName));
          end
        else
          begin
            Application.MessageBox(PChar(SysErrorMessage(GetLastError())), "RunCaptured Error", MB_OK);
          end;
      except
        Windows.CloseHandle(tmp);
        Windows.DeleteFile(PChar(tmpName));
      raise;
      end;
    finally
    end;
  End;

ну и соответственно пример использования :)

RunCaptured("в какой директории", "cmd.exe", "/c команда");


 
Leksiy ©   (2004-12-10 12:29) [12]

да забыл сказать это для вин2000 и винхп



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
3-1101295329
Clone
2004-11-24 14:22
2004.12.26
DBGrid, Lookup Field, "Non-nullable column cannot be updated..."


14-1102058586
КаПиБаРа
2004-12-03 10:23
2004.12.26
Есть ссылки на расписание поездов из Самары в сторону Челябинска?


1-1102888330
Bobby Digital
2004-12-13 00:52
2004.12.26
Цвет


1-1102689339
Just3r
2004-12-10 17:35
2004.12.26
Компонент "богатый текст"


3-1101299576
kolos_rus
2004-11-24 15:32
2004.12.26
Ошибка при добавлении записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский