■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build39
751
名前:
デフォルトの名無しさん
:2006/01/25(水) 14:49:09
CListViewのデストラクタがおかしいんじゃねの?
752
名前:
デフォルトの名無しさん
:2006/01/25(水) 16:52:11
解決にならないだろうけど・・・
if(listview!=NULL)
{
delete listview;
listview = NULL;
}
753
名前:
デフォルトの名無しさん
:2006/01/25(水) 18:34:00
>>745
止まるって、具体的にはどうなる?
delete が返ってこないということ?
それともそこでエラー?
754
名前:
725
:2006/01/25(水) 19:55:24
制限ユーザでのレジストリーに書き込み(コンポーネントの登録)の件ですが
>729
>Windows XP なら manifest で出来る。
成功しました情報ありがとうございます。
http://www.microsoft.com/japan/msdn/windows/windowsxp/sidexsidewinxp.asp
このサイトが参考になりました。
>731
>>725
>>727
HKEY_CLASSES_ROOT以下は制限ユーザーでも書き込めると思うが。
HKEY_CURRENT_USER以外は書き込みが出来ませんでした。
XPでは起動に成功を見たのですが、以前2000での起動が出来ません。
何方か解決方をご存じの方はいらっしゃいませんでしょうか?
具体的には、制限ユーザで自作したアプリをインストールし動作させようとしているのですが、
動作には、インストーラに同梱したコンポーネントが必要なのですがこのコンポーネントのシステムへの登録が
制限ユーザでは出来ずに、起動に失敗してしまいます。(regsvr32で登録エラーを起こしてしまいます)
以上です、よろしくお願いします。
755
名前:
デフォルトの名無しさん
:2006/01/25(水) 20:50:57
GetCursorInfoがエラーする。
compileは通るんだけど、実行すると戻り値が0で、ラストエラーは「パラメータが間違っています。」(コードは87)
ん〜、誰か教えてぇ〜〜〜
756
名前:
デフォルトの名無しさん
:2006/01/25(水) 20:55:26
cbSize
757
名前:
デフォルトの名無しさん
:2006/01/25(水) 21:34:32
>>755
パラメータが間違ってる、と親切に教えられてるのに、
何故、無視するのだね?
758
名前:
デフォルトの名無しさん
:2006/01/25(水) 22:31:36
>>745
そもそもnewは例外を投げるからNULLかどうかの比較は意味がない。
どうしてもやりたければstd::nothrow。
if ((listview = new(std::nothrow) CListView(hwndDlg)) == NULL)
759
名前:
デフォルトの名無しさん
:2006/01/25(水) 22:37:08
VC だか何だったかは new に失敗しても、例外を投げずに 0 を返した気がする。
なので、念のためチェックしといた方が良いと思う。
760
名前:
デフォルトの名無しさん
:2006/01/25(水) 22:41:20
>>759
744-745はBorland C++と書いてある。おそらく無料版だろう。
そいつのnewは例外を投げる。
761
名前:
デフォルトの名無しさん
:2006/01/25(水) 22:44:25
VC++6だな。
VC++2003だと、C++のヘッダをインクルードすると、例外を投げるようになるはず。
762
名前:
デフォルトの名無しさん
:2006/01/25(水) 22:46:07
>>760
,761
ほほー、勉強になりました。
サンクス。
763
名前:
740
:2006/01/25(水) 23:09:21
>>741-743
ありがとうございます。
見た感じですが、デスクトップの画面の大きさの
真っ暗なウィンドウがある感じです。
根拠は、半透明にしてから同様の方法で全てのウィンドウの透明度をなくした場合、
デスクトップが真っ黒になるからです。
"Program Manager"を調べてみます。
764
名前:
740
:2006/01/25(水) 23:21:03
ウィンドウハンドルからキャプションを取得して、
"Program Manager"を持つウィンドウを除いたら解決しました!
ありがとうございました!
765
名前:
デフォルトの名無しさん
:2006/01/26(木) 00:45:51
printfでAとWが切り替わるのはどれになりますか?
766
名前:
デフォルトの名無しさん
:2006/01/26(木) 00:46:39
エスパーの方、出番です。
767
名前:
デフォルトの名無しさん
:2006/01/26(木) 00:50:30
ワロス、全然分かんねぇw
768
名前:
デフォルトの名無しさん
:2006/01/26(木) 00:52:47
wprintf, _tprintfとかをご所望ニカ?
769
名前:
デフォルトの名無しさん
:2006/01/26(木) 01:15:53
_tsetlocale
_tprintf
770
名前:
デフォルトの名無しさん
:2006/01/26(木) 06:24:48
仕事の関係でドイツ語版のWindowsXPを使っているんだけど、
テキストを入力するときに言語バーのところで日本語を選べるものと
選べない物があるんだけど、これってどういう風に作ると選べるように
なるかわかる人いる? 具体的にはIEのフォーム(URL入力欄はNG)や
Office系はOK。秀丸、EmEditor、xyzzyに始まりEclipse、VisualStudio等
ほとんどのテキストエディター系は入力不可。
正直仕事に支障が出ているので簡単なテキストエディタを作ろうと
思ってるんだけど、普通にTextBoxを配置しただけではやはり日本語は
選べないみたい。ヒントでもいいので何か情報求む。
スレ違いなら誘導お願いします。
771
名前:
デフォルトの名無しさん
:2006/01/26(木) 06:49:06
GlobalIMEがどうこう、と言う話はきいたことあるな。
772
名前:
デフォルトの名無しさん
:2006/01/26(木) 07:22:42
>>770
ざっくり見つけた限りだとこのへんか?
Techniques for Handling Input Languages in Win32
http://www.microsoft.com/globaldev/getWR/steps/WRG_kybrd.mspx#EVE
> by using Unicode edit controls or rich edit controls,
> you enable your application to handle multilingual text input.
773
名前:
デフォルトの名無しさん
:2006/01/26(木) 08:24:20
コントロールパネルの地域と言語のオプションでドイツ語追加して試してみたら(WinXPSP2)、
VC6.0は入力した文字が?になってだめだったけど、秀丸(5.13b2)、メモ帳、VS2003では入力できた。
774
名前:
デフォルトの名無しさん
:2006/01/26(木) 15:53:32
フォルダを開いたときなどに鳴るカチッっていう音は
プログラム上では、どうやって鳴らすんでしょう?
775
名前:
デフォルトの名無しさん
:2006/01/26(木) 16:08:30
OpenFolder
776
名前:
デフォルトの名無しさん
:2006/01/26(木) 16:44:11
既定のサウンド設定
777
名前:
デフォルトの名無しさん
:2006/01/26(木) 16:52:01
外してるような気がしつつMessageBeep
778
名前:
デフォルトの名無しさん
:2006/01/26(木) 17:02:51
WMCreateIndexerの使い方教えてください。
ASFファイルにインデックスをつけたいだけなのですが。
779
名前:
デフォルトの名無しさん
:2006/01/26(木) 17:49:17
ブラウザでエンコードを自動判別していますが、
あの処理ってどこから情報を取ってくるんですか?
ダウンロードしたhtmlを解析して?
それとも、HttpSendRequestに対応するフラグがあるの?
780
名前:
デフォルトの名無しさん
:2006/01/26(木) 17:59:31
・HTTPヘッダ
・BOM
・meta要素
・ファイルのバイト列の癖から類推
781
名前:
デフォルトの名無しさん
:2006/01/26(木) 18:01:39
・永年の勘
782
名前:
デフォルトの名無しさん
:2006/01/26(木) 18:04:52
>>779
参考資料
[IE5]文字セットと Internet Explorer 5 の自動選択機能について
http://support.microsoft.com/default.aspx?scid=kb;ja;413581
783
名前:
774
:2006/01/26(木) 18:27:11
皆さん、ありがとうございます。
ttp://forums.belution.com/ja/vc/000/207/29s.shtml
のような記事を見つけたのですが、
レジストリから直接取得するしか無いんでしょうか。
とりあえずは、レジストリからの値の取得の方法を調べねば。
784
名前:
デフォルトの名無しさん
:2006/01/26(木) 19:01:47
特定のキー(たとえばCtrl-Spaceとか)を押すと、
自作のウインドウアプリケーション A (起動済みでバックグラウンドかアイコンになってる)が
フォアグラウンドかつフォーカスがあたるようにしたいのですが、
A の中でどういうAPIを使って操作をしておけばいいでしょうか。
785
名前:
デフォルトの名無しさん
:2006/01/26(木) 19:10:40
RegisterHotKey でできる。
WM_HOTKEY を受け取ったら、フォアグラウンド & フォーカスの処理をすれば良い。
786
名前:
デフォルトの名無しさん
:2006/01/26(木) 19:19:13
グローバルフック
787
名前:
デフォルトの名無しさん
:2006/01/26(木) 19:20:05
激しく右フック
788
名前:
デフォルトの名無しさん
:2006/01/26(木) 20:00:08
ストリームの一覧を所得したいです
789
名前:
デフォルトの名無しさん
:2006/01/26(木) 20:04:51
そうですか
俺は五億円ほど所得したいです
お互いがんばりましょう
790
名前:
デフォルトの名無しさん
:2006/01/26(木) 20:06:37
>>789
つ 所得税
791
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:02:18
>>790
与えてどうするよ
792
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:03:32
コンソールが勝手に閉じて動作が分かりません
どうすればとまるの?
793
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:07:57
>>792
スレ違い
794
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:09:26
>>792
なんのこっちゃ?
VC6ならCtrl+F5とか
795
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:10:50
あ、VC6じゃなくてもか
VCならCtrl+F5
796
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:16:07
昔懐かしのgetch()
797
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:21:44
apiと関係あるか?
798
名前:
デフォルトの名無しさん
:2006/01/26(木) 21:22:15
>>788
ストリームのバックアップと列挙
http://www.microsoft.com/japan/msdn/windows/windows2000/ntfs5.asp#ntfs5_topic5
http://homepage3.nifty.com/k-takata/diary/2005-02.html#04
799
名前:
779
:2006/01/26(木) 21:52:27
>>780
>>781
>>782
ありがとうございます!
探ってみまーす!
800
名前:
デフォルトの名無しさん
:2006/01/26(木) 22:29:22
>>736
thx
801
名前:
デフォルトの名無しさん
:2006/01/26(木) 22:32:45
>>799
IMultiLanguage2::DetectInputCodepage
802
名前:
799
:2006/01/27(金) 08:18:50
>>801
インターフェイスがあるんですねー。
調べてみます。
ありがとうございます!
803
名前:
778
:2006/01/27(金) 09:34:44
Windows Media Format SDKをインストールして
サンプルのdscopy.cppを↓のように書き換えました。
int __cdecl _tmain(int argc, TCHAR *argv[])
{
USES_CONVERSION;
// Initialize COM
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr))
return hr;
WCHAR wszTargetFile[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, "c:\\hoge.asf", -1,
wszTargetFile, NUMELMS(wszTargetFile));
hr = IndexFileByFrames(wszTargetFile);
CoUninitialize();
return hr;
}
実行すると↓のエラーが出ます。
Indexing Failed (hr=0x8000ffff)!
Press any key to continue
何かわかる人はいらっしゃいませんでしょうか?
804
名前:
デフォルトの名無しさん
:2006/01/27(金) 12:55:20
居るんではないでしょうか
805
名前:
デフォルトの名無しさん
:2006/01/27(金) 12:57:17
>>803
その問題とは関係ないけど:
USES_CONVERSION 使えるなら IndexFileByFrames( A2W("c:\\hoge.asf") ); でいいし、
さらにこんなテストなら IndexFileByFrames( L"c:\\hoge.asf" ); でも十分だと思う。
806
名前:
デフォルトの名無しさん
:2006/01/27(金) 13:29:00
指定パス下を一括で読み取り専用解除する方法ってないですか?
1つ1つSetFileAttributesするしかない?
807
名前:
デフォルトの名無しさん
:2006/01/27(金) 13:34:57
system( "attrib -R * /S /D" );
808
名前:
デフォルトの名無しさん
:2006/01/27(金) 13:52:04
Beep() って鳴らしつづけるの無理?
809
名前:
デフォルトの名無しさん
:2006/01/27(金) 17:44:35
while( 1 )
{
Beep( 100, 10000 );
}
810
名前:
778
:2006/01/27(金) 17:49:02
CopyASF()を呼べばインデックスをつけてくれるようですが
再エンコードするみたいで時間かかりますね。
インデックスだけつけたいのですが、困りました。
811
名前:
デフォルトの名無しさん
:2006/01/27(金) 17:57:51
>>809
説明が足りなかった。
非同期で鳴らし続けるってこと。
しかもそれじゃ10秒ごとにプチプチ言うよ。
途中で止められないし。
812
名前:
778
:2006/01/27(金) 18:03:38
昔は
10 BEEP 1
でよかったね。
813
名前:
デフォルトの名無しさん
:2006/01/27(金) 18:40:40
>785
,786
RegisterHotKeyとグローバルフックの両方を試して、上手くいきました。
グローバルフックでは、キーを押しても反応しないアプリケーション
(キー入力を吸い取ってる?)があるようなので、
今回はRegisterのほうを使います。ありがとうございました。
814
名前:
デフォルトの名無しさん
:2006/01/27(金) 19:47:22
ウィンドウをクライアント領域のサイズを指定して生成することができる関数ってないでしょうか?
横スクロールゲームなので指定サイズのクライアント領域を持ったウィンドウが必要だす
815
名前:
デフォルトの名無しさん
:2006/01/27(金) 20:14:14
>>814
AdjustWindowRect
816
名前:
デフォルトの名無しさん
:2006/01/27(金) 20:31:07
1. アクティブなウィンドウをデスクトップの一番下に沈めて
2. 1.の後一番手前に来たウィンドウをアクティブにする
というユーティリティを作りたいんですが、2.のウィンドウを検索する方法がわかりません。
どう書けばいいんでしょうか?
817
名前:
デフォルトの名無しさん
:2006/01/27(金) 20:37:46
>>815
ありがとうございました
818
名前:
デフォルトの名無しさん
:2006/01/27(金) 21:26:32
>>816
GetWindowのGW_HWNDNEXTでいいんじゃない?
それと、Win98、Win2000以降はSetForegroundWindowに
制限があるので要注意。
819
名前:
デフォルトの名無しさん
:2006/01/27(金) 21:55:39
>>818
MSDNドキュメントを鵜呑みにしたか?
ドキュメントにあるような制限は実際にはない。
820
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:05:25
http://techtips.belution.com/ja/vc/0012/
821
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:14:55
>>819
分かってないのはお前の方だ。あの制限は全部ちゃんとある。
しかし、フォアグラウンドプロセスからSetForegroundWindowを
呼んだ場合は、普通に実行できる。(これも書いてある)
あの制限は主に、フォアグラウンドではないプロセスから
SetForegroundWindowを呼んだ場合のもの。
816のやろうとしている事は明らかに、SetForegroundWindowの
制限に引っかかる。
822
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:18:13
>>821
本当に自分の目で確認したのか?
実際にテストコードを書いて試したか?
823
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:38:45
福井県ってほんとに実在するのかな?
友達に訊いてまわったけど自分の目で福井県を見たやつは
一人もいないんだ。
824
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:42:50
目で見えないから存在しないというのは
愚かな思い違いだ
825
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:53:23
SetForegroundWindowうまくいかんのよねえ
HWND_TOPMOSTで代用してるけど
これはこれで色々問題あって
826
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:54:43
>>821
の色よい返事はまだ?
(・∀・)ニヤニヤ
827
名前:
デフォルトの名無しさん
:2006/01/27(金) 22:56:38
>>819
の根拠ってなんなんだろ。
流出ソースでも読んだのかな。
漏れが試した範囲ではXXXだから、
誰のどのPCでもそんな制限など付かないはずニダ
とかじゃないだろうな・・・
828
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:13:00
カスタマイズ系のソフトで
HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout
がいじってあったりすると「ドキュメントにあるような制限は実際にはない」と思えちゃうかも。
829
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:22:38
あと実験コードちょろっと書いて、デバッガで実行すると
>?フォアグラウンドプロセスがデバッグ中である。
により、制限が無いように見えちゃうとか。
830
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:30:50
>>827-829
自分で試したのか、お前ら?
831
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:31:49
つまり、福井県は実在するの?しないの?
832
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:33:24
>>830
君は試してないのかい?
833
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:37:25
>>825
うまくいかないってのが、タスクバーでボタンが点滅するだけ
っていうのならば、それがSetForegroundWindowの制限。
820のリンク先にその制限を突破するコードがある。
>>819
,822,826,830,832
いい加減痛いから、それ以上恥の上塗りをするのはやめた方がいいぞ。
834
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:39:02
>>830
830ha
ドキュメントに「XXXはダメ」って書いてあっても、
自分の環境で試してOKだったら行うのかい?
漏れはそんなことしたこと無いよ。
逆にドキュメントでOKとなっていても、
試してダメ⇒回避コード作成ってのはあるけど。
835
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:46:04
スレ違いかもしれませんが質問させてください。
ファイル(アイコン)のドラッグドロップはDragAcceptFiles()使って
WM_DROPFILES取れば得られるみたいですけど、
リッチテキストのテキスト等のドロップはどういう仕組みで行われているのでしょう?
visualstudioのコードエディタとMSNメッセンジャの入力フォーム間とかでもD&Dできるので
アプリ内じゃない処理が行われてると思うんですが。
他のアプリのリッチテキストからのD&Dを許可する方法なぞあれば教えてください
836
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:49:10
('A`)
837
名前:
デフォルトの名無しさん
:2006/01/27(金) 23:52:23
>>835
RegisterDragDrop
838
名前:
デフォルトの名無しさん
:2006/01/28(土) 00:11:36
drug & drop out
839
名前:
デフォルトの名無しさん
:2006/01/28(土) 03:03:42
どうしても思い出せないので質問させて下さい。
"C:\test1\test2\test3\" というディレクトリを作りたいとき、
test1 や test2 の存在しなくても、一発で test3 までの
ディレクトリを作成してくれるAPIがあったと思うのですが、
どなたか教えて頂けないでしょうか?
確か、winhelp.dll の MakeSureなんとかかんとか API だったと思うのですが。。。
840
名前:
デフォルトの名無しさん
:2006/01/28(土) 03:04:27
こないだ出たばっかりだな
841
名前:
839
:2006/01/28(土) 03:07:51
>>840
すいません。719で既出でした。
スレ汚し失礼しました。
842
名前:
デフォルトの名無しさん
:2006/01/28(土) 06:58:06
>>835
OLEドラック&ドロップ
843
名前:
デフォルトの名無しさん
:2006/01/28(土) 07:43:48
9xでCreateRemoteThread()と同じことをやるにはどうしたらいいのでしょうか?
844
名前:
デフォルトの名無しさん
:2006/01/28(土) 08:53:30
>>843
等価な処理は無理。
845
名前:
デフォルトの名無しさん
:2006/01/28(土) 13:11:19
>>843
多分無理と思う。DLLインジェクションがやりたいのなら、SetWindowsHookexでもできると思うが。
多分9x系で使えるはず
846
名前:
デフォルトの名無しさん
:2006/01/28(土) 15:55:14
スタンバイから復帰するためのAPIってありますか?
847
名前:
デフォルトの名無しさん
:2006/01/28(土) 16:09:52
>>846
スタンバイ状態の時はアプリケーションは動作していないと思うが?
848
名前:
デフォルトの名無しさん
:2006/01/28(土) 17:16:26
ワロスww
849
名前:
デフォルトの名無しさん
:2006/01/28(土) 18:09:10
>>846
一応、SetWaitableTimerで出来るが、お前さんのやりたいことは
これでいいのか?
850
名前:
デフォルトの名無しさん
:2006/01/28(土) 18:27:35
それくらい推察しないと
エスパーとしては失格です。
851
名前:
デフォルトの名無しさん
:2006/01/28(土) 19:06:50
既に起動してる別のプロセス(自作)にちょこっと仕事させて、処理が終わり次第
自分が復帰する状況を実現したいです。安易には
// 何か処理
SendMessage(...); // 別プロセスに投げる。ハンドラは記述済
// 何か処理
というのを思いつきます。他に名前付きイベントオブジェクトで
// 何か処理
SignalObjectAndWait(...); // 別プロセスを起こし、処理終了後SetEventなど呼ぶ
// 何か処理
などともできそうです。どう実装してもいいんですが、なるべく
パフォーマンスを良くしたいです。
どちらかと言われれば、どちらを選べばよいでしょうか?
852
名前:
846
:2006/01/28(土) 20:35:42
>>849
それです!ありがとうございます。
エスパー合格です。
853
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:38:00
>>847-848
おいおい何年前のPCの話してんのよw
スタンバイから(RTC等で)復帰なんてAPMの当時から実現してるってw
でなきゃタスクスケジューラは魔法か何かかw
854
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:45:26
そういうレベルの話はしてないと思うよw
855
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:48:41
そういう話じゃないの?
856
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:50:53
おいおい何のレベルの話してんのよw
857
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:52:22
そういうことで、はい次、次。
あ、Wake on LAN でも起こせるよ。
858
名前:
108
:2006/01/28(土) 20:52:23
>>846
852
おまえ
>>105
でも同じ質問してたろ
108で答えてんのに無視しやがって
梨の礫だけはやめろ
859
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:53:55
もう回答も出てこれにて一件落着なんだから、
自分が賢いことを証明する為に言い争うのはやめれ。
860
名前:
846
:2006/01/28(土) 20:55:45
別人です。すみません。
過去の発言を見ないで質問したためこんなことになりました。
861
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:56:49
>>846
プッw
言いがかりww
862
名前:
デフォルトの名無しさん
:2006/01/28(土) 20:57:39
>>846
⇒
>>858
修正
863
名前:
デフォルトの名無しさん
:2006/01/28(土) 21:04:39
>>860
あ、そーでしたか。こちらこそ失礼しました。
MSDNのサンプルで分ると思うけど
「ロック音」ってオープンソースのアプリあるから
それ参考になるかもよ。
>>861-862
どこのスレだか忘れたけど
かなり前にも同じ質問の回答で無視されたもんで、つい
864
名前:
846
:2006/01/28(土) 21:22:37
サンプルまで教えていただきありがとうございます。
865
名前:
デフォルトの名無しさん
:2006/01/29(日) 00:42:16
このソースでファイルを開くダイアログが出ないのですが、何が原因なのでしょうか。
-----
OPENFILENAME ofn;
char szFileName[MAX_PATH] = "*.txt";
char szFile[MAX_PATH] = "";
memset( &ofn, 0, sizeof(ofn) );
ofn.lStructSize= sizeof(ofn);
ofn.hwndOwner= hWnd;
ofn.lpstrTitle= "ファイルを開く";
ofn.lpstrFilter= "テキスト文書 (*.txt)\0Perlスクリプト (*.cgi)\0*.cgi\0すべてのファイル (*.*)\0*.*\0\0";
ofn.lpstrFile= szFileName;
ofn.lpstrFileTitle= szFile;
ofn.nMaxFile= MAX_PATH - 1;
ofn.Flags= OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
ofn.lpstrDefExt= "txt";
GetOpenFileName(&ofn);
866
名前:
デフォルトの名無しさん
:2006/01/29(日) 00:47:55
>>865
コピペで出るが他に何かおかしなことしてないか?
867
名前:
デフォルトの名無しさん
:2006/01/29(日) 01:00:55
>>865
Win2000+VCならそのコードで普通に表示されたよ。
おそらくlStructSizeがらみの問題では?
ここちょっとややこしいんだよね。
↓こんなの一応貼っとくけど
ttp://homepage3.nifty.com/aokura/tips/trouble.html
868
名前:
デフォルトの名無しさん
:2006/01/29(日) 08:38:07
BCC5.5.1でもコピペでちゃんと動いた罠
869
名前:
デフォルトの名無しさん
:2006/01/29(日) 11:00:17
>>816
そのウインドウ切り替えをしたいときに
http://techtips.belution.com/ja/vc/0012/
の例のように
SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT,0,(LPVOID)0,0);
するのではなく、あなたのアプリケーションをインストールするときに
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE);
すべきだどMicrosoftは言っています。
そういうわけで
http://techtips.belution.com/ja/vc/0012/
は完璧な回答ではないと思います。
http://support.microsoft.com/kb/97925/ja
Windows 2000 では、呼び出し元のスレッドでフォアグラウンド ウィンドウを
変更できない限り、SystemParametersInfo の呼び出しが失敗するので、
セットアップまたはパッチ アプリケーションから呼び出さなければなりません。
870
名前:
デフォルトの名無しさん
:2006/01/29(日) 12:11:12
関連づけを変更して自分のソフトで開くようにしたいのですが、
レジストリをいじるのだと思いますが、どのようにやればよいのでしょうか?方法を教えてください。
871
名前:
867
:2006/01/29(日) 12:21:04
>>868
そっちのOSは2000かXPなんでしょ。
commdlg.hと867のリンク先と
ttp://diarynote.jp/d/59398/
の中ほどの項をよく読んでみてよ。
できればWindows2000発表前の古いSDK(VC6付属のとか)のcmmdlg.hも。
Windows2000で構造体のサイズが拡張されたけど
拡張後のサイズ88で9xやNTで動かそうとしたとき起こる。
なのでBCCに限らず、VCでも起こりうる。
(フリーズするのではなくて、表示されずにそのままスルーされる。)
865の実行環境は9xかNTなのでは?
>>865
とりあえず
lStructSize=OPENFILENAME_SIZE_VERSION_400;とするか
#define _WIN32_WINNT 0x0400としてみてよ
それで駄目なら他の問題だ。
872
名前:
デフォルトの名無しさん
:2006/01/29(日) 12:22:59
>>869
英語版も合わせてよく読め。SPIF_SENDWININICHANGE | SPIF_UPDATEINIFILE を
指定するのは、SetForegroundWindowの動作を、95,NT4と同じようにするために
アプリのインストール時に恒久的に変更する場合のことだ。
873
名前:
デフォルトの名無しさん
:2006/01/29(日) 13:02:25
pingツールを作成したいのですけど、(正確にはICMPプロトコル使用のクライアントソフトです)
知識が足らないばかりかソケットの作成はsocket関数で行い
インターネットの場合引数にAF_INET、TCPならSOCK_STREAM ...
程度の事しか判りません。
どこかWinSockでの指針を示しているサイトはないでしょうか・・
874
名前:
デフォルトの名無しさん
:2006/01/29(日) 13:05:44
icmp.dll
875
名前:
デフォルトの名無しさん
:2006/01/29(日) 13:13:54
>>874
ありがとうございます。ちと勉強してきます
876
名前:
デフォルトの名無しさん
:2006/01/29(日) 15:40:30
>>870
「関連付けを変更するためには、レジストリをどのように変更すればよいか」
というのは、AIP全く関係ないのでスレ違い。
レジストリを操作するAPIは適当にググったりMSDN調べたりすればすぐわかる。
877
名前:
デフォルトの名無しさん
:2006/01/29(日) 16:17:17
ビジネスソフト板のExcel総合相談所 40スレから誘導されてきました
環境:WinXP,Excel2002VBA
POSTメソッドで検索した結果(書籍情報)を、Excelの表に書き下ろすマクロを作っています。
WebBrowser.Documentプロパティを使うと簡単なのですが、HTMLの表示が余計なので
WebBrowserを介さずに、直接DOMオブジェクトを取得したいと考えています。
いろいろ調べたところ、
- MSXML.DOMDocumentで、POSTして読み込んだXMLのDOMを取得できる
- MSXML.XMLHTTPで、POSTして読み込んだHTMLのソースを取得できる
- MSHTMLで、URL指定して読み込んだHTMLのDOMを取得できる
というところまで分かった(実行できた)のですが、
POSTして読み込んだHTMLをDOMにする方法が見つかりません
ご教示くださいますよう、お願いいたします。
878
名前:
デフォルトの名無しさん
:2006/01/29(日) 17:00:57
ExcelのマクロにAPIを直接使用できるの?
879
名前:
デフォルトの名無しさん
:2006/01/29(日) 17:07:55
>>876
で、どのスレが最適なんですか?
880
名前:
デフォルトの名無しさん
:2006/01/29(日) 17:18:38
>>878
はい。おそらくものによるんだと思いますが、VBE(エディタ)の「参照設定」メニューで
Microsoft XML v3.0などを選択してearly bindingしたり
Set obj = CreateObject("MSXML2.XMLHTTP")のようにlate bindingしたりして
そのままobj.openとかobj.sendとか使うことができます。
881
名前:
デフォルトの名無しさん
:2006/01/29(日) 17:31:05
>>878
できるよ。
>>880
それはActiveXだね。
882
名前:
デフォルトの名無しさん
:2006/01/29(日) 17:38:57
WinHTTPでURLとPOSTDATAを指定して、ファイルに保存して、
そのファイルをURLと指定して、MSHTMLに食わせるとか?
883
名前:
デフォルトの名無しさん
:2006/01/29(日) 18:05:30
>>870
良く知らんけどぐぐったらこんなんが出て来た。
http://sgry.sakura.ne.jp/articles/fileassociation.html
> Windows XP で新しくなった関連づけシステムについて
> 調べてわかった事を書いていきます
884
名前:
865
:2006/01/29(日) 19:00:00
#define _WIN32_WINNT 0x0400
で直りました。
ありがとうございました。
885
名前:
デフォルトの名無しさん
:2006/01/29(日) 20:39:25
>>884
GetOpenFileNameはそれで済むかもしれんが
defineすることによる他への影響は??
886
名前:
デフォルトの名無しさん
:2006/01/29(日) 21:02:15
BackupReadの使い方を教えてください
887
名前:
デフォルトの名無しさん
:2006/01/29(日) 21:34:13
http://www.google.co.jp/search?svnum=10&hl=ja&lr=lang_ja&q=BackupRead%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9&ie=UTF-8&sa=N&tab=dw
888
名前:
デフォルトの名無しさん
:2006/01/29(日) 21:58:53
現在WindowsXP、VisualC++で入力支援系のプログラムを書いています。
'a'〜'z','0'〜'9'をRegisterHotKey()で登録し、
WM_HOTKEYが来たら自分自身をSetWindowPos()、SetFocus()で
アクティブにしたうえで、Hotkeyを解除、その先は通常に入力〜と言った感じで
任意のエディタやアプリケーションに対する入力に被せています。
しかし、これだと最初の1文字の入力がHotkeyとして食われてしまうため、
アクティブになった直後にkeybd_eventで同じ入力を送って補完するようにしています。
自分のマシンだとこれで上手くいくのですが、
他のマシンで試すと、なぜかkeybd_eventが無視されてしまい、最初の一文字が入力されません。
SendInput()も試してみましたが同様でした。
また、他の部分でkeybd_eventを実行してみたら正常に動作しています。
フォーカスを切り替えた直後のkeybd_eventに問題があるようです。
ただ、SetFocus()とkeybd_eventのSleep()を噛ましてみてもダメでした。
何かいい解決策はありますでしょうか。
対象のマシンも同様にWindowsXPでパフォーマンスは少し下くらい、
VC++は入っていませんが、.netのSDKやらplatformSDKやらが入っています。
889
名前:
デフォルトの名無しさん
:2006/01/29(日) 22:35:47
>>888
キーボード設定のリピート入力時間設定が大きく違うとかいうオチ?
890
名前:
デフォルトの名無しさん
:2006/01/29(日) 23:03:01
>>885
それが心配なら#define _WIN32_WINNT 0としてしまえばよい。
俺は大抵それに加え_WIN32_WIDOWSと_WIN32_IEも0にしている。
891
名前:
デフォルトの名無しさん
:2006/01/29(日) 23:38:47
プリントスクリーンと同様のことが出来るAPIってあります?
自分のPCだとプリントスクリーン経由で画像のキャプチャーをすると失敗することがあって困ってます・・・
892
名前:
・∀・)っ-○●◎-
◆Pu/ODYSSEY
:2006/01/29(日) 23:43:14
>>891
動画とかはわざとキャプチャ不能にしてることがあるよ。
GetDC() で対象ウィンドウ(NULLを指定すればデスクトップ全体)のDCを取得して
CreateCompatibleDC()してCreateCompatibleBitmap()
893
名前:
デフォルトの名無しさん
:2006/01/29(日) 23:44:41
質問です。
同じプログラム内で2度以上PostQuitMessageが呼ばれるのは問題ないのでしょうか??
用途は、2枚目のウインドウを破棄するときに、メインとは違うところで行われているディスパッチメッセージを抜けたいのです。
PeekMessageにウインドウハンドルをいれて監視してるのですが、WM_DESTRYやWM_QUITやWM_CLOSEが捕獲できませんでした。
PeekMessageのウインドウハンドルをNULLにした場合でも結局WM_DESTRYやWM_CLOSEは捕獲できませんでした。
こういう使い方って問題ないのでしょうか?
894
名前:
デフォルトの名無しさん
:2006/01/29(日) 23:45:21
GetDC
895
名前:
・∀・)っ-○●◎-
◆Pu/ODYSSEY
:2006/01/29(日) 23:49:09
>>893
PostQuitMessageを送るとメッセージループが終了するんで、それ以降メッセージ処理しようがない気が。。。。
896
名前:
デフォルトの名無しさん
:2006/01/29(日) 23:49:38
>>892
>>894
ありがとうございます。
897
名前:
デフォルトの名無しさん
:2006/01/29(日) 23:53:08
>>889
設定調べてみましたが、両方とも全く同じデフォルト値のままでした
898
名前:
デフォルトの名無しさん
:2006/01/30(月) 00:20:23
>895
>PostQuitMessageを送るとメッセージループが終了するんで
直ぐには終わらない。WM_QUITは優先順位がものすごく低いから、
キューに貯まったメッセージが全部消えて無くなるまではやってこない。
899
名前:
デフォルトの名無しさん
:2006/01/30(月) 00:21:19
>>895
レス感謝!
メッセージ処理をしているところが2箇所あるんです。
えーっと、windowsにはscanf等の代わりとなるようなGUIの入力ダイアログがありません。
なので、自作しようと思って、表示とかは問題なくできたんですけど、(createwindowexでコントロールを貼り付けた。)
一つの関数に押し込めて便利に使いたいので、
その関数の中で専用のメッセージ処理を行いたいのです。
それで、その専用のメッセージ処理から抜ける際に何をフラグにして抜けるか非常に悩みまして、
一応、WM_QUITをフラグにしたんです。
で、WM_QUITを生成するためにはPostQuitMessageを呼ぶことになってしまって・・・。
こんな感じで大丈夫なのかと思って質問しました。
ぶっちゃければ、2枚目以降のウインドウを破棄したときに最後に呼ばれるメッセージがわかれば問題ないと思いますが、検討がつきません。
なんか妙案ありませんか??
900
名前:
899
:2006/01/30(月) 00:25:34
ああ、そうだ。
一応これでも今のところは意図の通り動いてはいます。
が、ちょっと挙動に不安がのこるので非常に気になっています。
901
名前:
デフォルトの名無しさん
:2006/01/30(月) 00:34:11
>>899
そういうときは普通モーダルダイアログを使う。
902
名前:
デフォルトの名無しさん
:2006/01/30(月) 00:48:05
>>901
あー、ダイアログか。
うーんあんまり使ったことないので候補から外れていました。
その手も模索してみようと思います。
レス感謝。
やっと寝れます。=D
903
名前:
デフォルトの名無しさん
:2006/01/30(月) 01:17:50
>>892
>動画とかはわざとキャプチャ不能にしてることがあるよ。
それ、単にオーバーレイ表示なだけな気が‥‥それ
904
名前:
デフォルトの名無しさん
:2006/01/30(月) 03:22:44
WM_DESTROYとWM_CLOSEとWM_QUITの違い分からないのですが
教えてください!あと、終了するときはDestroyWindow()とCloseWindow()
とPostQuitMessage(0)とexit(0)のどれが本当は正しいんですか?
(exit(0)が一番楽だけど・・・)
905
名前:
デフォルトの名無しさん
:2006/01/30(月) 03:38:00
>>904
WM_DESTROY:ウインドウが消滅し始めるとき
WM_CLOSE:ユーザーがウインドウを閉じようとしたとき(Xを押したとき、とか)
WM_QUIT:アプリケーションが終了しようとするとき
ウインドウとアプリケーションとの区別が付けば分かるかな?
DestroyWindowとCloseWindow、PostQuitMessageとexitの関係も同じようなもん。
またウインドウのメッセージループを1つのスレッドと考えると、
それを終らせるメッセージをWindowsに投げるのがPostQuitMessage
普通に強制終了させるのがeixtかな?
1アプリで複数ウインドウのソフト作ったらわかるかも。
まぁMSDN嫁。
906
名前:
デフォルトの名無しさん
:2006/01/30(月) 03:44:37
>>888
そんな変なことするより、RegisterHotKeyを使うのを
やめた方がいいかと。
>>904
WM_CLOSEはウィンドウの閉じるボタンが押された直後等に
送られてくるメッセージ。まだこの時点では閉じるのを拒否
することができる。(ファイルを保存するか聞くのはここ)
WM_DESTROYはウィンドウが破棄される直前に送られてくる。
もうこの時点では後戻りはできない。
後始末等が必要なときは、ここで処理するのが普通。
WM_QUITは最後、これでおしまいってときに送られてくる。
普通はWM_DESTROYもWM_QUITもアプリケーションから直接
送ったりはしない。DestroyWindow(), PostQuitMessage()を使う。
CloseWindow()というAPIはウィンドウを閉じるのではなく、
最小化するだけなので全然関係ない。
907
名前:
デフォルトの名無しさん
:2006/01/30(月) 04:18:36
>>905-906
即スレありがとうございます!謎が解けました。
これで今日も眠れます!
908
名前:
デフォルトの名無しさん
:2006/01/30(月) 10:00:24
>>905
> PostQuitMessageとexitの関係も同じようなもん
全くの別物な訳だが。
PostQuitMessage : 指定されたスレッドが自らの終了を要求したことをシステムに伝えます。
exit : C標準関数で、プロセスを終了する。mainでのreturnはこの処理と等価。
909
名前:
デフォルトの名無しさん
:2006/01/30(月) 12:41:59
APIなのかツールなのかわかりませんが
パフォーマンステストで実行前に
Winのディスクキャッシュをクリアしたいんですが
どうすればいいんでしょうか?
メモリ分のダミーファイルを読み込むだけでいいんでしょうか?
910
名前:
デフォルトの名無しさん
:2006/01/30(月) 16:26:33
>>908
そのあとかいてるやんw
911
名前:
デフォルトの名無しさん
:2006/01/30(月) 17:00:33
>>909
AUTOEXEC.BATのSMARTDRV.EXEをコメントアウト(;^ω^)
912
名前:
デフォルトの名無しさん
:2006/01/30(月) 17:16:48
>>911
Win16ならともかくWin32でそれはないだろ。
913
名前:
デフォルトの名無しさん
:2006/01/30(月) 17:17:42
>>905
C/C++のexitに対応するのはExitProcessだろ。
914
名前:
デフォルトの名無しさん
:2006/01/30(月) 20:49:03
>913
c/c++のexitはCRTの終了処理が含まれるから厳密にはちがうよ
915
名前:
デフォルトの名無しさん
:2006/01/30(月) 21:12:25
>>914
論点はそこじゃないと思うのだが……。
PostQuitMessage()とExitProcess()はまったく違うぞ。
916
名前:
デフォルトの名無しさん
:2006/01/30(月) 21:18:29
>>914
自体はすばらしい洞察だと思うが
917
名前:
デフォルトの名無しさん
:2006/01/30(月) 22:26:23
じゃ、プラスモデあげる
918
名前:
デフォルトの名無しさん
:2006/01/31(火) 02:36:23
他プロセスのデバイスコンテキスト(?)を得るにはどうすれば良いでしょうか?
よろしくお願いします。
919
名前:
デフォルトの名無しさん
:2006/01/31(火) 03:02:18
プロセスにデバイスコンテキストなど無い
920
名前:
デフォルトの名無しさん
:2006/01/31(火) 03:03:47
GetDC
921
名前:
デフォルトの名無しさん
:2006/01/31(火) 03:22:26
Get DC card
922
名前:
デフォルトの名無しさん
:2006/01/31(火) 03:23:00
>>918
FindWindowEx関数で該当するウィンドウのハンドル(HWND)を受け取り
GetDC乃至BeginPaintでデバイスコンテキストを取得すればいいんじゃまいか?
923
名前:
918
:2006/01/31(火) 03:31:19
>>919-922
なんとか解決できそうです、ありがとうございました。
924
名前:
デフォルトの名無しさん
:2006/01/31(火) 11:26:07
Spy++で表示されるウィンドウキャプションと
GetWindowText関数で取得したウィンドウキャプションが一致しません。
Spy++はどのようにウィンドウキャプションを取得しているのでしょうか?
925
名前:
デフォルトの名無しさん
:2006/01/31(火) 11:35:30
>>924
志村!逆!逆!
926
名前:
デフォルトの名無しさん
:2006/01/31(火) 11:41:44
逆ですか?
Spy++の動きがわかればそれを真似すればよいかなと...
もっと簡単な方法があるのでしょうか?
ちなみにGetWindowText関数で取得した値は、
SendCommand関数でWM_GETTEXTを送ったときと同じ値が返ってきます。
927
名前:
デフォルトの名無しさん
:2006/01/31(火) 11:53:01
>>924
取り方が違うんじゃなくて、取ってる対象が違う希ガス
928
名前:
デフォルトの名無しさん
:2006/01/31(火) 11:58:59
>>924
GetWindowTextは同一プロセス内のみ
929
名前:
デフォルトの名無しさん
:2006/01/31(火) 12:01:37
>>926
> SendCommand
SendMessageだろ?
930
名前:
デフォルトの名無しさん
:2006/01/31(火) 12:06:11
SendCommandって関数もあるみたいよ
931
名前:
デフォルトの名無しさん
:2006/01/31(火) 12:33:38
ごめんなさい。SendMessageでした。
932
名前:
デフォルトの名無しさん
:2006/01/31(火) 12:42:21
>>930
メッセージを送るのはSendMessageだろ?
933
名前:
デフォルトの名無しさん
:2006/01/31(火) 13:06:00
自己解決しました
934
名前:
924
:2006/01/31(火) 13:17:36
すいません。
解決してません。
935
名前:
924
:2006/01/31(火) 14:14:10
次のURLにあるコードではうまく取得することができました。
ttp://support.microsoft.com/kb/112649/JA/
>>928
さんが言ってみえることが関係するのでしょうか?
936
名前:
928
:2006/01/31(火) 14:37:41
>>935
MSDNをよく読め。
同一プロセスの時と違うプロセスの時とで動作が変わる事が書かれている。
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/getwindowtext.asp
937
名前:
924
:2006/01/31(火) 14:53:30
日本語のMSDNしか目を通していませんでした。
読んでみます。ありがとうございました。
938
名前:
デフォルトの名無しさん
:2006/01/31(火) 15:00:54
グローバルのキーイベントどうやって取得したらいんですか?
よろしくお願いします。
939
名前:
デフォルトの名無しさん
:2006/01/31(火) 15:07:33
>>937
日本語のほうにも書いてあるぞ。
MSDNにしては完璧に訳してある。
940
名前:
デフォルトの名無しさん
:2006/01/31(火) 15:36:09
>>938
グローバルフック
941
名前:
デフォルトの名無しさん
:2006/01/31(火) 16:02:46
Sleepの動作を詳細に教えてください
942
名前:
デフォルトの名無しさん
:2006/01/31(火) 16:09:26
指定された時間分(単位ミリ秒)Sleepします
943
名前:
デフォルトの名無しさん
:2006/01/31(火) 16:13:19
>>941
MSDNライブラリじゃ足りない?
インシデント消費して、MSに聞いてみれ
944
名前:
924
:2006/01/31(火) 16:16:33
やっぱりわかりません。
同一プロセスでないとGetWindowTextはNULLを返すということではないのでしょうか?
今回の場合NULLではなくWM_GETTEXTと同じ値を返します。
Timerイベント内(
>>935
)でGetWindowTextを呼び出すのと、
EnumChildWindowsのコールバック関数内で呼び出すのに違いがあるのでしょうか?
もちろんウィンドウハンドルは同じ値です。
945
名前:
924
:2006/01/31(火) 16:46:11
プロセスIDを調べたら解決しました。
EnumChildWindowsを実行していうほうが同一プロセスで、
Timerイベントのほうが別プロセスでした。
そのため返す値が違ったようです。
スレ汚して本当にすみませんでした。
946
名前:
デフォルトの名無しさん
:2006/02/01(水) 10:50:28
HEX文字を数値に変換するAPIを教えてください
947
名前:
デフォルトの名無しさん
:2006/02/01(水) 11:16:28
sscanf
948
名前:
デフォルトの名無しさん
:2006/02/01(水) 11:57:18
APIじゃなきゃ嫌
949
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:06:51
電卓を関数電卓にして外部操作しろ。
950
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:08:20
StrToIntEx
951
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:13:30
>>948
wsprintf
952
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:22:14
>>951
逆だろ
953
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:38:41
test
954
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:40:22
特定のドメインのアクセスを検知や抑制をしたいんですけど、
どんな方法がありますか?
955
名前:
デフォルトの名無しさん
:2006/02/01(水) 12:47:38
ISAPIフィルター
956
名前:
デフォルトの名無しさん
:2006/02/01(水) 16:29:34
WindowsのAPIでユーザがローカルLogonしたことを検知するAPIはあるのでしょうか?
957
名前:
デフォルトの名無しさん
:2006/02/01(水) 18:31:11
APIはあるにはある。(WlxLoggedOutSAS)
しかしAPI以外の方法をすすめる。
958
名前:
デフォルトの名無しさん
:2006/02/01(水) 19:13:32
すいません、質問させていただきます。
ディスプレイの電源が入っているかどうかを調べるAPIってありませんかね?
また、ディスプレイ関連で接続されているディスプレイの最大解像度を取得する関数なんか、無いですかね?
959
名前:
デフォルトの名無しさん
:2006/02/01(水) 20:25:30
解像度はEnumDisplaySettingsで取得。
960
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:00:14
>>958
ディスプレイの電源状態が何に必要なのかが気になる。
961
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:07:24
>>960
単純に、ディスプレイの電源状態を確認して、ディスプレイの電源が付いたと同時になんらかのプログラムを起動させることを考えています。
例えば、動画とかが電源ONと同時に頭から見れたら便利ですよね?
962
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:14:00
961は天才
963
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:14:06
モニタの電源がついてから安定するまで10秒ぐらいかかるうちのモニタはどうすれば
964
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:25:24
Sleep(10000)する
965
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:26:57
>例えば、動画とかが電源ONと同時に頭から見れたら便利ですよね?
別に?
966
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:35:44
どうしても見つからないので教えて下さい。
印刷プレビュの実装に関して教えてもらえませんか。
MFCを使えばちょちょいの様ですが(MFCは使って無いので???ですが)、SDKに実装する方法を知りませんか。
正直、自分でガリガリ構築するのは…無理かと思ってます。
そこで、市販でも構わないのでクラスライブラリやDLLを探しているのですが…
一般的にはどの様にしているのでしょうか?
# やはりMFC?
# SDKベースでMFCの印刷プレビューを実装する方法でも構いません。
どなたか宜しくお願い致します。m(__)m
967
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:39:26
コンボボックスにCB_ADDSTRINGメッセージを送信しても、CBS_SIMPLEの物以外が無反応で困ってますorz
ソース(VC6.0で作成。MFCとかは使用していません)
http://tnet1.s18.xrea.com/prog/ComboBox_Test.zip
左から順に
CBS_DROPDOWN、CBS_SIMPLE、CBS_DROPDOWNLIST
968
名前:
デフォルトの名無しさん
:2006/02/01(水) 21:49:42
>>967
ちゃんと追加されてる。
コンボボックスの高さが足りないため表示されないだけ。
969
名前:
デフォルトの名無しさん
:2006/02/01(水) 22:08:36
>>966
印刷も結局のところDCを使った描画です
970
名前:
デフォルトの名無しさん
:2006/02/01(水) 22:14:35
>>966
SDKで印刷プレビュー実装しているの探し見たけど、やっぱり
>>969
の言う通り、DC使った描画だったよ。印刷の仕方からして
当然といえば当然だけど。
MFCは実装するというより、AppWizard使って作れば最初からつけられる。
「Doc-Viewをサポート」にチェックするだけ。
971
名前:
デフォルトの名無しさん
:2006/02/01(水) 22:22:54
956です。ありがとうございます。
>>957
>しかしAPI以外の方法をすすめる。
これは何かAPIで問題があるからAPI以外と言うことをお勧めしてくれてるのでしょうか?
それともDebugが難しいから?
972
名前:
デフォルトの名無しさん
:2006/02/01(水) 22:43:05
>>968
リソースのコンボボックスの高さを弄ったら見事にできました。
ありがとうございました!
973
名前:
デフォルトの名無しさん
:2006/02/01(水) 23:00:52
>>966
自分は「猫でも分かる...」を参考に作った。
win98 と winXP でドライバのセットが違うのが面倒だった。
ページが複数になるとき、狙ったページを見るとか、印刷するとかが面倒。
MS Word のようなヘッダ、フッタ、ページ番号などを付けようとすると
更に面倒。
bmp の方があっさりしている。
974
名前:
デフォルトの名無しさん
:2006/02/02(木) 00:58:43
>>971
調べないで答えるがターミナルサービスAPIでできそうな希ガス
975
名前:
デフォルトの名無しさん
:2006/02/02(木) 06:14:54
パーティションを切っている場合、同一ハードドライブでも複数のドライブレターが付きますが、
2つのドライブレターが、同一のHDDに属しているかどうかを見分ける方法を教えてください。
976
名前:
デフォルトの名無しさん
:2006/02/02(木) 09:57:14
>>975
見分ける必要がどこにあるのかを教えて下さい。
977
名前:
デフォルトの名無しさん
:2006/02/02(木) 10:05:37
>>976
Fire File Copyのようなファイルコピー援用ソフトだと必須だな。
やり方は知らんが。
978
名前:
デフォルトの名無しさん
:2006/02/02(木) 10:06:41
>>975
読み出し方は忘れたが、HDD にはメーカ名や Ser No. やオレはこういうものだ、
こう読み取ってくれえというのが付いているから読み取って比べれば。
デバイス・マネジャなんぞで出てくるヤツ。
979
名前:
デフォルトの名無しさん
:2006/02/02(木) 11:34:12
>>976
何のためにこのスレに居座っているのか教えてください。
980
名前:
デフォルトの名無しさん
:2006/02/02(木) 12:24:55
>>979
なぜ教えなければならないのか教えてください。
981
名前:
デフォルトの名無しさん
:2006/02/02(木) 12:37:50
踊るなよ
982
名前:
デフォルトの名無しさん
:2006/02/02(木) 17:04:11
>>981
なぜ踊ってはいけないのか教えてください。
983
名前:
デフォルトの名無しさん
:2006/02/02(木) 20:08:46
画面に表示されている文字列を取得するAPIってあります?
タイトルバーやダイアログメッセージの取得方法は分かりますが、
画面上に配置されているリストボックスやラベルの文字列も取得をしたいのです……
984
名前:
デフォルトの名無しさん
:2006/02/02(木) 20:14:04
>>983
それら全てウィンドウです
985
名前:
デフォルトの名無しさん
:2006/02/02(木) 20:14:52
>>983
あるよ
ヒントは
>>984
986
名前:
デフォルトの名無しさん
:2006/02/02(木) 20:15:31
>>983
それは別プロセスのウインドウ?
昔からあるコントロールは、大抵取得するメッセージがあるはず。
最近のコモンコントロールは、別プロセスから取得できないから、
どうしてもやりたければ、DLL注入してごにょごにょってことになるのかな。
そこまでしてやりたいのかどうかは知らないけど。
987
名前:
デフォルトの名無しさん
:2006/02/02(木) 21:26:59
>>966
WTLはどう?
988
名前:
デフォルトの名無しさん
:2006/02/02(木) 21:58:54
次スレまだぁ?
989
名前:
847
:2006/02/02(木) 22:09:44
>>853
勉強になった。サンクス。そのことに関して調べてみよう。
990
名前:
デフォルトの名無しさん
:2006/02/02(木) 22:11:27
>>971
MyGina.dllを作成するのははだめという訳じゃない。
ミスって回復コンソールからレジストリを復旧するとか
OS再インストのおまけが付きとか、
Myサービス作ってLogonを通知するのがメンドイとか
ドキュメントが少ないとか。
たとえばLogon後に適当なEXEを走らせて検知する方が簡単かと思う。
>>975
CreateFile()→DeviceIoControl()使って
"\\\\.\\C:"でIOCTL_DISK_GET_DRIVE_LAYOUT
したものと
"\\\\.\\D:"でIOCTL_DISK_GET_DRIVE_LAYOUT
したもののシグニチャが一致したらそうなる
ようだ。ただしコードは未確認。
991
名前:
デフォルトの名無しさん
:2006/02/02(木) 22:46:21
こっちに書くかDDKスレに書くか悩んだのですが……
特定のポートに刺さっているUSB機器(自作)のファームアップデート時に、
物理的にコネクタ抜き差ししているのですが、この抜き差しの作業ををAPIで擬似的に
再現することは可能でしょうか?
デバイスマネージャからの接続ポートの無効化→有効化で出来るか、と考えた
のですが、それを実現できる関数の名前が分からずにいます。
上記手段を使う場合にググるべき関数の名前か、その他一般的手段のヒントを
教えてもらえませんでしょうか?
992
名前:
デフォルトの名無しさん
:2006/02/02(木) 23:05:05
>>991
http://www.codeproject.com/system/DevicePropertySheet.asp
↑
と同じような感じでDevMgr.dllをハックしてみては?
993
名前:
デフォルトの名無しさん
:2006/02/02(木) 23:14:27
>>991
USB機器側が自作なら、機器側で抜き差しをエミュレート(D+=D-=Low)
するのが簡単確実。
994
名前:
デフォルトの名無しさん
:2006/02/02(木) 23:16:28
SetupDiRemoveDeviceとか。
995
名前:
991
:2006/02/02(木) 23:40:35
うお、短時間にいろいろとありがとうございます。
>992
殿の手段と
>994
殿のAPI、チェックしてみようと思います。
>993
殿
ファームアップデートした段階で応答なくなっちゃうんです(死
で、再起動するには抜き差し……と。
996
名前:
デフォルトの名無しさん
:2006/02/02(木) 23:44:56
ret = CreateNewThread("Win32API質問箱 Build40");
997
名前:
デフォルトの名無しさん
:2006/02/03(金) 00:31:45
たてた。
http://pc8.2ch.net/test/read.cgi/tech/1138893959/
998
名前:
デフォルトの名無しさん
:2006/02/03(金) 02:32:42
乙
999
名前:
デフォルトの名無しさん
:2006/02/03(金) 02:33:49
Z
1000
名前:
デフォルトの名無しさん
:2006/02/03(金) 02:34:33
1000ならぬるぽ
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.