Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.14;
Скачать: CL | DM;

Вниз

Командная строка 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
14-44800
GrEG
2003-06-26 08:18
2003.07.14
Ресурсы


1-44726
Rawman
2003-07-01 10:37
2003.07.14
PopUp в TMemo


3-44606
Rel_
2003-06-21 14:18
2003.07.14
SQL


1-44761
shark
2003-07-01 17:08
2003.07.14
числа


1-44706
APTEMKA
2003-06-28 00:27
2003.07.14
Поиск в HTML