gen – プログラミング – Home

通知
すべてクリア

gen


ShellExecuteの最後のパラメータ
 ShellExecuteの最後のパラメータ
(@ShellExecuteの最後のパラメータ)
ゲスト
結合: 22年前
投稿: 1
Topic starter  

MFCで作ったプログラムからnotepad.exeを前回の表示状態で呼ぼうとしています。

ShellExecuteの最後のパラメータにSW_SHOWNOACTIVATEを指定して、
サイズや位置などを前回の状態でnotepad.exeを起動したいのですが、
どうも前回の状態を覚えていないようです。
調べたところ呼び出し先のアプリケーションに依存するらしいのですが、
どうすれば、前回の状態で起動することができますか?

よろしくお願いいたします。

環境
Win2000/VC++6.0


引用解決済
トピックタグ
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 23年前
投稿: 310
 

> 前回の状態で
とはどういったことを期待しているのでしょうか?

少なくとも、あなたが期待している機能が、当該アプリケーションに
実装されていなければ、動作すべくもないのですが。


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 23年前
投稿: 310
 

MFCならば、デフォルトでレジストリを使用しているので、ウィンドウサイズとか
覚えていたような。とりあえず、ソースはどうなっていますか?


返信引用
gen
 gen
(@gen)
ゲスト
結合: 22年前
投稿: 1
 

ご回答ありがとうございます。

ダイアログベースで、ボタンをクリックした時にメモ帳を起動する
という機能です。

CXXXX::OnBnClickXXX()
{
ShellExecute(NULL,NULL,_T(notepad.exe),NULL,NULL,SW_SHOWNOACTIVATE);
}

一度起動して、たとえば最大化した状態で終了したら、次に起動した場合に最大化状態で
開きたいです。
最大化状態以外で終了した場合はそのサイズと位置の状態で、次に起動したいです。

よろしくお願いいたします。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

具体性に欠けますが
NOTEPAD自体前の終了状態をレジストリに保存しているとは思えないのですが
レジストリエディタでキーを検索すると
HKEY_CURRENT_USER¥SOFTWARE¥MICROSOFT¥NOTEPAD
というキーが見つかりました
ここの内容を編集してあげれば、何とかなるかも?

1.ShellExecuteごNOTEPADの状態を監視
  何個も上がっていたら、どれを監視するんでしょうね
  別の起動方法によって、同時に起動されているものがいたら
  難しいと思いますけど

2.監視確認できた最後の状態をレジストリに編集

ただし、別目的で次回NOTEPADを起動したときビックリする結果になるかも?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました