Good Morning,
you can create a bat and copy this to the Client-PC (fgl_putfile)
Then execute this File on the client.
To execute the Client-File I create a further vbs script, to avoid the popup of the dos-command box
Stefan
#------------------------------------------------------------------------------
function wc_verzeichnis_anlegen(lo_wcdir)
define lo_stm string,
lo_clientfile string,
lo_clientdir string,
lo_clientbatchfile string,
lo_serverfile string,
lo_wcdir string, --name des webcomponent-verzeichnis
lo_z smallint,
lo_i smallint,
lo_buf base.StringBuffer,
lo_ch base.channel,
lo_z2 smallint,
lo_z3 smallint
call ui.interface.frontcall("standard", "feinfo", ["datadirectory"],[lo_clientfile])
let lo_clientdir = lo_clientfile
--batchdatei für mkdir
let lo_serverfile = "/programme/lutztmp/anlegen_", gl_vlogin clipped, ".bat"
let lo_ch = base.channel.create()
call lo_ch.openfile(lo_serverfile, "w")
call lo_ch.setdelimiter("")
let lo_clientfile = lo_clientdir clipped, "\\anlegen.bat"
let lo_stm = "mkdir ", "\"", lo_clientdir clipped, "\\", lo_wcdir clipped, "\""
call lo_ch.write(lo_stm)
call lo_ch.write(ascii 13)
call lo_ch.close()
call datei_auf_client_maps(lo_serverfile, "X") returning lo_clientbatchfile --nur ablegen, nicht ausführen
--dieses VB-Script wird ausgeführt. Das verhindert das Aufpoppen der DOS-Box
let lo_serverfile = "/programme/lutztmp/ausfuehren_", gl_vlogin clipped, ".vbs"
let lo_ch = base.channel.create()
call lo_ch.openfile(lo_serverfile, "w")
call lo_ch.setdelimiter("")
call lo_ch.write("Set WshShell = WScript.CreateObject(\"WScript.Shell\")")
let lo_clientbatchfile = "\"", "\"", lo_clientbatchfile clipped, "\"", "\"" --es müssen drei vorher und nachher sein !
let lo_stm = "WshShell.Run ", lo_clientbatchfile clipped, ",0,True"
call lo_ch.write(lo_stm)
call lo_ch.close()
call datei_auf_client_maps(lo_serverfile, "A") returning lo_clientbatchfile
end function
#--------------------------------------------------------------------------------------------------
#------------------------------------------------------------------------------
function datei_auf_client_maps(lo_serverfile, lo_aktion)
define lo_serverfile string, #pfad + Name der ServerDatei,
lo_clientfile string, #
lo_datei string, #Name des lo_serverfile, ohne Verzeichnis
lo_datei2 string, #Name des lo_serverfile, ohne Verzeichnis + currentstempel
lo_time string,
lo_aktion char(1) ##A=ausführen (pdf wird angezeigt, vbs ausgeführt), K=nur auf client
##X=Datei ohne Zeitstempel ablegen, aber nicht ausführen!
let lo_serverfile = lo_serverfile clipped
if os.path.isfile(lo_serverfile) = false then
error "......Datei nicht auf dem Server ...."
return --keine Anzeige
end if
--call set_current() returning lo_time
call ui.interface.frontcall("standard", "feinfo", ["datadirectory"],[lo_clientfile])
if lo_aktion = "X" then --kein Zeitstempel!
let lo_datei = os.path.basename(lo_serverfile)
let lo_datei2 = lo_datei
let lo_clientfile = lo_clientfile clipped, "\\", lo_datei2
else
let lo_datei = os.path.basename(lo_serverfile)
let lo_datei2 = os.path.rootname(lo_datei) clipped, "_", lo_time clipped, ".",
os.path.extension(lo_datei clipped)
let lo_clientfile = lo_clientfile clipped, "\\", lo_datei2
end if
try
call fgl_putfile(lo_serverfile, lo_clientfile)
end try
let lo_clientfile = "\"", lo_clientfile clipped, "\""
if lo_aktion = "A" then --anzeigen, oder ausführen
call ui.Interface.frontCall("standard", "shellexec", [lo_clientfile clipped], [])
else
--nix, wird nur auf client kopiert
end if
return lo_clientfile
end function
#------------------------------------------------------------------------------