命令 "at //202.17.11.22 17:21 14:20 srv.exe" 有函数可以实现吗?(100分)

  • 主题发起人 主题发起人 paf
  • 开始时间 开始时间
P

paf

Unregistered / Unconfirmed
GUEST, unregistred user!
命令 "at //202.17.11.22 17:21 14:20 srv.exe" 有函数可以实现吗?
 
也就是说,有没有启动别人机子程序的函数!
 
要启动别人的机器上面的程序, 那么得有自己控制,
也就是说两台机器之间要建立通讯
可以用TServerSock和TClinetSock做这样一个程序
 
win2000,NT本身就有远程启动软件的功能!
------------------------------------------
如果知道对方的机子是win2000,NT,
在知道密码的情况下,我们可以用如下命令
Net use //xx.xx.xx.xx/ipc$ "密码" /user:"用户名"
建立一个IPC$会话!

之后就可以复制文件到对方的机子上
copy c:/temp/Srv.exe //xx.xx.xx.xx/ADMIN$/system32

再得到对方机子的时间!
net time //xx.xx.xx.xx

使用AT命令远程运行Srv.exe程序
at //xx.xx.xx.xx/ 17:13 Srv.exe

---------------------------------------------

我现在就是想知道
at 有没有函数可以实现!
 
winexec('at //xx.xx.xx.xx/ 17:13 Srv.exe',sw_normal);
 
winexec('at //xx.xx.xx.xx/ 17:13 Srv.exe',sw_normal);

这个我懂,我想知道有没有函数可以实现!

 
可以肯定地说,没有。
 
谁说没有,NetScheduleJobAdd是什么?
 
你想做黑客程序?
 
多谢NowCan的回答!我去试试 NetScheduleJobAdd

 
我想问一下,怎样用NetScheduleJobAdd设置程序的运行方式,还有在什么年什么月份运行
下面有代码,是抄的!

------------------------

unit insjob;

interface

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

type
TAT_INFO = record
JobTime: DWord;
DaysOfMonth: DWord;
DaysOfWeek: UCHAR;
Flags: UCHAR;
Command: PWideChar;
end;

PAT_INFO = ^TAT_INFO;
NET_API_STATUS = LongInt;

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

function NetScheduleJobAdd(ServerName: PWideChar; Buffer: PAT_INFO; var JobID: PDWord): NET_API_STATUS;stdcall;

var
Form1: TForm1;

implementation
{$R *.DFM}
function NetScheduleJobAdd; external 'netapi32.dll' name 'NetScheduleJobAdd';

procedure TForm1.Button1Click(Sender: TObject);
var
ATInfo:PAT_Info;
jobid:PDword;
begin
getmem(atinfo,sizeof(TAt_info));
getmem(jobid,sizeof(dword));
atinfo^.jobtime:=3*60*60*1000+15*60*1000;//miliseconds from midnight to 3:15
atinfo^.DaysOfMonth:=4294967295; //我想在2003年1月15日运行要怎样设置这里的值?
atinfo^.DaysOfWeek:=255;
atinfo^.command:='c:/showok.exe';
atinfo^.flags:=8; //我想只运行一次就删除任务,要怎样设置!


if NetScheduleJobAdd(nil,atinfo,jobid)<>2 then
showmessage('ok');
freemem(atinfo);
end;

end.

------------------------------------------
atinfo^.DaysOfMonth:=4294967295; //我想在2003年1月15日运行要怎样设置这里的值?
atinfo^.flags:=8; //我想只运行一次就删除任务,要怎样设置(应该在这里设置吧)!

帮忙!!!!!


 
这个函数我也没用过。
我估计按你的要求flags应该是0
DaysOfMonth的设置很有意思,把他展开成一个二进制数,然后最低位表示当月第一天。依此类推。
00000000000000000100000000000000就是当月15号了。
 
不是,好像是每月15号了。
参考MSDN。或者Google搜索。
 
帮忙!!!!!
 

atinfo^.DaysOfMonth:=0;
atinfo^.DaysOfWeek:=0;

时就是执行任务之后就删除了!也就是只运行一次了!

NetScheduleJobEnum
NetScheduleJobGetInfo
谁会用啊!
 
后退
顶部