![]() |
Start or end an application on a remote computer.
Hi
how you can start or end an application on a remote computer (lan)? |
Re: Start or end an application on a remote computer.
Google for "Remote Execute Windows" and you find Apps from MS which can do such thinks.
|
Re: Start or end an application on a remote computer.
Another solution is using WMI.
|
Re: Start or end an application on a remote computer.
Zitat:
I found this:
Delphi-Quellcode:
Run the application well, but the application not shown on the video to your PC remotely.
uses WbemScripting_TLB;
function remoteExecute(programName:string; machine:string=''; user:string=''; password:string=''):string; var SWbemLocator1:TSWbemLocator; Service: ISWbemServices; InParam, OutParam, SObject: ISWbemObject; Method: ISWbemMethod; SProp1, SProp2, MyProperty: ISWbemProperty; s,methodName:string; PropValue:OleVariant; begin methodName:='Create'; // CoInitialize(nil); SWbemLocator1:=TSWbemLocator.Create(nil); if machine='' then machine:='.'; Service:=SWbemLocator1.ConnectServer(machine,'root\CIMV2', user, password, '','', 0, nil); Service.Security_.Set_ImpersonationLevel(wbemImpersonationLevelImpersonate); SObject:= Service.Get('Win32_Process', 0, nil); Method:= SOBject.Methods_.Item(methodName, 0); InParam:= Method.InParameters.SpawnInstance_(0); MyProperty:= InParam.Properties_.Add('CommandLine', wbemCimtypeString, False, 0); PropValue:= programName; MyProperty.Set_Value(PropValue); MyProperty:= InParam.Properties_.Add('CurrentDirectory', wbemCimtypeString, False, 0); PropValue:= Null; MyProperty.Set_Value(PropValue); MyProperty:= InParam.Properties_.Add('ProcessStartupInformation', wbemCimtypeObject, False, 0); PropValue:= Null; MyProperty.Set_Value(PropValue); OutParam:= SObject.ExecMethod_(methodName, InParam, 0, nil); // OutParam:= SObject.ExecMethod_(methodName, nil, 0, nil); SProp1:= outParam.Properties_.Item('ReturnValue', 0); SProp2:= outParam.Properties_.Item('ProcessId', 0); case SProp1.Get_Value of 0:s:='Successful completion.'; 2:s:='Access denied.'; 3:s:='Insufficient privilege.'; 8:s:='Unknown failure.'; 9:s:='Path not found.'; 21:s:='Invalid parameter.'; else s:='Unknown reply code!'; end; SWbemLocator1.Free; service:=nil; SObject:=nil; OutParam:=nil; SProp1:=nil; result:=s+'(PID='+inttostr(SProp2.Get_Value)+')'; // CoUninitialize; end; Which parameter should vary? (like psexec: -i Interactive - Run the program so that it interacts with the desktop on the remote system.) Thanks |
Re: Start or end an application on a remote computer.
I changed the code
Delphi-Quellcode:
but application does not appear into remote desktop PC
....
Var ObjConf: ISWbemObject; ... ... ... Service.Security_.Set_ImpersonationLevel(wbemImpersonationLevelImpersonate); // added rows SObject:= Service.Get('Win32_ProcessStartup',0,nil); ObjConf := SObject.SpawnInstance_(0); PropValue := 1; objConf.Properties_.Item('ShowWindow',0).Set_Value(PropValue); SObject:= Service.Get('Win32_Process', 0, nil); ... ... MyProperty:= InParam.Properties_.Add('ProcessStartupInformation', wbemCimtypeObject, False, 0); // modified row PropValue:= ObjConf; MyProperty.Set_Value(PropValue); Help |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz