ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月18日(木) 15:04

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 8 件の記事 ] 
作成者 メッセージ
 記事の件名: 特殊フォルダの取得
投稿記事Posted: 2008年8月02日(土) 07:54 
デスクトップやマイドキュメントなどの、特殊フォルダのパスを取得する方法はありますか?
マイドキュメントに自動保存などの機能を付けたいのでできたら教えてください。


通報する
ページトップ
   
投稿記事Posted: 2008年8月02日(土) 13:02 
オフライン

登録日時: 2005年6月01日(水) 21:51
記事: 212
お住まい: 奈良県北西部
> デスクトップやマイドキュメントなどの、特殊フォルダのパスを取得する方法はありますか?
> マイドキュメントに自動保存などの機能を付けたいのでできたら教えてください。

ほとんどコピペですが…

SHGetSpecialFolderPath() というのを使います。
他の定数は参考の二つ目のサイトに載ってますので、
知りたい場合はそちらをご覧ください。

参考:
SPIRIT さんの WinTips
WinAPI Database for VB Programmer


最後に編集したユーザー M.S. [ 2008年8月11日(月) 15:54 ], 累計 1 回

通報する
ページトップ
 記事の件名: お礼
投稿記事Posted: 2008年8月02日(土) 14:48 
ありがとうございます!!!
でも、
引用:
ダイアログボックスを取得させるウィンドウハンドル
とは何ですか?


通報する
ページトップ
   
 記事の件名: Re: お礼
投稿記事Posted: 2008年8月11日(月) 15:53 
オフライン

登録日時: 2005年6月01日(水) 21:51
記事: 212
お住まい: 奈良県北西部
> ありがとうございます!!!
> でも、
引用:
ダイアログボックスを取得させるウィンドウハンドル
とは何ですか?

スイマセン、間違いです
「取得」ではなく、「所有」です


通報する
ページトップ
 記事の件名: すいません
投稿記事Posted: 2008年8月14日(木) 16:00 
それで、その、
「ダイアログボックスを所有させるウィンドウハンドル」
とは、何のことで、何を指定したらいいのですか??


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2008年8月14日(木) 17:19 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
お住まい: 埼玉県東松山市
ダイアログボックスより上に来るのがまずいウインドウのハンドル という感覚で指定してます。間違ってるかもしれませんが・・・

「使い方」にあるように、GetDesktopWindow()でもいいと思いますし、
プロジェクトならhMainWnd等でいいと思います。

でもこの「使い方」のString型の使用方法はAB3時代の物のように思えます・・・
このまま流用する時は引数bufをStrPtrでくくるか、
自信があるようならString型を使わずに*Byte型やByte型配列を用いるほうがいいと思います。

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年8月14日(木) 21:34 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 899
お住まい: 東京都
GetDesktopWindowはだめです,絶対。hMainWndなど渡すものがなければNULLです。

この引数のウィンドウハンドルを使うときというのは,つまり親にしてダイアログを表示するときです。そのダイアログが表示されている間,親のウィンドウは無効化(操作できないように)されます(例えばProjectEditorでオプションや名前を付けて保存を表示している間,ファイルの編集ができないのもこのためです)。

もし,GetDesktopWindow()を渡してダイアログを表示しようとすると,デスクトップが操作できなくなる,つまり表示されているすべてのウィンドウが操作できなくなるという結論が導き出されてしまうのです。

現実には,誤ってGetDesktopWindow()を渡すプログラムが多かったため,GetDesktopWindow()が渡されたらNULLが渡されたかのように振る舞うようになっているのでそういうことにはなりませんが,だからと言ってGetDesktopWindow()を渡すことが正当化されるわけではありません。

参考: The Old New Thing : What's so special about the desktop window?


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2008年8月14日(木) 23:57 
オフライン

登録日時: 2005年5月31日(火) 22:59
記事: 9
お住まい: 兵庫県神戸市
自分で書いておいてなんですが、イグトランス様のおっしゃるとおり、GetDesktopWindow() はいけません(^^;)

今回質問されている関数に関わらず、DialogBox 関数なども、親ウィンドウが無い場合は NULL を指定するほうが良いです。

今からしてみれば全く分かっていない頃に書いたもので、しかも内容が古くて申し訳ありません(_ _)

ちなみに「The Old New Thing」は翻訳されて本にもなっているので、手にとってみるのもいいかと思います。
今回のことに限らず、非常に役に立つことがたくさん書いてありました。おススメです!


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 8 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[6人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean