在winforms中创建保存按钮

在winforms中创建保存按钮,winforms,powershell,Winforms,Powershell,目标: $BtnSave=New-Object -TypeName System.Windows.Forms.Button $BtnSave.Text='Save' $BtnSave.Dock='bottom' $btnSave.DialogResult='Ok' $form.Controls.Add($BtnSave) $BtnSave.Add_Click({ $SaveFileDialog = New

目标:

      $BtnSave=New-Object -TypeName System.Windows.Forms.Button
      $BtnSave.Text='Save'
      $BtnSave.Dock='bottom'
      $btnSave.DialogResult='Ok'
      $form.Controls.Add($BtnSave)
      $BtnSave.Add_Click({
          $SaveFileDialog = New-Object 'System.Windows.Forms.SaveFileDialog'
          if ($SaveFileDialog.ShowDialog() -eq 'Ok')
          {
            $textBox.Text = $SaveFileDialog.FileName
            Write-Information 'File Saved'
          }
      })
Invoke-WebRequest : Missing an argument for parameter 'OutFile'. Specify a parameter of type 'System.String' and try again.
我正在尝试创建一个按钮,将文件保存到桌面。使用GET方法通过调用WebRequest获取传入文件。我希望保存按钮出现在我的弹出窗口中

这里有一个例子:

旁注:

此代码位于一个
开关中
,具有三种方式的变量拆分

switch (...) {
  p {
    if ($second -match 'RegexMatch') {
      $resource = $second
      $fileResult = Invoke-WebRequest -Uri https://url.com/$resource/file -WebSession $currentsession
      # End API Call
      Write-Host
      Write-Host '------------' -ForegroundColor Green
      Write-Host 'FILE Results' -ForegroundColor Green
      Write-Host '------------' -ForegroundColor Green
       # Create Window
      Add-Type -AssemblyName System.Windows.Forms
      $form = New-Object -TypeName System.Windows.Forms.Form
      $form.StartPosition = 'CenterScreen'
      $form.KeyPreview = $true
      $form.Add_KeyDown {
        if ($_.Control -and $_.KeyCode -eq 'F') {
          Add-Type -AssemblyName Microsoft.VisualBasic
          $stringToFind = [Microsoft.VisualBasic.Interaction]::InputBox('Please enter your search terms', 'Find')
          $pos = $textBox.Text.IndexOf($stringToFind)

          if ($pos -ne -1) {
            $textBox.SelectionStart = $pos
            $textBox.SelectionLength = $stringToFind.Length
          }
        }
      }
      # Textbox
      $textBox = New-Object -TypeName System.Windows.Forms.TextBox
      $textBox.Dock = [Windows.Forms.DockStyle]::Fill
      $textBox.ReadOnly =$true
      $textBox.Multiline = $true
      $textBox.ScrollBars = 'Vertical'
      $textBox.Font = New-Object -TypeName System.Drawing.Font -ArgumentList ('Arial',12)
      $textBox.ForeColor = 'White'
      $textBox.Text = $fileResult
      $textBox.BackColor = 'Black'
      $textBox.ShortcutsEnabled = $true
      $Form.Controls.Add($textBox)
        # Button
      $btn = New-Object -TypeName System.Windows.Forms.Button
      $btn.Text = 'Finish'
      $btn.DialogResult = 'Ok'
      $btn.Dock = 'bottom'
      $form.Controls.Add($btn)
      if ($form.ShowDialog() -eq 'Ok') {
        $tb.lines
      }
    } else {
      Write-Host
      Write-Warning -Message 'Please enter a valid FILE ID'
      Write-Host
    }
    break
  }
  ...
}
目的:

      $BtnSave=New-Object -TypeName System.Windows.Forms.Button
      $BtnSave.Text='Save'
      $BtnSave.Dock='bottom'
      $btnSave.DialogResult='Ok'
      $form.Controls.Add($BtnSave)
      $BtnSave.Add_Click({
          $SaveFileDialog = New-Object 'System.Windows.Forms.SaveFileDialog'
          if ($SaveFileDialog.ShowDialog() -eq 'Ok')
          {
            $textBox.Text = $SaveFileDialog.FileName
            Write-Information 'File Saved'
          }
      })
Invoke-WebRequest : Missing an argument for parameter 'OutFile'. Specify a parameter of type 'System.String' and try again.
我想添加一个选项,让用户下载文件,以便在不同的应用程序中进行更仔细的查看

问题:

      $BtnSave=New-Object -TypeName System.Windows.Forms.Button
      $BtnSave.Text='Save'
      $BtnSave.Dock='bottom'
      $btnSave.DialogResult='Ok'
      $form.Controls.Add($BtnSave)
      $BtnSave.Add_Click({
          $SaveFileDialog = New-Object 'System.Windows.Forms.SaveFileDialog'
          if ($SaveFileDialog.ShowDialog() -eq 'Ok')
          {
            $textBox.Text = $SaveFileDialog.FileName
            Write-Information 'File Saved'
          }
      })
Invoke-WebRequest : Missing an argument for parameter 'OutFile'. Specify a parameter of type 'System.String' and try again.
如何开始使用powershell中的winforms创建按钮以将此文件保存到磁盘

以下是我尝试过的:

      $BtnSave=New-Object -TypeName System.Windows.Forms.Button
      $BtnSave.Text='Save'
      $BtnSave.Dock='bottom'
      $btnSave.DialogResult='Ok'
      $form.Controls.Add($BtnSave)
      $BtnSave.Add_Click({
          $SaveFileDialog = New-Object 'System.Windows.Forms.SaveFileDialog'
          if ($SaveFileDialog.ShowDialog() -eq 'Ok')
          {
            $textBox.Text = $SaveFileDialog.FileName
            Write-Information 'File Saved'
          }
      })
Invoke-WebRequest : Missing an argument for parameter 'OutFile'. Specify a parameter of type 'System.String' and try again.
新问题:

      $BtnSave=New-Object -TypeName System.Windows.Forms.Button
      $BtnSave.Text='Save'
      $BtnSave.Dock='bottom'
      $btnSave.DialogResult='Ok'
      $form.Controls.Add($BtnSave)
      $BtnSave.Add_Click({
          $SaveFileDialog = New-Object 'System.Windows.Forms.SaveFileDialog'
          if ($SaveFileDialog.ShowDialog() -eq 'Ok')
          {
            $textBox.Text = $SaveFileDialog.FileName
            Write-Information 'File Saved'
          }
      })
Invoke-WebRequest : Missing an argument for parameter 'OutFile'. Specify a parameter of type 'System.String' and try again.
文件仍没有保存到磁盘,但单击时确实会显示“保存文件”对话框。此外,在调用WebRequest时使用Switch-OutFile会给我带来一个错误

错误:

      $BtnSave=New-Object -TypeName System.Windows.Forms.Button
      $BtnSave.Text='Save'
      $BtnSave.Dock='bottom'
      $btnSave.DialogResult='Ok'
      $form.Controls.Add($BtnSave)
      $BtnSave.Add_Click({
          $SaveFileDialog = New-Object 'System.Windows.Forms.SaveFileDialog'
          if ($SaveFileDialog.ShowDialog() -eq 'Ok')
          {
            $textBox.Text = $SaveFileDialog.FileName
            Write-Information 'File Saved'
          }
      })
Invoke-WebRequest : Missing an argument for parameter 'OutFile'. Specify a parameter of type 'System.String' and try again.

在表单中添加所需的按钮后,
Add_Click()
方法将允许您处理其单击事件并运行所需的任何脚本块(当单击按钮时)


此时,
Invoke WebRequest
-OutFile
参数将有助于将下载的文件保存到磁盘(将其传递到文件的所需路径)。

您可以1。在需要2的位置添加一个按钮。使用
Add\u Click()
方法处理其单击事件和3。使用
调用WebRequest
-OutFile
开关将下载的文件保存到磁盘。@sodawillow我已经用其他信息更新了我的帖子。我收到一个关于带有invoke-webrequest的“-Outfile”开关的新错误。您需要指定磁盘上的路径()。您应该提出一个新问题,这是另一个问题。@sodawillow,您应该对此问题给出一个答案;-)