ホーム » Windows » IShellLink::SetShowCmd

2021年12月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

アーカイブ

ブログ統計情報

  • 77,364 アクセス



IShellLink::SetShowCmd

ツールなどのスタートアップへの登録.


スタートアップのパスの取得は次の様な感じ.

	LPITEMIDLIST	pidl = 0 ;
	::SHGetSpecialFolderLocation(NULL,CSIDL_STARTUP,&pidl) ;
	tstring	start_path = ::SH_GetPathFromIDList(pidl) ;

lnk の作成は,以前にツールを作成してその時のものを利用.
http://mish.work/joomla/index.php/i-tools/create-l.html
https://mish.myds.me/wordpress/dev/2020/01/11/msdn-createlink/
lnk のスタートアップへの登録は次の様にできる.

	tstring	start_lnk = ::Path_AddLastSP(start_path) + ::Path_GetTitle(file_path) + _T(".lnk") ;
	tstring	descript = _T("コメント") ;
	::Create_lnk(file_path.c_str(),start_lnk.c_str(),descript.c_str()) ;

今回は,robocopy のコマンドを BAT ファイルとして生成し,それをスタートアップへ登録したかった.
http://mish.work/joomla/index.php/i-tools/cl-copy.html
「ディレクトリ以下のコピー」ツール
動作としてはうまく機能するが,BAT ファイルを使用しているためコマンドプロンプトが表示されてしまう.
最小化された状態で起動する方が動作はスマート?
lnk 作成時に指定できるだろうと思い 検索 するとあった.
シェルリンク
IShellLink::SetShowCmd を使えば良さそう.
SW_SHOWMINIMIZED を指定してもうまく動作しない.SW_SHOWMAXIMIZED はうまく動作する.
SW_SHOWMINIMIZED ではなく SW_SHOWMINNOACTIVE を使うみたい.
::Create_lnk(file_path.c_str(),start_lnk.c_str(),descript.c_str(),work_dir.c_str(),SW_SHOWMINNOACTIVE) ;
::CreateLink している所を変更してうまくいった.
S_lnk.hxx

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

%d人のブロガーが「いいね」をつけました。