問題タブ [win32ole]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
215 参照

ruby - RubyはどのOLEオブジェクトが列挙可能かをどのように認識していますか?

Ruby と WIN32OLE (具体的には Excel) を使用していました。

Range.Columns などの列挙可能なオブジェクトはすべて Ruby で自動的に列挙可能であり、obj.each メソッドを使用して反復処理できることがわかりました。

私はそれがどのように機能するのだろうか?何かを列挙可能にしたい場合は、include "Enumerable". しかし、明らかに、その行を OLE オブジェクトに入れることはできません。obj.eachメソッドをfor eachループに直接マッピングするだけですか?

0 投票する
1 に答える
826 参照

perl - Perlでドキュメントを閉じているときにOLE例外を取得する

perlで次の例外が発生しています。また、私は今 perl テクノロジーに取り組んでいます。例外は:

例外が発生している getWordComments.pl のサンプル コードを次に示します。
A)ドキュメントを開くための次のコード

B)それから私はコメントを読んでいます。
C) ドキュメントを閉じるための次のコード。

これはoffice版の問題でしょうか?ドキュメントが .docx であるためです。.doc に対して適切に動作します。

この問題を解決するために私を助けてください。


ドキュメントからコメントを読み、ドキュメントをサーバーに保存しています。拡張子が *.docx および *.doc のドキュメントの残りの部分は正常に機能します。

また、perlでこれを行う方法を教えてください。

2003 Office および 2007 Office バージョンのドキュメントを閉じたいと思います。

これはバージョンの問題ですか?

ありがとう、よろしく Arvind Polekar

0 投票する
0 に答える
205 参照

ruby - メインスレッドではない WIN32OLE_EVENT::message_loop を使用する 問題

メイン スクリプトの実行中に OLE イベントを取得できるようにする Ruby スクリプトを作成しようとしています。WIN32OLE_EVENT::message_loop を別のスレッドに移動し、他のスクリプト部分の実行中にイベント ハンドラーが同時に呼び出されることを期待しています。たとえば、このサンプル スクリプトの主な目的は、デバイスに接続し、irb コンソールの実行中にイベント メッセージを取得することです (標準出力に出力するだけです)。

このスクリプトを実行すると (ただし、一部がスキップされたため実行できません)、irb コンソールが表示され、Windows に接続された USB デバイスを操作するオブジェクトにアクセスし、さまざまなイベントを発生させるいくつかのメソッドを呼び出すことができ、これらのイベントが期待されます。 stdout への出力を確認するためだけに esc.on_event ブロック内。しかし、このブロックは呼び出されませんでした。しかし、irb コンソールに「exit」と書くと、サンプル スクリプトの最後の行がWIN32OLE_EVENT::message_loopであるため、イベントが取得されます。

メインスレッドでのみ機能する message_loop を呼び出し、他のスレッド内で呼び出すと、結果が得られないように見えます。

それを機能させる方法はありますか?追加の質問をお気軽に。ありがとう。

0 投票する
1 に答える
700 参照

ruby-on-rails - Ruby on RailsでWIN32OLEを使用してリモートサーバーからWord文書をレンダリングする

その時点でwin32oleをスタンドアロンアプリケーションとして使用している場合、すべてが正常に機能しているように見えますが、雑種サーバーで実行されているレールアプリケーションに入れるとすぐに、無限ループに入ります。

「https://microsoft/sharepoint/document.doc」にアクセスしようとしています

その時点でこのコードをスタンドアロンで実行すると、1 つのポップアップが Microsoft 共有ポイントの資格情報に表示されます。ただし、雑種レールでは無限ループに入ります。

Rails を介して表示するには、このポップアップを処理する必要がありますか?

0 投票する
2 に答える
1189 参照

c# - COMを介してRubyからC#.dllを呼び出す

RubyコードでC#からいくつかのメソッドを呼び出そうとしています。まず、VisualStudio2008で.dllを作成しています。ビルド時にCOM相互運用機能に登録しています。

この新しいプロセスをテストするために、C#で簡単な小さなDivideTwoメソッドを作成しました-

Rubyでは、次のことを行います。

私はそれが機能するようになったと思うので、私はすべて興奮しています!次に、次のメソッドを使用してC#からハッシュを返すことにしました。

Rubyでは、次のことを行います。

ご覧のとおり、COMオブジェクトが返されます。オブジェクトから何も取り出せません。x.each {block}は、「IEnumインターフェイスの取得に失敗しました」というエラーを表示します。興味深いことに、C#から配列を返すと、.eachはそのオブジェクトで機能します。

私もこれを正しい方法で行っていますか?

ありがとう

0 投票する
2 に答える
4186 参照

perl - Cygwin で Perl Win32::OLE を使用して .xls ファイルを読み取る際の問題

私はこれと2日間戦っていますが、解決策が見つからず、イライラしています. Cygwinで以下のコードを使用しているときに、このエラーが発生します

「Microsoft Office Excel」からの OLE 例外: Excel は「Empty.xls」にアクセスできません。
ドキュメントは読み取り専用または暗号化されている可能性があります。Win32::OLE(0.1703) エラー 0x800a03ec METHOD/PROPERTYGET "Open" at m:/In/make_excel.pl 行 24

問題は、DOSプロンプトの下で完全に機能していることです。もちろん、ファイルは読み取り専用ではありません。ファイル形式の解釈に問題があると思います。ヒントはありますか?高く評価されます。

0 投票する
1 に答える
564 参照

perl - ExcelでのRange-Objectの位置

Excel(2007)-ワークシートで選択した範囲の位置を取得する方法を理解しようとしています。$self->{EXCEL}->ActiveCell->Rowセル ( self->{EXCEL}Excel オブジェクトである) に似たものはありますか?

->Selection->Range->ActiveSheet->Range、および を回避策として試しましたが、Excel オブジェクトと Worksheet オブジェクトの両方で成功しませんでした->Range->Row->Range->Rows

最も洗練された出力は、2 つの Cell-Object で、1 つは開始アドレス用、もう 1 つは終了アドレス用です。

役立つヒントをありがとう!

===更新===

コマンドを正常に使用して$self->{EXCEL}->Selection->Address();、選択した範囲のアドレスを取得できるようになりました。デフォルトでは、アドレスは「A1」形式 ( $E$1:$G$14) で取得されます。ただし、使用->Address("ToReferenceStyle:=xlR1C1")すると、予想どおり「R1C1」形式のアドレスが返されません...

コマンドがおかしい?エクセル無知?役に立つヒントをありがとう!

0 投票する
1 に答える
1487 参照

windows - Perl+Excel: 「Win32::OLE::Const を使用」が効果がない

StrawberryPerl v 5.014 と Win32::OLE を使用して、Windows 7 システムでプロジェクトに取り組んでいます。

Windows XP SP3 を実行する 2 台目の PC を使用して、同じプロジェクトを並行して開発しようとしています。新しいシステムに Strawberry Perl v 5.016 をインストールし、cpanp を使用して Win32::OLE と Win32::OLE::Const をインストールしました。

新しいシステムでも同じスクリプト ソースを使用しています。

新しいシステムでは、どういうわけか

は効果がありません。エラーが発生しています:

このエラーは、私が言及した最初の元のシステムでは表示されません。

何をすべきか?

ティア、ヘレン

プログラムからの抜粋は次のとおりです。

注: PerlMonks に相互投稿: http://www.perlmonks.org/?node_id=985596

0 投票する
1 に答える
688 参照

perl - telnet を介してリモート Windows マシンで win32ole スクリプトを実行する

リモートの Windows マシンで Word 文書を作成しようとしています。私がしようとしているのは、リモートの Windows マシンに telnet で接続し、Win32::OLE を介して Word 文書を作成する perl スクリプトを実行することです。しかし、うまくいかないようです。これは可能ですか?私のスクリプトでは {visible} が 1 に設定されているため、その telnet セッションは word アプリケーションのインスタンスにアクセスできますか? 少なくとも試してみましたが、うまくいきませんでした。

0 投票する
1 に答える
1710 参照

c - メモリ内の仮想ファイル

既存のプログラム (プレーンな C コンソール アプリ) に暗号化機能を追加しています。入力パラメーターとして必要なファイルはほとんどなく、私の仕事はこのファイル (機密データ) を保護することです。

私が今やっていることは、最初にファイルを暗号化し(外部アプリケーションとの単純なXOR)、次にプログラム内でそれらを解読し、既存のプログラムがファイルを処理することです。次に、すべてが成功したら、それらのファイルを暗号化して戻します (すべてがハードディスクにローカルに保存されます)。

ただし、すべての「開いている」ファイルはハードディスクに保存されるため、セキュリティには穴があります。プログラムが途中で失敗した場合、それらのファイルは復号化されません。

私の問題は、既存のプログラムがFILE変数を入力として取り、それらのファイルを直接操作していることです。これは私のプログラムではないので、変更する権利はありません。

必要なのは、ファイルをハードディスクではなくメモリに書き込むことです。これを可能にするライブラリが Linux にいくつかあることは知っていますが、私はこれを win で開発しています。