電子書籍の厳選無料作品が豊富!

いつもお世話になります

今、AutocadALtでの自動処理プログラムを作成しています
そこでプログラム起動時にAutocadLtの起動確認をしたいのですが、
今まではAcdaremoconというフリーソフト行っていましたが
Win64またWin32で行いたいと思い
Webから下記の記述を見つけました

しかし、クラス名のところでつまずいてしまいました
例題で"Notepad"なのですが、AutocadLtは”Acadlt"ではないみたいです

Option Explicit
Declare PtrSafe Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPtr

Sub FindWindow_Sample()
Dim strClassName As String 'クラス名
Dim rc As LongPtr
Dim lngProcessID As Long 'Shell関数の戻り値

'クラス名を指定する
'strClassName = "Notepad"
strClassName = "Acadlt"

'ウィンドウハンドルを取得する
rc = FindWindow(strClassName, vbNullString)

'ウィンドウハンドルを取得できた時は起動しない
If rc <> 0& Then
MsgBox "すでに起動しています"
Exit Sub
End If

'起動する
 lngProcessID = Shell("C:\Program Files\Autodesk\AutoCAD LT 2018\Acadlt.exe", vbNormalFocus)

End Sub

いつも申し訳ございません
クラス名について分かりましたら、教えてください

A 回答 (1件)

こちらが解決しないと、もう一つの質問も解決しないのではありませんか?


それと、
>しかし、クラス名のところでつまずいてしまいました
>例題で"Notepad"なのですが、AutocadLtは”Acadlt"ではないみたいです

これは、初歩的ですが、VSなどをインストールしていれば、ツールがあるはずですが、単独では、古くからあるものですが、
https://www.vector.co.jp/soft/win95/prog/se29193 …
MiniSpy

を使います。
MIniSpy の画面
「vba アプリの起動確認でAutocad」の回答画像1
    • good
    • 0
この回答へのお礼

こんにちは
いつもありがとうございます

早速、ダウンロードして使ってみました
AutoCadLt画面にドラッグしたところ、いろいろな画面が
セレクト状態になり、最初は戸惑いましたが画面を小さくして
全体のフレームをセレクトしたところ上手くクラス名を拾えました

早速、みんなに教え感動してました
本当にありがとうございます

次の質問の答えもこれから見ます

お礼日時:2019/08/14 10:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!