Вземете последно модифициран от файла на Word 2010, като отворите и използвате sendkeys от пакетен скрипт

Опитвам се да намеря човека, който последно е модифицирал документ на Word 2010, и реших, че ще бъда наистина умен, като просто отворя файла и използвам sendkeys. Никога не съм използвал sendkeys, така че вероятно е някаква наистина проста корекция с моя синтаксис.

Опитах се да използвам тази помощна тема, за да го поправя, но нямам късмет: Натиснете клавиатура ключове с помощта на пакетен файл

Ето моите проблеми:

  1. Работи само ако Word вече е отворен и след това променя отворения прозорец към файла, който искам. Можем ли да го вземем, за да не се налага първо да отварям дума?

  2. Може да въвежда само текст в word. Изглежда не мога да изпратя специалните клавиши като alt. Опитвах „{%}“, но ми дава грешка при изпълнение на Java. И така, предполагам, че има нещо нередно с Jscript в долната част?

  3. Ако се опитам да използвам WScript.Sleep 5000, също получавам грешка по време на изпълнение.

  4. Ако се опитам да посоча кой прозорец да направя активен, WshShell.AppActivate, получавам грешка по време на изпълнение.

Аз също съм нов в Jscript. Ще бъда благодарен за всякаква помощ. Благодаря, CJ.

Моят код:

@if (@CodeSection == @Batch) @then

@echo off

rem use the sendkeys 
set SendKeys=CScript //nologo //E:JScript "%~F0"

cd C:\users\cbaker\desktop
start /w test.doc

%SendKeys% "{%}"
%SendKeys% "f"
%SendKeys% "i"
%SendKeys% "{tab 14}"
%Sendkeys% "^c"

rem Open notepad
cd C:\windows
start /w notpad.exe

%SendKeys% "^(V)"

goto :EOF

@end

// JScript section

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

person user3523893    schedule 11.04.2014    source източник


Отговори (1)


Можете да разгледате използването на VBScript, пример тук.

По принцип бихте записали скрипт като този по-долу във файл, наречен "GetInfo.vbs", и след това стартирайте

CSCRIPT /NOLOGO GetInfo.vbs

в команден ред.

Или можете да щракнете двукратно върху него в Windows (File) Explorer.

Имайте предвид, че ще трябва да промените името във втория ред, за да съответства на вашия документ. Може също така да се наложи да разгледате как да предавате аргументи на командния ред, за да можете да го стартирате с името на документ, който искате да проверите.

Set objPropertyReader = CreateObject("DSOleFile.PropertyReader") 
Set objDocument = objPropertyReader.GetDocumentProperties _ 
    ("C:\Scripts\Test.doc") 

Wscript.Echo "Application name: " & objDocument.AppName 
Wscript.Echo "Author: " & objDocument.Author 
Wscript.Echo "Comments: " & objDocument.Comments 
Wscript.Echo "Company: " & objDocument.Company 
Wscript.Echo "Date created: " & objDocument.DateCreated 
Wscript.Echo "Date last saved: " & objDocument.DateLastSaved 
Wscript.Echo "Last edited by: " & objDocument.LastEditedBy 

По-долу е друг метод... ако прегледате кода, ще видите, че авторът е извлечен. Може да се наложи да поиграете в търсене на други полета, но малко гугъл би трябвало да реши проблема.

On Error Resume Next

Set objWord = CreateObject("Word.Application")
Wscript.Echo "Active Printer:", objWord.ActivePrinter

For Each objAddIn in objWord.AddIns
    Wscript.Echo "AddIn: ", objAddIn
Next

Wscript.Echo "Application:", objWord.Application
Wscript.Echo "Assistant:", objWord.Assistant

For Each objCaption in objWord.AutoCaptions
    Wscript.Echo "AutoCaptions:", objCaption
Next
Wscript.Echo "Automation Security:", objWord.AutomationSecurity
Wscript.Echo "Background Printing Status:", objWord.BackgroundPrintingStatus
Wscript.Echo "Background Saving Status:", objWord.BackgroundSavingStatus
Wscript.Echo "Browse Extra File Type:", objWord.BrowseExtraFileTypes
Wscript.Echo "Build:", objWord.Build
Wscript.Echo "Caps Lock:", objWord.CapsLock
Wscript.Echo "Caption:", objWord.Caption

For Each objLabel in objWord.CaptionLabels
    Wscript.Echo "Caption Label:", objLabel
Next

Wscript.Echo "Check Language:", objWord.CheckLanguage

For Each objAddIn in objWord.COMAddIns
    Wscript.Echo "COM AddIn:", objAddIn
Next

Wscript.Echo "Creator:", objWord.Creator

For Each objDictionary in objWord.CustomDictionaries
    Wscript.Echo "Custom Dictionary:", objDictionary
Next

Wscript.Echo "Customization Context:", objWord.CustomizationContext
Wscript.Echo "Default Legal Blackline:", objWord.DefaultLegalBlackline
Wscript.Echo "Default Save Format:", objWord.DefaultSaveFormat
Wscript.Echo "Default Table Separator:", objWord.DefaultTableSeparator

For Each objDialog in objWord.Dialogs
    Wscript.Echo "Dialog:", objDialog
Next

Wscript.Echo "Display Alerts:", objWord.DisplayAlerts
Wscript.Echo "Display Recent Files:", objWord.DisplayRecentFiles
Wscript.Echo "Display Screen Tips:", objWord.DisplayScreenTips
Wscript.Echo "Display Scroll Bars:", objWord.DisplayScrollBars

For Each objDocument in objWord.Documents
    Wscript.Echo "Document:", objDocument
Next

Wscript.Echo "Email Template:", objWord.EmailTemplate
Wscript.Echo "Enable Cancel Key:", objWord.EnableCancelKey
Wscript.Echo "Feature Install:", objWord.FeatureInstall

For Each objConverter in objWord.FileConverters
    Wscript.Echo "File Converter:", objConverter
Next

Wscript.Echo "Focus In MailHeader:", objWord.FocusInMailHeader

For Each objFont in objWord.FontNames
    Wscript.Echo "Font Name:", objFont
Next

Wscript.Echo "Height", objWord.Height

For Each objBinding in objWord.KeyBindings
    Wscript.Echo "Key Binding:", objBinding
Next

For Each objFont in objWord.LandscapeFontNames
    Wscript.Echo "Landscape Font Name:", objFont
Next

Wscript.Echo "Language", objWord.Language

For Each objLanguage in objWord.Languages
    Wscript.Echo "Language:", objLanguage
Next

Wscript.Echo "Left", objWord.Left
Wscript.Echo "Mail System:", objWord.MailSystem
Wscript.Echo "MAPI Available:", objWord.MAPIAvailable
Wscript.Echo "Math Coprocessor Available:", objWord.MathCoprocessorAvailable
Wscript.Echo "Mouse Available:", objWord.MouseAvailable
Wscript.Echo "Name:", objWord.Name
Wscript.Echo "Normal Template:", objWord.NormalTemplate
Wscript.Echo "Num Lock:", objWord.NumLock
Wscript.Echo "Parent:", objWord.Parent
Wscript.Echo "Path:", objWord.Path
Wscript.Echo "Path Separator:", objWord.PathSeparator
Wscript.Echo "Print Preview:", objWord.PrintPreview

For Each objFile in objWord.RecentFiles
    Wscript.Echo "Recent File:", objFile
Next

Wscript.Echo "Screen Updating:", objWord.ScreenUpdating
Wscript.Echo "Show Visual Basic Editor:", objWord.ShowVisualBasicEditor
Wscript.Echo "Special Mode:", objWord.SpecialMode
Wscript.Echo "Startup Path:", objWord.StartupPath

For Each objTask in objWord.Tasks
    Wscript.Echo "Task:", objTask
Next

For Each objTemplate in objWord.Templates
    Wscript.Echo "Template:", objTemplate
Next

Wscript.Echo "Top:", objWord.Top
Wscript.Echo "Usable Height:", objWord.UsableHeight
Wscript.Echo "Usable Width:", objWord.UsableWidth
Wscript.Echo "User Address:", objWord.UserAddress
Wscript.Echo "User Control:", objWord.UserControl
Wscript.Echo "User Initials:", objWord.UserInitials
Wscript.Echo "User Name:", objWord.UserName
Wscript.Echo "Version:", objWord.Version
Wscript.Echo "Visible:", objWord.Visible
Wscript.Echo "Width:", objWord.Width

For Each objWindow in objWord.Windows
    Wscript.Echo "Window:", objWindow
Next

Wscript.Echo "Window State:", objWord.WindowState
objWord.Quit
person Mark Setchell    schedule 11.04.2014
comment
Много благодаря. Ще ги пробвам. - person user3523893; 15.04.2014