|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
| [1259] ACROBAT READER の終了方法(ハンドル)? |
| 投稿者:北岳さん 2001/12/13 19:11:51 |
| 当方現在、ASPもブラウザも無関係の、スタンドアロン環境で(今のところ)、 WINDOWS2000pro+VB5+AcrobatReader5 を使っています。 VB5のshell関数でAcroRd32.exeを起動させて、指定したpdfファイル(**)を開き、 pdf内の(一見画像の)テキスト文字列を、全頁まとめてtxtファイルに一括コピー・ペーストしようとしています。 AcrobatReaderのメソッドが全然判らないので、VBのsendkeys関数で操作しています。 で、pdfファイル中身の文字列をコピーし、txtファイルにペーストする所まではできました。 最後に、「pdfファイルを開いたままのAcrobatReaderを閉じたい」のですが、 ハンドル名が違うらしくて、(自分の手で閉じない限り)どうにも閉じません。(★の部分) ハンドル名がお分かりの方、教えて頂けないでしょうか。 ============================================================= ■標準モジュール Declare Function FindWindow _ Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long '--------------------- Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hwnd As Long, ByVal wMsg As Long, _ ByVal wParam As Long, lParam As Long) As Long ============================================================= ■form1モジュール Option Explicit Dim path1 As String, path2 As String, adobe As String, buf As String Dim flag As Integer Dim lpClassName As String, lpCaption As String Dim Handle1 As Long, Handle2 As Long '------------------------------------- Private Sub Form_Load() Form1.Timer1.Interval = 5000 'ms End Sub '------------------------------------- Private Sub Command1_Click() '** pdf内のテキスト書込用ファイルを用意 Open "c:\documents and settings\administrator\デスクトップ\1.txt" For Output As #1 '** Acrobat5からpdfファイルを開く path1 = "c:\documents and settings\administrator\デスクトップ\" path2 = "info77.pdf" '(**)pdfファイル名を指定 adobe = "c:\Program Files\Adobe\Acrobat 5.0\Reader\AcroRd32.exe" buf = adobe & " " & path1 & path2 Shell buf, vbNormalFocus '** pdf全頁のテキスト文字列を一度に選択しコピー 10 SendKeys "%E" SendKeys "S" SendKeys "%E" SendKeys "C" '** 取り込みに時間がかかる場合を想定、5秒待つ。 flag = 0 20: DoEvents If flag = 1 Then '** クリップボードの中身をテキストファイルに書く Print #1, Clipboard.GetText Else GoTo 20 End If Close Call AcroQuit '■ MsgBox ("終了") End End Sub '------------------------------------- Sub Timer1_Timer() flag = 1 End Sub '------------------------------------- Sub AcroQuit() '** Readerの終了 '■ 'lpCaption = "AVPageView" lpClassName = "AVL_AVView" ★ lpCaption = "Acrobat Reader" ★ 'lpClassName = "Afx:400000:8:10011:0" '* ウインドウのハンドル取得 Handle1 = FindWindow(lpClassName$, lpCaption$) '* 閉じる Handle2 = SendMessage(Handle1, &H112, &HF060&, 0&) End Sub ============================================================= 参考にしたのは、 甲:[VB] システム メニューを持つアプリケーションをクローズする方法 http://www.microsoft.com/japan/support/kb/articles/J044/1/40.asp 乙:[VB] ウィンドウのクラス名や属性を取得する方法 http://www.microsoft.com/japan/support/kb/articles/J046/4/37.asp です。 Acrobat Readerのクラス名などは、乙を使ってタイトルバー位置で調べると Window.Handle:&H100008E Window Text:Acrobat Reader - [info77.pdf] Window Class Name: Afx:400000:8:10011:0:4020239 Window Style: &H14CF8000 などとなりますが、Class Nameの後の方の数字が毎回変わってしまうため、どう書けば・・・ |
![]()
ACROBAT READER の終了方法(ハンドル)?
北岳さん
[2001/12/13 19:11:51]
[1259]
|
Re:ACROBAT READER の終了方法(ハンドル)?
Tomitomiさん
[2001/12/13 20:36:02]
[1260]
ACROBAT READER のOCX?
Tomitomiさん
[2001/12/14 11:04:22]
[1261]
Re:ACROBAT READER のOCX?
北岳さん
[2001/12/14 12:14:35]
[1262]
アドビ一族の陰謀
北岳さん
[2001/12/14 13:52:38]
[1263]
|
|
TreeBBS For ASP V.0.1.3 |