Главная страница
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.013 c
14-44814
int64
2003-06-29 19:03
2003.07.14
5 месяцев в цайтноте.


14-44815
VEG
2003-06-29 12:42
2003.07.14
Мои разговоры


14-44895
Sly
2003-06-26 17:17
2003.07.14
О Женских Порядках


14-44896
Dimich1978
2003-06-27 20:44
2003.07.14
ПОЗДРАВИМ SERGO


11-44620
yar
2002-11-07 14:40
2003.07.14
Перетаскивать форму за клиентскую часть в KOL ?