Главная страница
    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.039 c
3-1101135567
Sid
2004-11-22 17:59
2004.12.26
QReport???


1-1102503215
Provodnick
2004-12-08 13:53
2004.12.26
Отключение Cntrl+Tab в MDI-формах.


14-1102069619
andsoft
2004-12-03 13:26
2004.12.26
Нужен человек для написания отладчика


1-1102592763
SINIY BELIY
2004-12-09 14:46
2004.12.26
Как скрыть Webbrowser на форме с помощью Visible?


6-1097321201
QuestionX
2004-10-09 15:26
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский