Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

Командная строка windows2000   Найти похожие ветки 

 
Staraya   (2003-05-06 09:09) [0]

Здравствуйте! Я впервые столкнулась с такой вот проблемой: Мне нужно сделать такую прогу, которая будет работать как командная строка в windows2000. Только параметры для команды должны вводится в editы, например имя компьютера или его ip-адрес, имя расшаренного ресурса и т.д. Подскажите пожалуйста, с чего мне начать, хотя бы какие компоненты delphi использовать для этого, может у кого есть похожая прога. Заранее благодарна.


 
Polevi   (2003-05-06 13:59) [1]

unit admin;

interface

uses Windows, Classes, syncobjs, SysUtils;

type
TConsole=class(TThread)
private
FWnd:THandle;
FMsg:Cardinal;
ChildStdInWr,ChildStdoutRd:THandle;
FCS:TCriticalSection;
FCommandList:TStringList;
procedure CreateConsole;
protected
procedure Execute;override;
public
constructor Create(AWnd:THandle; AMsg:Cardinal);reintroduce;
procedure AddCommand(s:string);
end;

implementation

{ TConsole }

constructor TConsole.Create(AWnd:THandle; AMsg:Cardinal);
begin
FWnd:=AWnd;
FMsg:=AMsg;
FCS:=TCriticalSection.Create;
FCommandList:=TStringList.Create;
inherited Create(false);
end;

procedure TConsole.AddCommand(s:string);
begin
FCS.Enter;
try
FCommandList.Add(s+#13#10);
finally
FCS.Leave;
end;
end;

procedure TConsole.Execute;
var
buffer:Pointer;
bytesRead:DWORD;
begin
CreateConsole;
while not Terminated do
begin
sleep(200);
PeekNamedPipe(ChildStdoutRd,nil,0,nil,@bytesRead,nil);

//


 
Polevi   (2003-05-06 14:00) [2]

пример использования

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Admin,
StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
c:TConsole;
procedure Z(var Msg:TMessage);message WM_USER+1;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
c:=TConsole.Create(Handle,WM_USER+1);
c.AddCommand("ping 192.168.1.23");
end;

procedure TForm1.Z(var Msg: TMessage);
var
p:PChar;
begin
p:=PChar(Msg.wParam);
OemToCharBuff(p,p,length(p));
Memo1.Lines.Add(p);
end;

end.


 
Staraya   (2003-05-06 15:41) [3]

> Polevi
Большое спасибо за подробное описание, только мне нужно было передавать из едитов параметры для команды net use, т.е. чтоб при нажатии на кнопку выполнить срабатывала команда net use


 
Polevi   (2003-05-06 15:49) [4]

procedure TForm1.FormCreate(Sender: TObject);
begin
c:=TConsole.Create(Handle,WM_USER+1);
end;

procedure TForm1.Z(var Msg: TMessage);
var
p:PChar;
begin
p:=PChar(Msg.wParam);
OemToCharBuff(p,p,length(p));
Memo1.Lines.Add(p);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
c.AddCommand("net use "+Edit1.Text);
end;


 
Reindeer Moss Eater   (2003-05-07 09:30) [5]

Staraya (06.05.03 15:41)
> Polevi
Большое спасибо за подробное описание, только мне нужно было передавать из едитов параметры для команды net use, т.е. чтоб при нажатии на кнопку выполнить срабатывала команда net use


Все делается действием в одну строчку
WNetAddConecction


 
Polevi   (2003-05-07 09:38) [6]

>Reindeer Moss Eater (07.05.03 09:30)

Я впервые столкнулась с такой вот проблемой: Мне нужно сделать такую прогу, которая будет работать как командная строка в windows2000. Только параметры для команды должны вводится в editы, например имя компьютера или его ip-адрес, имя расшаренного ресурса и т.д.

причем тут WNetAddConecction


 
Reindeer Moss Eater   (2003-05-07 09:59) [7]

Staraya (06.05.03 15:41)
> Polevi
Большое спасибо за подробное описание, только мне нужно было передавать из едитов параметры для команды net use, т.е. чтоб при нажатии на кнопку выполнить срабатывала команда net use



 
Staraya   (2003-05-07 10:03) [8]

>Reindeer Moss Eater
Объясните пожалуйста подробнее что это за WNetAddConecction и как его использовать, где его взять и т.д. Заранее благодарна.


 
Polevi   (2003-05-07 10:05) [9]

2Reindeer Moss Eater (07.05.03 09:59)
это был второй пост

2Staraya (07.05.03 10:03)
тебе уже выложили на блюдечке готовый код, имей совесть


 
Reindeer Moss Eater   (2003-05-07 11:07) [10]

uses Windows;

WNetAddConnection((PChar("\\ServerName\ShareName"),nil,PChar("X:");



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.034 c
1-44650
Darrin
2003-07-02 12:08
2003.07.14
Как перекрыть прорисовку системного меню окна?


3-44550
jack128
2003-06-19 19:01
2003.07.14
Разделитель компонентов даты в BDE


14-44808
Jumbo
2003-06-28 06:12
2003.07.14
error.log


3-44544
div
2003-06-19 13:55
2003.07.14
Вылетает


14-44886
Aristarh
2003-06-26 22:25
2003.07.14
Депутаты запретили подросткам возбуждаться





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