Как мне получить известность, используя PowerShell, чтобы показать сравнение двух документов?C#

Место общения программистов C#
Anonymous
Как мне получить известность, используя PowerShell, чтобы показать сравнение двух документов?

Сообщение Anonymous »

Я написал какой -то код в PowerShell, который открывает два документа Word в Word, а затем вызывает обзор - сравните .
Однако мне не нравится, как мне нужно искать указатель Hwnd . Но я не могу использовать $ word.application.hwnd .
Кроме того, мое понимание C# плохое, и хотя $ source работает с Add-Type, как показано ниже, это не очень хорошо. Поэтому я хотел бы узнать более подходящий способ вызвать SetForegroundWindow в PowerShell.
cd ~\Documents\

$OrgDocPath = (Get-ChildItem '.\The first doc.docx').FullName
$RevDocPath = (Get-ChildItem '.\The second doc.docx').FullName

$Source = @"
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
"@

$foregroundWindowHelper = Add-Type `
-MemberDefinition $Source -Name "ForegroundWindowHelper" `
-Namespace "Win32Functions" `
-PassThru

$Word = New-Object -ComObject Word.Application

$OrgDoc1 = $Word.Documents.Open($OrgDocPath, $false, $true) #open hidden
$RevDoc2 = $Word.Documents.Open($RevDocPath, $false, $true) #open hidden
$ComparisonDoc = $Word.CompareDocuments($OrgDoc1, $RevDoc2)

$Doc1.Close($false) #not needed anymore
$Doc2.Close($false) #not needed anymore

$Word.Visible = $true
$ComparisonDoc.Activate()
$Word.ActiveWindow.View.ShowReviewingPane

$WordProc = Get-Process -Name winword |
where MainWindowtitle -like "$($ComparisonDoc.Name)*"
$ForegroundWindowHelper::SetForegroundWindow($WordProc.MainWindowHandle)



Подробнее здесь: https://stackoverflow.com/questions/797 ... of-two-doc

Вернуться в «C#»