Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2007, 22:04   #11
UnD)eaD)Snake
Форумчанин Подтвердите свой е-майл
 
Аватар для UnD)eaD)Snake
 
Регистрация: 07.07.2007
Сообщений: 241
По умолчанию

а можно попробовать вот это,
ShellExecute(Handle, nil, 'cmd.exe', '/c '+'Cacls D:\123 /D User', nil, SW_SHOW);
потом эмулировать нажатие клавиши y, и enter;?
UnD)eaD)Snake вне форума Ответить с цитированием
Старый 01.10.2008, 04:53   #12
Reflex
Новичок
Джуниор
 
Регистрация: 01.10.2008
Сообщений: 2
По умолчанию

Здравствуйте!
Простите что поднимаю достаточно древнюю тему но есть вопрос по ней.
Дело в том что сейчас пишу простенькую прогу в которой есть обращение к Коммандной строке. Так вот, мне надо чтобы в строчке
ShellExecute(Handle, nil, 'cmd.exe', '/c '+{Путь к твоей проге}, nil, SW_SHOW);

"Путь к твоей проге" можно было сформировать из самой программы. То есть у меня есть OpenDialog, так вот я хочу путь брать оттуда, + добавлять кое какие параметры. Но у меня ничего не выходит. Ругается что String и PAnsiChar несовместимый тип.
Как же сформировать путь внутри программы и вставить туда чтоб не ругалось?
Зарание спасибо!
Reflex вне форума Ответить с цитированием
Старый 01.10.2008, 05:26   #13
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Код:
Пример кода : Показ всех символов AnsiString 
var
  myString  : AnsiString;
  myCharPtr : PAnsiChar;
  i : Integer;

begin
  // Создание строки AnsiChar
  myString  := 'Hello World';

  // Указатель на первый символ в строке
  i := 1;
  myCharPtr := Addr(myString[i]);

  // Показ всех символов строке
  while i <= length(mystring) do
  begin
    ShowMessage(myCharPtr^);
    Inc(i);
    Inc(myCharPtr);
  end;
end;
http://delphibasics.ru/PAnsiChar.php
Alar вне форума Ответить с цитированием
Старый 01.10.2008, 06:08   #14
Reflex
Новичок
Джуниор
 
Регистрация: 01.10.2008
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
[CODE]
Пример кода : Показ всех символов AnsiString
...

http://delphibasics.ru/PAnsiChar.php
Хм... это не совсем то... Вы видимо не до конца поняли что мне надо.
попробую показать на примере.
Код:
var
  MyStr : AnsiString;
  MyPAC : PAnsiChar;
  i: integer;
begin
  myStr:= (OpenDialog1.FileName);
  i := 1;
  MyPAC := Addr(myStr[i]);
 ShellExecute(Handle, nil, 'cmd.exe', '/k' + MyPAC, nil, SW_SHOW);
end;
Вот то что я попытался написать согласно вашей ссылке. То есть приминить к своей программе. Естественно, что неработает.
Суть не в PAnsiChar, а в ShellExecute и конкретно MyPAC в нем, то есть в том что должно быть на его месте.

Еще раз, и попроще. Грубо говоря, мне надо введенными в программу данными сформировать линию для коммандной строки, и чтобы выполнялось она нажатием одной кнопки.
Reflex вне форума Ответить с цитированием
Старый 01.10.2008, 06:45   #15
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Код:
var
  myString  : AnsiString;
  myCharPtr : PAnsiChar;
  i : Integer;

begin
  // Создание строки AnsiChar
  myString  := 'Hello World';

  // Указатель на первый символ в строке
  i := 1;
  myCharPtr := Addr(myString[i]);


 ShellExecute(Handle, nil, 'cmd.exe', myCharPtr, nil, SW_SHOW);
Естественно можно не один символ загонять, а несколько

myCharPtr := Addr(myString); - сделай указатель на все, а не только на первый символ.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  myString  : AnsiString;
  myCharPtr : PAnsiChar;
  i : Integer;

begin
  // Создание строки AnsiChar
  myString  := 'Hello World';

  // Указатель на первый символ в строке
  myCharPtr := Addr(myString);


 ShellExecute(Handle, nil, 'cmd.exe', myCharPtr, nil, SW_SHOW);

 end;
end.
'Hello World' - явно тебе не хелловорл передавать надо, замени.
Alar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц