Главная страница
    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.034 c
4-1099156393
TankMan
2004-10-30 21:13
2004.12.26
Как получить права администратора?


1-1103097139
Bless
2004-12-15 10:52
2004.12.26
Как сделать так, чтобы во время отладки не заходило в какой-то


3-1101279475
`
2004-11-24 09:57
2004.12.26
Связи между таблицами


1-1102781264
electric
2004-12-11 19:07
2004.12.26
Как в TMemoryStream загрузить большой файл или часть файла?


1-1102514148
megabyte-ceercop
2004-12-08 16:55
2004.12.26
Как бороться с таким глюком RichEdit.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский