LhaplusやWinRARのようなDLL

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
str200
記事: 1
登録日時: 2006年3月21日(火) 12:09

LhaplusやWinRARのようなDLL

#1 投稿記事 by str200 »

最近ActiveBasicを使い始めたものですが、
私はファイルを右クリックしたときに出るLhaplusやWinRARのような
ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
であるためよくわかりません。
LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
わかったのですが。
どなたか教えて下さい。
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

Re: LhaplusやWinRARのようなDLL

#2 投稿記事 by Sinryow »

最近ActiveBasicを使い始めたものですが、
私はファイルを右クリックしたときに出るLhaplusやWinRARのような
ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
であるためよくわかりません。
LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
わかったのですが。
どなたか教えて下さい。
LhaplusやWinRARは普段使っていないので分からないですが
エクスプローラとかでファイルを右クリックして出るようなポップアップでしたら,TrackPopupMenu関数を利用して出すことができます。
この時,表示するメニューはABのメニューエディタで作成できます。

メニューIDを「IDM_TestMenu」にしたとして,以下のような感じで記述します。(サンプルプログラムの内容をそのまま持ってきている点にご注意下さい)

コード: 全て選択

' ウィンドウ上で右クリックすることでメニューを表示することを想定
Sub MainWnd_RButtonDown(flags As Long, x As Integer, y As Integer)
	Dim hSubMenu As HMENU, pt As POINTAPI

	' メニューハンドルは hMenu_[メニューID] となるので,このことから
	' 子メニューのハンドルをGetSubMenuで取得する。
	hSubMenu = GetSubMenu(hMenu_IDM_TestMenu, 1)

	' ポップアップメニューを表示する位置を求める。
	pt.x = x
	pt.y = y
	ClientToScreen(hMainWnd, pt)

	' ポップアップメニューを表示する。
	TrackPopupMenu(hSubMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hMainWnd, ByVal NULL)
End Sub
サンプルを以下の場所にアップしておきます。
http://www.sinryow.net/hitori/TrackPopupMenu.lzh
※ウィンドウ上の適当な場所を右クリックするとポップアップメニューが出ます

参考ページ:http://www.kumei.ne.jp/c_lang/sdk/sdk_44.htm
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
ノッチ
記事: 82
登録日時: 2005年6月01日(水) 23:27
お住まい: 北海道札幌市

Re: LhaplusやWinRARのようなDLL

#3 投稿記事 by ノッチ »

>
最近ActiveBasicを使い始めたものですが、
> 私はファイルを右クリックしたときに出るLhaplusやWinRARのような
> ポップアップ形式のメニューを作りたいのですがプログラミングの初心者
> であるためよくわかりません。
> LhaplusやWinRARはDLLファイルを使っているという事はレジストリを調べて
> わかったのですが。
> どなたか教えて下さい。
> LhaplusやWinRARは普段使っていないので分からないですが
> エクスプローラとかでファイルを右クリックして出るようなポップアップでしたら,TrackPopupMenu関数を利用して出すことができます。
恐らくstr200さんの実現したいことはエクスプローラーの右クリック
メニューに独自のメニューを追加したいということだと思います。
そうだとすると、この実現にはレジストリをいじるだけでできます。
と言ってもレジストリをいじるのは知識がないと危ないです。&僕はよくわかりません。
予想ではHKEY_CLASSES_ROOTか
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
あたりの"*"のところに全てのファイルに共通、".txt"等にその拡張子特有の
メニューを追加させて処理させるのだと思うのですが・・・。
このへんはレジストリに詳しい人の意見を聞いたほうがよろしいです。
ゲスト

#4 投稿記事 by ゲスト »

「シェルエクステンション」
っていう奴ですね。
私も詳しくないのでアドバイスすることは出来ないのですが、
C++やDelphiで書かれた同機能を有するソフトで、
いくつかソースを公開しているソフトがあったと思いますので、
まずはそちらを参考にしてみることから始めてはいかがでしょうか?
返信する