Подскажите пожалуйста! Как написать правельно такое чтоб дельфи исполняло фукцию cmd? допустим при открытии delphi идет ping на узел? ping -n 350 -l 10000 00.000.00.00 Извеняюсь, я очень нубский новичег)
Можно записать нужные тебе команды в файл с расширением *.cmd, а потом использовать функцию ShellExecute. Хотя это не лучший вариант, но рабочий Вот пример, кинь на форму один button. Code: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellAPI; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; cmd: TStringList; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin cmd.Add('ping -n 350 -l 10000 00.000.00.00'); cmd.Add('pause'); cmd.SaveToFile('delphicmd.cmd'); ShellExecute(Form1.Handle, nil, 'delphicmd.cmd', nil, nil, SW_RESTORE); end; procedure TForm1.FormCreate(Sender: TObject); begin cmd:=TStringList.Create; end; end.
хм..) не это сильно палевно))) Я хочу своему другу кинуть в автозагрузку прогу которая бы пинговала один сайтичег))) по этому вид консольда излишний)
Если не ошибаюсь то (если ошибся то полюбому связанно с winexec) winexec('cmd /c ping -n 350 -l 10000 00.000.00.00', SW_HIDE); С автозагрузкой сам разберешся, не сложно будет (сам погуглишь на эту тему)
wolmer, спасибо большое) я проверел с другом, его файрвол в бешенстве канает на ура)) Всем кто помогал и пытался помочь +++++ ))
) Крайне извеняюсь за наглость) Но хотел бы ещё узнать) На форме создать Edit1 и кнопку, и в Edit1 вписывать IP и кнопкой начать пинговать, как правельно осуществить, подскажите пожалуйста)? winexec('cmd /c ping -n 350 -l 10000 00.000.00.00', SW_HIDE);" - эта функция действительно работает))) Но в место IP то что вверху пишится 00.000.00.00 должно вводимое в поле Edit1 IP)) Блин трудно объяснить) но думаю меня понять можно) Хотел бы воспользоваться ситуацией и задать ещё один вопрос, если сайт какойто слабенький типо на движке мойвеб пинговать с разных компов, что с сайтом будет?)) и какой его конечный результат?
Не компилит!( ты помойму забыл закрыть кавычку как бы! после +edit1.text ) я закрыл серовно не компилит, не так не так! Вот что пишит как ошибку в твоем варианте " [Error] Unit1.pas(31): Incompatible types: 'String' and 'PAnsiChar' " Если так то winexec('cmd /c ping -n 350 -l 10000 '+edit1.text', SW_SHOW); такая ошибка [Error] Unit1.pas(31): Unterminated string
Неа, не так. Вот так! winexec(PChar('ping -n 350 -l 10000 ' + edit1.text), SW_SHOW); Только что пробовал, работает.
А почему бы тебе не использовать winsock? А фаерволы отключать програмно? Вполне рабочий вариант. Если нужны какието советы и помощь стучи в асю 194826нулёк
Дозрел ещё один вопросичег) Если создать на форме ещё два Edit и расположить так чтоб это было 350 количество пакетов и вписываемым в Edit2, и соответственно количество байт в Edit3 =) Как осуществить? Логически если подумать то както так чтоли winexec(PChar('ping -n +edit2.text -l +edit3.text ' + edit1.text), SW_SHOW); Но чтото не так! Оно компилирует но толку 0! И ещё вопрос... Вот если использовать этот код "winexec(PChar('ping -n 350 -l 10000 ' + edit1.text), SW_SHOW);" При нажатии на кнопку откроется cmd и будет писатся о обмене пакетов, а как это можно ликвидировать?
http://www.google.ru/search?hl=ru&client=opera&rls=en&hs=3H6&newwindow=1&q=Скачать учебник по делфи&lr=&aq=f&oq= winexec(PChar('ping -n '+edit2.text+' -l '+edit3.text+' '+edit1.text), SW_SHOW);
)))СПасибо большое wolmer =) Пока меня за наглость не забанели воспользуюсь случаем и спрошу ещё коечто по этой теме) Как сделать так что при нажатии на кнопку врубалось это (это текст батника), но нужно чтоб при нажтии кнопки был тот же эффект что и если я открыл бы БАТник), только не нужно говорить типо укажи путь к батнику)
А как еще? Это самый выгодный и простой способ, или же можно положить батник вместе с программой и потом из программы запустить батник (он же у нас будет находится вместе с программой)(могу написать такой код как я описал если хочешь)
НУ сейчас постараюсь обьяснить поставленую себе задачу! Хочу сделать чтоб через программу можно было изменять "число" в таблицах БД! В конкретной таблице! Решил сделать сразу запрос sql, но потом подумал также не сделаешь чтоб "приложение дельфи" изменяло конкретный параметр в .sql, и за этим инъектировало в БД... Как мне показалось самый оптимальный вариант, это сделать bat'ник в проге как бы, в котором остается лишь вписать в edit "число" и подтвердить кнопкой... И запросом таким в базе данных конкретный парамерт был изменен! SQL запрос на повышение нужным мне числе выглядит так Можешь посоветовать чтото, чтоб в проге в Edit можно было на выбор ставить числа, в этом запросе нужное число 127... Кстати понадобится ещё edit2 для вводи логина, так как в таблице ID логинов разные, а определить access_level нужно одному! Вот прикреплю скрин