8

Word文書をWordで開き、WordファイルをPDFとして印刷するスクリプトを開発中です。マシンやサーバーのいずれかで手動で実行するとすばらしいことになります。スケジュールされたタスクとして実行しようとすると、問題が発生します。スケジュールされたタスクでWord Interopが機能しない

必要条件の1つは、介入なしに夜間に行う必要があることです。これを行うスケジュールタスクを設定し、セキュリティオプションを「ユーザーがログオンしているときだけ実行する」に設定すると、すべて正常に動作します。問題は、これは誰かがログオンしているかどうかにかかわらず実行する必要があることです。私は、「ユーザーが上かログインしているかどうかを実行」するタスクを設定した場合、スクリプトは次の行に失敗します。

wordDoc = MSWord.Documents.Open(ref fileToConvert, ref refFalse, ref refTrue, 
           ref RN, ref RN, ref RN, ref RN, ref RN, 
           ref RN, ref RN, ref RN, ref RN, ref RN, 
           ref RN, ref RN, ref RN); 

MSWord.Documents.Open()動作しますが、nullを返します。

このタスクは、オフィスでのWindows Server 2008上で実行されている2007年

は、私はこのために服用しなければならない別のアプローチはありますか?

+0

私は、まったく同じ問題を抱えていた、それを解決しようとする年齢を過ごし、様々な行き止まりを下って行き、最終的に私がなってしまった「ソリューション」でした:Windowsのを使用しませんこの問題に対する解決策を見つけたら、私はすべての耳になるでしょう。 –

+0

Server 2008を使用していない場合はうまくいくのですか? –

+0

Windows 2003サーバーまたはXPでは、はい。 Vistaについてはわからない。 –

答えて

3

私は、多くの人があなたの試みや失敗に近いものをしようとしていると信じています。サーバーのようなモード(無人など)でオフィスinteropベースのソリューションを実行することができないという噂がたくさんあります。

私は、これはおそらくあなたが探していた答えではない知っているが、それはそれがどのようにそれにもかかわらずであるherehere

を参照してください!

+0

私は何か答えを探していました。 Googleの検索結果から何が起きているのかについての情報を見つけることができなかったので、あなたのご意見をありがとうございます。私はそれにもう少し時間を与えて、 "解決策"が掲示されていない場合、私は答えとしてあなたの印をつけます。 –

+0

良いリンクと情報 –

21

Windows Server 2003では、Windows Server 2008でWindowsサービスからOfficeを自動化する際に問題がありましたが、Windows Server 2003ではうまく機能しますが、この問題はOpen呼び出しでも発生しますが、単にnullを返すのではなく例外が発生します。とにかく、これを試してみるといいかもしれません...

this MSDN threadでH小川さんの助言にしたがって試してみたところ、うまくいったようです。それは奇妙なものですが、それを発見した小川さんに誇りを持っています。 「小川ハック」の

概要:あなたは64ビットを持っているかどうかに応じて...どちらか

C:\Windows\SysWOW64\config\systemprofile\Desktopとして、システムプロファイルのデスクトップフォルダを作成し、または

C:\Windows\System32\config\systemprofile\Desktop

Windows。

また、このフォルダには、Officeを「運転」しているユーザーの書き込み権限が必要です。

[編集:補正されたリンクURL]

+1

ありがとうございます。私は時間が許す限りすぐに見なければならないでしょう。私はそれが動作するかどうかを返信します。 –

+0

素晴らしい作品です!これで私には数多くの頭痛(頭痛)が救われました...今はサービスからWordを実行することから実際に壊れるものはないと願っています。 –

+3

それは私のために働いたが、私はローカル管理グループにユーザーを追加し、 "最高の特権で実行"オプションをチェックしなければならなかった。 –

関連する問題