Главная страница
    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.041 c
14-1102063862
TUser
2004-12-03 11:51
2004.12.26
Версии


14-1102238894
VictorT
2004-12-05 12:28
2004.12.26
Безвозмездно дарю идею для этого форума и для создателей других


3-1101280714
Nexel
2004-11-24 10:18
2004.12.26
IBX и обновление данных


1-1102592157
DiamondShark
2004-12-09 14:35
2004.12.26
Трассировка порождённых процессов.


1-1102643108
Oitxr
2004-12-10 04:45
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский