(゚д゚ )乙 これは乙じゃなくてポニーテールなんたらかんたら
/ ̄ ̄ ヽ, / ', {0} /¨`ヽ {0}, l ヽ._.ノ ', ノ `ー'′ ', /´ `\ / /ヽ ノ\ \ / / | | \ \ n´/ i i \`n (ミ ノ ) ( ヘミ) / 、 , \ / /ヽ___ノ \ \ / / \ ヽ ヽ ) ( / ヽ l l / ノ ) ( \ <__/ \__つ
なんだよw
イラネ
13 :
デフォルトの名無しさん :2008/10/23(木) 19:08:23
Windowsァオーパイ
8のAAはこのスレのマスコットかなにかですか?
そうなの?
そうです
Advanced Windows第5版、日本でも買えるようになったんだね。 未だにどんな本かつかめず、近くの書店にも置いておらず。 どんな本なの?目次とかわかるサイトな〜い?
oh! センキュー
図書館でプログラミングwindows第5版かりたけど、これって2000年初版なんですね。 今と大きく変わっていることはありますか?
ある。
>>22 それがいまはAdvanced Windowsになり、内容が大きく変わった
図書館にAdvanced Windows5版を入れるなりと言うなり
それをごっちゃにしているのはわざとだよね?
プログラミングWindowsとAdvanced Windowsはまったく異質の本だよなぁ? 著者も違うし。趣旨も違う。
-―――- 、
__ / '⌒ト、
( ノ ノ ヽ
├ー─────〈 `、
| │ !
>>1 さん乙なのです
,L__\____.∠ _,ト、 \
{从lx=ミl/ ヽx==ミ、:\ \_
tュ /:ハ{!トハ ト心ハ : :\ ヽ \
/:/ i}弋フ V)フ ヽ: ∨\ i |
<フ /:∧人" △ ""ィヘ : ':、: \___l |
/ノ |:.://⌒)゚下乏/⌒7)ハ: : :\ : : : : \_ノ
// __j:/弋_,厶'⌒∨ ⊆⊇ '; : ヽ : : : : : : : \
/,{:| /⌒ー'´ ..::::(⌒V/' レイ:.}、: :\:\厂
 ̄|八_/'::C .::C .::C..::ムV^\ j:人\: :|\|
. 〃 ..::C .::C..:::::/ツ { \ ヽj:/
{{ .....::::::::.::::::ノツ、∧、 乙 }⌒二ニ丶
∧ヾッ、___:_:::イツ 仁ヘゝ=-、_ノ/ 人/\ `|
Vヘーベ┴┴‐'´ |二ム \ ノ∨ ノ\_レー┘
Vム=-ヘ ______人二ノ ̄ ̄ ̄
なんか見た事ある
29 :
デフォルトの名無しさん :2008/10/24(金) 03:12:12
どっちも良書だからどっちも読むなり
いやなり
31 :
デフォルトの名無しさん :2008/10/24(金) 03:38:17
むしろ読むのはその二冊で良いなり
こんな時間に何をやっているのだ・・・。
デスマ....
おいおい、仕事があるだけマシだと思えよ? 休職中....
おじさんたち大変そうだね 勉強中
就寝中
WindowsAPIの本読んでると「すべてのWindowsプログラマーへ」っていう 副題みたいのがついてるのがあるんだけど、あれはペゾルト氏も含まれるのかね?
今時のWindowsプログラマはWinAPIなんて使わないから「すべての」なんて眉唾物だろ
今時の人は何を使うなり?
WindowsAPI知らないお馬鹿なプログラマーへ
.NET Frameworkだって、最終的にはWinAPIを使うなりよ?
使わねーよ馬鹿
そうなり とりあえず黙ってプログラミングWindowsとアドバンスを読むなり
何だこの和み空間・・・なり
柿食えば鐘が鳴るなり
.exeと同じフォルダ内のヘルプ.txtを起動させたいんですが CreateProcessを使えばいいんですか?
>>46 いくつか方法はあるだろうけど、その用途には
ShellExecuteExがいいんじゃないかな
ヘルプはchmにしとけ
.NETってJavaみたいに中間言語にされたあと、仮想マシンで動く ものなんでしょ?やっぱ遅いのかな。
シンプルなコントロールならそんな遅いってほどじゃないよ。 .netが動くようなパソコンならね。 ただ、複雑で便利なコントロールが、実は地獄を見るほど遅かったりする。
その複雑で便利なコントロールをWin32APIで実装すると 早いの?
仕様も見ずに速いと言い切れるのはすごいな
SplitContainerをいくつか置いただけでとんでもなく遅くなった事ならあるなぁ Buttonを並べまくるとこれまた遅くなったからToolStripで代用したりとか ウィンドウメッセージのディスパッチが遅いのかな 確かATLみたいに内部でthunk使ってるはずなんだが
じゃあやっぱり玄人はWin32APIってわけですね
俺も自作アプリではShellExecute使ってるな txtだろうがhtmlだろうが開いてくれる
昔のVCのヘルプファイルで関数一覧がツリー表示じゃなくて2列で表示されて見易いのがあったんだけど どのバージョンかご存じないですか? Win16との違いが結構書いてあったのでWin32への移行してる時期のものだと思うんですが。
ウィンドウハンドルから、コントロールの種類を取得する方法ってありますか? ウィンドウハンドルが、ボタンのハンドルなら〜の処理、 ウィンドウハンドルが、エディットボックスのハンドルなら〜の処理・・・ みたいなことをしたいと思っています。
http://amamaman.hp.infoseek.co.jp/ アマレココで3Dゲームから画像をキャプチャする
プラグインを作りたいと思っているんですが、まず何を作ればいいのか分かりません・・。
プラグインの雛形は上のURLに置いてあります。
プロセスを列挙して、コンボボックスで選択できるようにして
選択されたプロセスのみにキャプチャの処理を割り込ませられるようにしたいです。
開発環境はVisual C++ 2005 Express Editionです。
>>61 とりあえずキャプチャプログラム書けるようになってから出直して来い
>>60 自プロセス内のコントロールなら、各コントロールをサブクラス化した方がいいかと。
66 :
デフォルトの名無しさん :2008/10/25(土) 02:17:19
>>49 いや、実行時にメソッド単位でコンパイルされて、
CPUネイティブで動作する。
今時Javaもそれくらいやるだろ。
データベース使いたいんだけど、MS SQL ServerをWin32APIプログラムから 操作するには、どのAPI使えばいいの?
>>67 やったらJava仮想マシンじゃなくなるだろ馬鹿
>>68 MySQLサーバとはネットワークで通信する
そのための手段はいくつもある
WindowsのAPIで、というならODBCもその中の1つ
JITのことですよね
WinAPIでWebサービスお手軽実装マダー?
欠陥品のWinInetでも使ってくだしあ
78 :
68 :2008/10/25(土) 14:28:16
レスとんくす。 別にネットワークじゃなくても良いのだが、ローカルにデータベース 作って、それを利用するプログラムを作りたい。 けっこう大変なの?お手軽にできないなら、ちょっと考え直そう。
ローカルで使うにしてもサーバプログラムが稼動している必要がある インストールも使うのもそんな面倒じゃないけど 手軽に、というのならSQLiteでも使えばいいとおもうよ
80 :
68 :2008/10/25(土) 15:53:48
d それほど面倒でないなら、後学のためにも一般的なMSのSQLSを やってみよう。 2005ならSQLS Express Editionあるし。
VISTAで、プログラム自体は一般権限で起動するが、 プログラム中のある機能だけ管理者権限を必要とさせたいのですが。 イメージとしては、あるボタンを押したときだけ管理者権限昇格のダイアログ出す みたいなものです。 これって可能でしょうか。
昇格はプロセス単位で管理される だから、その機能部分だけを別のプロセスにして、そいつを昇格して起動させる必要がある Advanced Windowsの5版に書いてあっただろうが! といってみる
COMにして呼ぶ方法が一応はある
SQL Server を「SQLS」って略す奴を初めて見た・・・
すきゅるず
「きゅ」じゃなくて「く」で頼む
スクルト!
スカルズならいいのに
スクールズ
TCHARのconst版なんてないですよね。 const TCHARとするしか。
TSTRならともかくTCHARのconst版なんかあってなんか嬉しいか?
必要なら const 書く方が普通だろ そんなところで手を省こうとするのが間違ってる
×手を省こうと ○手間を省こうと
よく TCHAR hoge[] = TEXT("hogehoge"); というようなコードがありますが、これってだいたいの場合固定で使うので 正確には const TCHAR hoge[] = TEXT("hogehoge"); とすべきでは?と思ったもので。
固定で使わないから定数を表すconstがついていないんだろ。
ペゾルドは、const付けてないね。アプリネームとかも。
constなTCHAR配列わざわざ作るぐらいならPCTSTR使わね?
やっぱ好みかなぁ。 PCSTRとかだとポインタなのに*使わずに宣言するのが違和感あるとかw
ARRAYSIZE(hoge) - 1で文字列の長さを求められる(もちろんマクロ化)から、 俺は95みたいにconst配列が好み。
流れぶったぎってスマソ プログラムでスクリーンキャプチャする時に、レイヤードウィンドウもキャプチャしたいのに GetDesktopWindowだとキャプチャできないんですよね。 レイヤードウィンドウもキャプチャできる方法ってありますか? keybd_eventとかSendInputで「PrintScreen」を押した事にすれば可能っぽいんですが、 他の方法で出来ないものかなぁと…
もちろんBitBltにはCAPTUREBLTを指定しているよな。
103 :
101 :2008/10/26(日) 05:17:11
>>102 ありがとうございます。
こんなROPがあったんですね。
自分が参照しているリファレンスには載ってなかったもんで知りませんでした。
MSDNを参照する、という基本的な事を欠いてしまっていたのは反省すべき所でした。
ROPじゃなくてフラグだろ
>>104 引数にラスターオペレーションコードって書いてあったのでそのまま書いてしまいました。
失礼しました。
そういやマウスカーソルも含めてキャプチャできるソフトがあるけど、 あれってもしかしてキャプチャした画像の上にGetCursorInfo→DrawIconExで描いてるだけ?
「DIB取得して合成」という何か革新的に方法があるらしいね。
ワロタ
なんでMSDNのWin32APIリファレンスって英語やねん。 本買うしかないのか!
英語の参考書は必須だよな
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff)) これってなんで0xffffでマスクする必要あるの? #define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16)) でよくね?意図がわからん。
>>115 そんなどうでもいい事をわざわざ質問するお前の意図がわからん。
知らないならレスしないでください
知らないならレスしないでください
119 :
115 :2008/10/26(日) 19:57:11
>>116 興味本位だよ、技術的な。俺の考えに間違いがあるのかもしれないし。
WORD型が16ビットで無くなっても大丈夫。
>>119 そんなのコンパイラの最適化でどうとでもなるだろ
cl /FAcs でコンパイルしてアセンブリソースでも眺めとけ
122 :
115 :2008/10/26(日) 20:04:38
>>121 どうとでもなるというか、別に何かをしたいわけじゃなくて
興味本位で聞いてただけなんだ。
つまり
>>120 ぐっじょぶ
WORDが16ビットで無くなるなんて有り得ないだろ・・・
124 :
デフォルトの名無しさん :2008/10/26(日) 20:08:53
2bytesであっても16bitsであるかは不定じゃないの
でも、それ以外にわざわざマスクする理由もなさそうだな。 意図としてはそういうことなんだろう。 安全策だな。 WORDを再定義するやからがいるかも知れないし。
DWORD_PTRが32ビットより大きいときにまずいだろ。 0x123456780000 >> 16 → 0x12345678 昔はDWORD_PTRではなくDWORDだったと思うが、 それなら確かに0xffffでのマスクは不要ではある。
DWORD_PTRが32ビット越えしてても、WORDが16ビットなら無問題だから やっぱWORDのサイズがポイントやろ。
>>129 それって、単に上位ビットがすべて0だろうとそうでなかろうと
切り捨てられるときの話じゃないの?マスクする・しないの問題じゃ
ないと思うが。
↑話を理解してない馬鹿
132 :
 ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ :2008/10/26(日) 21:42:18
_____ /::::::::::::::::::::::::::\ _ /::::::::::::::::::::::::::::::::::::::\ /  ̄  ̄ \ |:::::::::::::::::|_|_|_|_| /、 ヽ ・・・ |;;;;;;;;;;ノ \,, ,,/ ヽ |・ |―-、 | |::( 6 ー─◎─◎ ) q -´ 二 ヽ | |ノ (∵∴ ( o o)∴) ノ_ ー | | /| < ∵ 3 ∵> \. ̄` | / ::::::\ ヽ ノ\ O===== | :::::::::::::\_____ノ:::::::::::\ / |
133 :
61 :2008/10/26(日) 22:22:00
>>64 自分で作ったプログラムがOpenGLでレンダリングした画像を保存するのは出来ます。
でも人が作ったプログラムでやるにはどうすれば?
キャプチャ Win32 あたりで検索すれば色々でてくんだろ
バーカ をNGにするだけでも結構快適になるものだな。
バーカ
このスレには、人を安易に馬鹿呼ばわりする奴が後を絶たないな。 プログラマの人格が疑われるぜ。
俺はプログラムを組めるんだ!それも硬派なWin32だ! という感じで、えらそうに街中歩いていそうだなw あ〜やだやだ。
高校生?
やーーーい、バカ、おまえ、バカだ、馬鹿だ 馬鹿じゃなければ底辺産業のドカタやってられんよなー、同職ドカタ諸氏だろ
>>133 自分のとこのならどこがキモになっててどう保存してんだか分かるだろ。
あとはどれを他のウィンドウから貰ってくれば同じことが出来るかだけやん。
IT産業のドカタ、プログラマーw
IT産業のドカタ、プログラマーw
アセンブラ組に入るんだ アセンブラ組はやわじゃねえ
148 :
デフォルトの名無しさん :2008/10/27(月) 22:46:36
_WIN32_IEや WINVER _WIN32_WINNT といったWindowsやIEのバージョンを表すマクロは、 Win32APIでプログラムする場合、自分で定義するものなのですか てっきりVC++が開発環境のバージョンをデフォルトで設定してくれると思い込んでました
入れるべきは開発環境のバージョンではなく、 「動作させたいターゲット環境」のバージョンだから。
150 :
148 :2008/10/27(月) 23:21:14
そうですね その通りなんですが、 開発環境のパラメータをデフォルトで設定してくれてもいいんじゃね? プロジェクト設定でGUIでできてもいいんじゃね? と甘えたくなっただけですごめんなさい
152 :
148 :2008/10/28(火) 00:05:42
WINVERには確実に数値が入ってそうですね
定義されてないとそのヘッダファイルのリリース時の最新バージョンが定義される
ってかんじなんですかね
気をつけてないと無意識にVistaでしか動かないアプリとか作ってしまいそうです
明示的にターゲットのバージョンを定義するのが良い作法の様ですね
>>149 >>151 ありがとうございました
プロポーショナルフォントの場合、文字の横幅はバラバラなんですよね? で、TEXTMETRIC構造体のtmAveCharWidthというメンバで文字横幅の平均値は 得られるようですが、この横幅を基準に文字列がどのくらいのフィールドを 必要とするかを考えても、文字の組み合わせによっては、想定したフィールドの 横幅からはみ出すこともあるってことで、OK? 対処法は余裕をもって場所確保しておけってことなのかな。
それでいいと思われ 万全を期すならGetTextExtentPoint32使った方がいいんだろうけど
レスどうもです。 GetTextExtentPoint32というのは、文字列ごとに計算するって奴ですよね。
最大字数が決まってて、どんな組合せでもはみ出さないようにしたい という用途みたいだから、tmMaxCharWidth*nでないの
たしかにそのやり方がよさげですね。 大文字の場合も考慮に入れてくれるんですよね、その関数。
.exeと同じフォルダに○○.chmがあれば ShellExecute(hwnd,"open","○○.chm",NULL,NULL,SW_SHOWNORMAL); って書けばふつーにchmが開くんですか?
160 :
158 :2008/10/28(火) 08:32:13
嫌です
いやーん
>>159 できました、どっかでID、ヘッダーファイルがどうこうと見たので
たんに開くだけの場合も何か必要と思い込んでました…
パス省略できるのはカレントディレクトリだから
「カレントディレクトリ」≠「exeのあるディレクトリ」の時に正常動作しない糞アプリの完成ですね
GetObject( hbmp, sizeof( BITMAP ), &bmp ); とした時の BITMAP::bmBits は解放する必要ないのでしょうか?
LocalFreeで開放しろと書いてあるだろ
167 :
165 :2008/10/28(火) 14:40:05
いや、DIBSECTION以外はNULLのままじゃないか?
CreateDIBSectionのppvBitsに入るのと同じアドレス値でしょ
>>167 のリンク先なんだけど
> この関数は、、、、、、or いずれかの構造体、またはテーブル内のエントリ数(論理パレットに対応)を格納します。
何これ
>>171 いやそうじゃなくて、機械翻訳がおかしいと言いたいのだが・・・
173 :
165 :2008/10/28(火) 15:15:15
>>166 LocalFree() するとアクセス違反が起こりました
問題なく処理は進んでいますが、
念のためコメントアウトしておきます
>>168 ヘルプを見る限りそのようなので、
CreateDIBSection() でBITMAPを作成しています
>>169 同じアドレスということは
メモリの管理はAPI側がやってくれるということなのでしょうか?
>>170 日本語版ヘルプはそういうのが多いですね
特にWin32APIで
>>173 自分で作ったバッファのアドレスが入ってるだろうってことじゃないか?
175 :
165 :2008/10/28(火) 15:20:01
>>174 自分でバッファを作ったわけではなく、
CreateDIBSection() の引数で void** を渡し、
そこにアドレスが入っています。
なのでシステムが用意したバッファだと思っているのですが・・・
自分で(CreateDIBSectionで)作ったバッファの(中のどこかの)アドレスが入ってるだろうってことじゃないか?
だからCreateDIBSectionで作ったやつはGetObjectに関係なくDeleteObjectすればいい
178 :
165 :2008/10/28(火) 15:27:37
>>176 すみません読み違えていました
>>177 つまり DeleteObject() さえしていれば
解放の必要はないということですね?
ありがとうございました。
タスクマネージャで見てハンドル値とかが増加していかなければおk
おれつえええええええええええええええ
182 :
デフォルトの名無しさん :2008/10/28(火) 23:47:58
タスクトレイに常駐して、任意のキーが押されたらある処理をするアプリを作ろうと思ってます 実現するには、アプリケーションのウィンドウがアクティブではない時も キーイベントを拾う必要があると考えてます この場合、 ・キーボードフックを使う ・GetAsyncKeyStateでポーリングしながらキー入力をチェックする 以外の方法が思いつかないんですが、他にやり方はありますか?
184 :
182 :2008/10/29(水) 00:08:47
>>183 おぉぉぉぉ
正にこの機能が欲しかったです
RegisterHotKey()
で頑張ります
がんばらなくてもいいじゃないか、にんげんだもの
Win32APIを勉強し始めて、今スクロールバーの処理について学んだんですが けっこうスクロールバー1つ付けるにしても、メッセージを処理しなくちゃ いけないんだなぁなんて思ってるところでありまして、これがC#などの いわゆる高級言語だと、どれくらい楽に実装できちゃうんでしょうか。 あまり変わらないのでしょうか。
今は言語何使ってんだよ
C/C++です
pythonです
無料で使える Express 版があるんだから、ちょっと試してみればいいじゃん。
>>186 C#は何も知らなくても基本的なGUIアプリ作れるくらいにラク
>>186 C#だと、プロジェクトを作っただけで、既にウインドウが1つ作られてて、
それだけで既に一通り動作する。
そして、デザイン画面でボタンをD&Dで貼り付けてダブルクリックするだけで、
ボタンクリック時のメッセージハンドラが作られる。
これはC++でMFCの場合も同じだが。
労力は半分以下
スクロールバーで何やってるのかわからんけど 一般的な動作以外をやらせてるなら手間はあまり変わらんぞ、そこの部分だけは。
64ビット版WindowsではWin64APIってのを使うのかい? 他の呼び方があるの?
APIはWIN32APIのままだよ
>>192 C#はって言うより十数年前のVBで既にそうだった訳だが
IntelliPointでブラウザなんかをホイールクリックすると任意方向へスクロールさせることができるけど あれを自前のアプリへで対応させるのってどうやるの? どっかにドキュメントがあったら教えてください。
DoReaderMode
201 :
186 :2008/10/29(水) 18:06:15
レスどうもです。 MFCなんかでは、ウィザードである程度コードの骨格を作ってくれるというのは 知っていたので、C#も同じような感じですか。 ただ、それならWin32APIでも、一度自分でひな形を作れば、それほど手間は 変わらないのかなと。それよりも、スクロールに付随する複雑な描画の部分を 魔法のように解決してくれるってことはないんですね。 そういう意味ではあまり変わらないのかなぁという印象です。
いや、状況にもよるが例えば画像のスクロールに対応済みのコントロールはあるから それ貼るだけでいい、というのはあるよ。
スクロールバーってそんなに面倒かな コモンコントロールの方がよっぽど面倒なのたくさんあるぞ
64ビット版のプログラムって何が違うの? long型が64ビットとかになるのかな。 32ビット版プログラムも動くの? Win32APIの知識でそのまま移行できるのかい?
その質問からして32ビットプログラムの何が32ビットなのかも分かってないだろ
LLP64
>>205 自慢じゃありませんが、よくわかっていません。
CPUが一度に処理できるデータのサイズが32ビットである
アーキテクチャ用のプログラムが32ビットプログラムと
違うの?
Win32APIを最低限理解していれば64ビットへの移行の際に問題は一切発生しません
>>209 プログラムが32ビットにきまってるだろう
いや、つまんないから
けっきょくみんな半信半疑なんだろ 64ビットプログラムって奴がさ
>204 「long型が64ビットとかになるのかな。」って、 32ビット版のプログラムは、long型は何ビットなんだ?
32ビットやろう、intと同じで。
>>202 >画像のスクロールに対応済みのコントロール
どれ?
それ
なるほど
LLP64は long long とポインタが64bitだから int とlongは32bitのまま
他のウィンドウに隠れたウィンドウをキャプチャすることはできる? もしくは画面外のウィンドウをキャプチャすることはできる? だいぶ調べたけど一番上のウィンドウ(もしくはデスクトップ全体)かつ デスクトップ画面内しか無理という結論に達しつつあるんだけど・・
無理
で、ぼちぼち64ビットプログラムのイメージを抱かせてくれないか… たとえばwPramとかlParamが64ビットになるのか? それともlong longをふんだんに使えばいいのか?
64bitになるのは、ポインタだけだよ。
アドレスが64ビットになるということはwParam, lParamも64ビットになるということなのかという話ですよね。
wParamやlParamがポインタのtypedefだったら64bitになるけど、そうじゃないよね? ちなみに、Windowsのカーネルも32bitと64bitでソースコードベースは統一されている。
あと、ポインタのtypedefである(#defineだっけ?)ハンドル型も64bitになるね。
>>221 いまいち覚えてないしPSDKも手元にないのでアレだが、typedef LONG_PTR LPARAMになるんじゃないか?WPARAMは多分変わらないだろう。
64ビットになることで今まで無邪気にint型相当のデータ型にポインタぶち込んでたところが64ビット整数型を使わなければならなくなる。
UINT_PTRとかDWORD_PTRなんてデータ型見たことないか?
従来ポインタ-整数間のやり取りをしていた箇所が「ポインタを収められるサイズ相当の整数型」を使うようになって、具体的に32ビットか64ビットかを問わずHOGE_PTRとかで抽象的に扱えるようになってる。
その点Win32APIの方でも64ビットを意識した修整が入ってるから、ポインタは絶対32ビットだ〜みたいなことしてなければ「多分」従来どおりでいい。
227 :
224 :2008/10/30(木) 02:23:06
すまん、思いっきり勘違いしていた。 wParam,lParam両方とも64bitになるな。
typedef UINT_PTR WPARAM typedef LONG_PTR LPARAM だね。ポインタだから64bit
229 :
226 :2008/10/30(木) 02:28:07
すんません。
>>228 のとおり。
WPARAMも64ビットになるね。windef.hを急いで確認したよ。
HOGE_PTRを見るとPHOGEみたいな感覚になるから嫌い
↑デタラメ言うな
とにかく普段から抽象データ型を使うように努めればいいわけか。
Windwos7なんてものが遠くない内に出るようだが、 新しいOSを機にぼちぼち64ビットWindowsに乗り換えるべきだろうか。
>>219 他人のウィンドウが自分のウィンドウエリアに描画するから無理だよ。
Vistaならできるかも。
>>232 いやXP以降だけどPrintWindow()でいいだろ。
2000なら対象ウィンドウを一旦レイヤードウィンドウにするとかいう強引な手もあるが。
このでたらめ言うやつは何なの? 自分が間違ってたことを認めないためには質問者に嘘教えるのも厭わないのか。
印刷したいんですが。 DCに書けばいいのか?
もちろんDCに書くけど、準備がいろいろあるから まずはサンプルコードをコピーしてくるところから 始めた方がいいよ。
64ビットでもSysListView"32"なんだろ? 意味わかんねぇ MSの中の人、頭おかしいんじゃないの
>>243 64ビットでも kernel32.dll だし、システムフォルダは c:\windows\system32 だよ。
逆に、64ビット環境での 32 ビット用が WOW64。
最初は戸惑うよね。
過去のしがらみのないOSがいいならGNU Hurdでも使っておけと。
>>244 こういうのってやっぱシステムフォルダ = "c:\windows\system32"って
ハードコードしてる糞アプリの為の互換性なんだろうな
シェアが高すぎるOSってのも大変だなぁ・・・
PostMessageとSendMessageの違いですが ぶっちゃけメッセージループのためのメッセージキューに送られるのがPostで 直接WindowProcに送られるのがSendってことでOKですか?
おk
どっちもキューに入るけどな。 WindowProcの戻り値がわかるのがSendで、わからないのがPost もちろん、SendはWindowProcが終わるまでリターンしない。
251 :
デフォルトの名無しさん :2008/10/30(木) 14:37:28
>>250 え?できたの?理解できない。
もしかしてOSはVista?
Vistaはアプリケーションごとにサーフェイスを持ってるから、描画したのが残ってるんじゃないかと。
WM_PAINTですら描画しないと消えるのに
WM_PRINTなんかでなんの処理もしてないのに描画されるはずがないと思う。
もちろんWM_PAINTをWindowsまかせにしてるアプリならWM_PRINTにも対応してるだろうけど。
逆だろ。 WM_PRINTをWindows任せにしてるとWM_PAINTと同じ内容になる。
>>252 WM_PAINTを処理しない前提ならそーかもしれないけど
そもそもWM_PRINTなんか自前処理してるアプリないだろ。
情報量が桁違い=誰も使ってない。
WM_PRINT に一致する日本語のページ 約 256 件中 1 - 10 件目 (0.04 秒)
WM_PAINT に一致する日本語のページ 約 8,830 件中 1 - 10 件目 (0.11 秒)
WM_PRINT の検索結果 約 9,010 件中 1 - 10 件目 (0.03 秒)
WM_PAINT の検索結果 約 150,000 件中 1 - 10 件目 (0.18 秒)
http://d.hatena.ne.jp/madotate/20080320 デスクトップのスナップショット
デスクトップのスナップショットを取ろうという実験。最初に結論。
* 「壁紙+アイコン」を取得するなら BitBlt()
* 「壁紙」のみを取得するなら PaintDesktop()
方法4:WM_PRINTメッセージ
最後に、WM_PRINT。GetShellWindow() して SendMessage() でWM_PRINT を送りつける。
なにも書かれなかった。ぐぐってみると、これはWindows 98では使えたテクニックらしい。
Windows NTや2000以降では、同一プロセス内じゃないと使えない模様。
そういうわけで最初に書いた結論に至る。BitBlt() 最強。
ユニコードが定義されている環境で、 TCHAR tszBuff[100]=_TEXT(""); GetWindowText(hWnd, tszBuff, XXX ); の、XXXって、正しいのは次の内どれですか?? @100 Asizeof(tszBuff) B100-1 Csizeof(tszBuff) - sizeof(TCHAR) char型とWCHAR型の違いは、一応ぐぐって調べたんですけど、 上記の場合、何をいれたらいいのかわかりません・・・。
sizeof tszBuff / sizeof(TCHAR)
hMutex = CreateMutex(NULL,TRUE,"ファイル名"); if (GetLastError() == ERROR_ALREADY_EXISTS){ ReleaseMutex(hMutex); CloseHandle(hMutex); return FALSE; こうすると「ファイル」の2重起動は防げるんですが 「ファイル」を閉じてもう一度開こうとすると開きません。 何が考えられますか?
257 :
254 :2008/10/30(木) 15:45:47
>>256 ファイルを閉じるときにミューテックス閉じてないとかいうオチくらいしか思い浮かばないけどな
>>258 コレ(
>>256 )と同じ書き方でソフトそのものの2重起動は防げたので
使えると思ったんですが…
>>259 いやだからさ、ERROR_ALREADY_EXISTSじゃなかったときはMutexそのままでファイルを開くんだよね?
そのファイルを閉じたときにはちゃんとCloseHandle()してるの?
理解していることと行動に移すことは別の話
ソフトそのものの2重起動とやらは明示的にCloseHandleしなくてもいいからなw
ファイルをミューテックスオブジェクトで縛らなくても、 CreateFileの引数のdwShareModeに0いれときゃ良さそうなもんだが・・・
てかMutexって名前に \ が含まれてると意味合いが変わるから ファイル名をそのまま使えるものなの?
>>251 えー、でもできたよ
OSはXP、Visual Studio 2008
コードはこんなの
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
HWND hWnd = (HWND)0x000203fa;
HDC hDC = ::GetWindowDC(NULL);
::PrintWindow(hWnd, hDC, 0);
::ReleaseDC(hWnd, hDC);
}
対象ウィンドウハンドル直指定でデスクトップ左上に書き込み
メモ帳とJaneで別のウィンドウに隠れてるときと画面外の状態で確認
>>267 できて当然
WM_PRINTとPrintWindowは別物
PrintWindowはWM_PRINTを発行するだけのAPIではないということ
>>251 が勘違いしてるだけ。
>>228 いまさらだけど、ポインタじゃないぞ、整数型だ。
たしかにWin64では64ビットになる型だが。
Ribbonコントロールはどうやって作るんですか?
こうやって作る (略)
OSに標準で入ったらMFCも CMFCRibbonBar が CRibbonBar になったりすんのかな
標準で入ったらwrapperクラスが追加されるだけだろ
>>274 そんなのは過去に何度も頼み込んでもダメだったので、レスするだけ無駄だ。
この板が使い物にならないくらいスクリプト荒らしをすれば導入してくれるらしいので、
そっちの方向で頑張ってくれ。
ぶっちゃけID無くても捨て鳥使えば良いわけで
悔しかったら2ch鯖クラックして設定書き換えて見ろよ m9(^Д^) ってスタンスなんだろうなあ。
鳥付けても自演は防げないじゃん 節穴かIDじゃないと駄目だろ
281 :
280 :2008/10/31(金) 08:07:04
やっぱり鳥だけでいいな 少なくともこの板では
282 :
280 :2008/10/31(金) 08:26:38
あーなんか面倒くさいし全部なしでいいや
他所でやれ
ID変えればいくらでも自演できる むしろ強制IDの方が複数回線使った荒らしの温床になる
自演はできても騙りはできなくなるだろ。
昼休み
自演は可能だろうけどこのスレで問題なのって自演じゃねーじゃん 騙りじゃん
日付変わるとID変わるのでそのタイミングで騙りもできる そもそも騙りができなくなったとしても荒らしは減らない
ここでいいよ
俺もここでいいと思う
俺もWin32APIの話はここでいいと思う
>>289 っていう奴がどの自治スレでも出るんだけど
いざ導入してみるとどの板でも荒らしはほとんどいなくなるから不思議
荒らす奴もID変えてする奴はほとんどいない
ようはそこまで手間かけて荒らす奴なんて稀って事だな
強制IDでも荒れてるスレなんていくらでもあるが
それが何か?
↑話を理解してない馬鹿
↑話を理解してない馬鹿
↑話を理解してない馬鹿
↑話を理解してない馬鹿
↓話を理解してない馬鹿
↑話を理解してない馬鹿↓
→話を理解してない馬鹿
流れぶった切ってすみません OSのタスクスケジューラーにタスクを追加するAPIは存在しますか? テレビの録画ソフトとかでタスクスケジューラーを使ってるものが あったので調べてみたんですがわかりませんでした コマンドラインで出来るらしいのですが登録するたびにパスを入力 しないといけないみたいです
ID導入があるとしたら管理者の便宜の為だけ。
うるせー馬鹿
馬鹿うるせー
いつもの事だろw スルーしておけばいいだけ
どうせID賛成派が自演で荒らしてるんだろ
314 :
デフォルトの名無しさん :2008/10/31(金) 15:31:20
MDIでウィンドウを沢山作って最大化したときに上の方にタブ型になるには どうすればいいですか?タブブラウザを作ろうと思ってます
>>304 >>297-303 なんて強制IDの板でも普通にあるだろ。
これに限って言えば抑止力にはならん。
そんなことよりWin32APIの話しようぜ。
最大化された時に上の方にタブを出せばよい
317 :
314 :2008/10/31(金) 15:37:52
最大化したときに自動でMDI式からタブ式に変わるような設定とか無いですか? DonutはそうなってるけどDonutnoソース見たけど分かりませんでした
そんなことよりID制の話しようぜ。
ウィンドウ関係をクラス化しようとSetProp使ってクラスのポインタ保存しようとしたらなんかエラー出た・・・ 原因分かる人いる?
いないからID制の話しようぜ。
さっさとID制の話しようぜ。
MDI形式って一度も使ったことない。 後ろが隠れるのがデメリットに思えてしょうがない。 便利ですか?
便利でも何でもいいからID制の話しようぜ。
IDの話なんかどうでもいいからAPIの話しようぜ。
326 :
デフォルトの名無しさん :2008/10/31(金) 16:21:10
ネットワークのAPIの本って意外にすくないね。WinSOck2プログラミングっていうのがあるけど 高い。
ネットワークAPIの本は少ないからIDの話しようぜ。
MDIはMSも見捨てた過去のUI
>>326 API自体は昔からあるソケットの資産を
Windowsに合わせてイベントハンドラ追加したりしてチューニングしたもんだから
あんま書くこと無いんだよ
>>319 SetPropとGetPropしてるところ書けよ
やだね
そうつれないこと言わずにお願いしますよ〜
IDEにある、ソリューションエクスプローラーとか、ああいうウィンドウが はまってるのは、MDIじゃないのけ?
>>317 Donutは普通のMDIにタブも付けているだけ。
良く見ろ、最大化していなくてもタブがある。
ドッキングウィンドウはMDIとはまた違うが MDIと併用するのもまた事実
ハァ?
ハァ(笑)
ナからぎゅ〜にゅ〜
ドッキングウィンドウをダブルクリックすると単独のウィンドウに なるよね。あれはMDIなのかな。どうなのかな。
MoveToEx()→LineTo()で直線描くと最後の点が描画されないんだけど、 なんか描く方法はないですか? ペイントみたいなのの勉強してて、 ペイントだとクリックした瞬間にその点が塗られるから、それを実現したい。 当然ながら、最後にマウスを離した点も描画したい。
結局WinAPI
始点を保持しとけ
ミスると書く気なくなるよね
ドッキングウィンドウって昔からあったっけ? 新機能で途中から追加されたものなの? MDIとは一線を画するものなの?
Document/Viewモデル的にMDIであれば、 タブとかドッキングとかその他変態スタイルに関係なくMDI。
>>339 最後の点だけSetPixelVで描けばいいだろ
MDIはMSも見捨てた過去のUI
ExcelがMDIに見えるのは目の錯覚なのです
でも、グラフィックエディタなんかは、切った貼ったやるんだから どうやってもMDIになるだろう。不必要ってわけでもなかろう。
大分当初の話から脱線してるなあ
>>343 昔からあったけどデフォの機能としては、Windows2000が出るころまでなかったかもしれない。
おまえにドッキング
どの版からかは知らんがMFCに実装されたのが初出なんじゃないの つーかこのスレの人はやっぱMFCなんて糞食らえなの?
というかMFCやWTLを使わずにWin32SDK onlyでプログラム作る方が糞 車輪の再発明というより時間と労力の無駄
MFCぜんぜんわかんないから直接API叩いてる人たちのスレですよ。
ATL/WTLでいいじゃん
MFCの謎な仕様に頭を悩ます位なら自分で薄いラッパ書いちゃえ と思うことはよくある
ATL/WTLでいいじゃん
貧乏な俺はExpressEditionなのでMFCもATLも・・・
>>360 プログラマならシェアウェア作ってカネ貯めてStandard以上を買え
体験版に全部入ってるお(^ω^;)
質問です。GetDlgItemIntの戻り値が常にUINTなんですが、引数の符号でTRUEを渡した場合には、 単純にキャストしても安全なのでしょうか。
Win32APIしか知らないのは糞。 Win32APIの知識が無いのにMFC使ってるのも糞。
本来APIの知識がなくてもMFCが使えるべきだと思うが・・・
>>363 大丈夫。というか、整数値と互換性のある基本型なら大抵大丈夫。
MFCはWin32の低レベルラッパ
>>355 あなた、両方わかんないのがバレバレですよ
Win32APIでまじめにC++キャスト使うと reinterpret_cast<>しまくりで疲れる
リッチエディットを使ったプログラム書いてるんですけど、 フォーカスが無いときでも文字が追加されたら追加された箇所が見える位置にくるように浮くロールバーを上下させたいのですが、メッセージ送るだけじゃ無理ですか? EM_LINESCROLL EM_SCROLLCARET EM_SCROLL EM_SETSEL は試しましたがいずれもフォーカスを持った状態でないと機能しませんでした。
SetFocus
SetFocus
大(略
(略
略しすぎ
>365 確かに CSpinButtonCtrl にはがっかりだった。
>>371-372 リッチエディットのハンドルと親のハンドルで試してもダメでした。
それどころかSetActiveWindowも反応無いのはどういうこと?
浮くロールバーって何?
ごめんなさいorz スクロールバーです、sが抜けました。
でも、浮くロールバーもあってもいいよな
エクスプローラのツリーでフォルダの横に付いてる+マークをクリックしたときに贈られるメッセージはなんですか? spy++でツリー、WM_Notifyの項目をみてもなにも送られてこないんです。 アプリ、フォルダウィンドウ、TreeCtlr?どこを見てもフォルダ展開のメッセージが出てきません。どうやったら確認できるんですか?
TVN_ITEMEXPANDED, TVN_ITEMEXPANDING
383 :
デフォルトの名無しさん :2008/11/02(日) 15:47:47
どうやったら確認できるんですか?
Windowsしか知らないのは糞。 Windowsの知識が無いのにUNIX使ってるのも糞。
いきなりどうした。 何かいやな事でもあったのか。
Notifyがよくわかりません。これでフォルダを展開したときにメッセージボックスを表示させたいんですがどうすればいいですか? lParam->codeにそのメッセージがはいってるんじゃないんですか? BOOL CViewTree::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) { BOOL bRes = CTreeCtrl::OnNotify(wParam, lParam, pResult); NMHDR* pNMHDR = (NMHDR*)lParam; ASSERT(pNMHDR != NULL); if (pNMHDR && pNMHDR->code == TTN_SHOW && GetToolTips() != NULL) { GetToolTips()->SetWindowPos(&wndTop, -1, -1, -1, -1, SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOSIZE); } switch( ((NMHDR*)lParam)->code ) { case TVN_ITEMEXPANDING: *pResult = TRUE; AfxMessageBox(_T("test open")); } return bRes; }
デバッグでもしろよ…
ごめんスレまちがえた
389 :
386 :2008/11/02(日) 17:56:46
スレ間違えたのでしめます
390 :
386 :2008/11/02(日) 18:14:05
>>387 383の書き込みは自分じゃありません。気を悪くしていたらと思い言っておきます。
〜INGなメッセージや通知コードでMessageBoxを出すなんて随分と行儀の悪いアプリだな
ただの動作テストでしょ。重角にも程が。
ファイルを開くダイアログで10秒くらい放置すると落ちるソフトがたまにあるけど、あれはどういうバグなの?
時限爆弾
395 :
デフォルトの名無しさん :2008/11/03(月) 02:16:42
タスクトレイにアイコンのみ表示させている状態から2重起動しようとした場合、 元のウインドウを表示させ、タスクトレイのアイコンを消したうえで、アクティブにしたいのですが、 どの関数を使ったらよいでしょうか? ShowWindowでは元のウインドウは表示されませんでした。
元のウインドウにShowWindowすればいいだろ
2重起動で気になってたんだけどcreatemetexの後 messagebox(NULL,〜 起動していますと表示させようとしたら .exeをクリックするたびに何度でも表示される。 ふつーのmessagebox(hwnd,〜みたいに一度しか表示されないようには できないの?NULLをhwndにしたら何も表示されなくなった。起動は防げてるけど。
mutexわかんね
mutexではありません metexです
latex?
>>397 起動したプロセスごとに MessageBox が表示されているんだろうから、
そうなって当たり前だろうに。
すみません、APIでマウスオーバー時だけ浮き上がるフラットツールバーを作成しようとするとツールバーの背景がおかしくなります。助けてください
ある有効なHDCが有ったとしてこれをhdcとした時 HDC h=::CreateCompatibleDC(hdc); ::SelectObject(h,(HFONT)::GetCurrentObject(hdc,OBJ_FONT)); 〜GetTextExtentPoint32で使う〜 ::DeleteDC(h); という風に使ってるんだけど、2行目でGetCurrentObjectしたものはDeleteとかReleaseしなくていいんだよね? コンパチDCはハンドル削除するだけでいいんだよね?
削除する前にSelectする前の状態に戻さなくてはならない
SelectObjectの戻りを保存しる
GDIのソースでも読まない限り、正確なところは判らない。 ただ、戻しておけば大丈夫な事は確かだ。
MSDNに戻せと書いてある以上、戻すのがまともなプログラマです。
面倒だからSaveDC/RestoreDCっすよねー
Windowsがダメなところは、ダメなプログラムでも動くように努力してしまったところ
悪貨は良貨を駆逐するという言葉が脳裏によぎる。
SelectObjectしたままだとDeleteObjectできなくなるから
使用後はとりあえず元のオブジェクトに戻しておけば無難ってだけだろ
だからストックオブジェクトをSelectObjectした場合などは戻す必要は無いし、
>>405 の場合にしても他のDCのオブジェクトを借りてるだけだから戻さなくてもいい
その程度も知らずに「まともなプログラマ」「ダメなプログラム」を語る奴がいるとは片腹痛いわ
という風に長々と説明するのがアホらしいから戻す
ダメなプログラムでも動くというのは、構造体のサイズをサイズをセットしなくても動くとか いろいろあるよ
そこでwineのソースですよ
>414 それは意味が違う。言いたいことはわかるが、誤用だ。
良貨は悪貨を駆逐する
ストックオブジェクトをSelectObjectした場合に DeleteObjectすると死ねますか
DeleteObject 関数を呼び出してストックオブジェクトを削除する必要はありません(削除しても問題はありません)。
GetSysColorBrushは?
SaveDCとRestoreDCを使えばそんなことで悩む必要無いのに。
DeleteObject は知らんけど Release して死んだことはあるな
(HBRUSH)(COLOR_WINDOW+1)とかで適当なHBRUSHオブジェクトになるのはどうして?
一定の数以下は数字を指定したと判断して中でブラシ用意してるんだろう。 なんで+1なのかは、ヌルのブラシも許されてるから、中で1引いてるんだろうw
WNDCLASS(EX)やFillRectは
>>426 の書き方が出来るのに
なぜかFrameRectでは出来ないんだよなw
>>428 境界線だけだからじゃね?
>426 タイプのリソースの本体は、実はパターンなブラシかもしれないしね
int FillRect(HDC hDC, CONST RECT *lprc, HBRUSH hbr) { if ((UINT)hbr <= COLOR_MENUBAR) hbr = g_hbrSysColor[(UINT)hbr]; // 実際の描画処理 (PatBlt系を呼び出す) } FillRect等で定数が指定できるのはこうやって内部で辻褄合わせてるから。 FrameRectでそれができないのは単なるAPIのバグか設計ミスだろう
0のときのための処理を忘れてるw
いい加減だ
GetSysColorBrush使えということで勘弁してください。
>>431 スマン、適当に書きすぎたw -1しないとダメだね。
まあ言いたいのは最後の一行だから気にしないでくれ。
WNDCLASS(EX)でできるのは、多分DefWindowProcのWM_ERASEBKGNDの処理が
WNDCLASS(EX)::hbrBackgroundでFillRectしているだけなんだろう
435 :
デフォルトの名無しさん :2008/11/04(火) 19:13:50
ウインドウアプリもしくはコンソールアプリ共通で使える.exeを作りたいと思っています。 その場合の標準出力の仕方について教えてください。 (a) コンソールアプリとして使う場合 - CreateWindowで画像を表示するウインドウを作る - 標準出力としてログを取りたい (b) ウインドウアプリとして使う場合 - CreateWindowで画像を表示するウインドウを作る - ファイルドロップでプログラムを起動させたい - 標準出力のログは不要 AllocConsoleを使えばコンソールに文字列を出すことができるのは分かるのですが、 コマンドプロンプトから実行したときに別のコンソールウインドウを出してしまうため、 リダイレクトでログを取ったりすることができません。 一方、コンソールアプリとしてビルドすると、ファイルドロップ時にやはり 別のコンソールウインドウを出してしまうため、美しくありません。 コマンドプロンプトから起動した場合のみ標準出力をする良い方法はないでしょうか?
CreateToolhelp32Snapshotでプロセスのスナップショットを取ると親プロセスのIDが取れる なんかの役には立つかも
attachconsole
438 :
435 :2008/11/04(火) 19:46:10
>>437 ありがとうございます。
期待している動作をさせることができました!!
>>436 こちらも情報ありがとうございます。
AttachConsoleはWinXP以降で対応ということなので、
Win2k以前の対応を迫られたときに再度検討したいと思います。
あとはコンソールアプリとして使う場合にバッチ処理に少々困る(即時復帰してしまう)ことがあるのですが、
| type nul を後ろにくっつけてコマンドプロンプトをブロッキングするという方法で代用しようと思います。
どうもありがとうございました。
start /wait
>>435 AttachConsoleもAllocConsoleもいらないよ
GetStdHandleだけでいいよ
アプリ|more
アプリ>ファイル
441 :
435 :2008/11/04(火) 23:23:49
>>439 言われて思い出しました、ありがとうございます。
>>440 GetStdHandleだと0x00000000が戻ってきて、標準出力で正しく出力されないようでした。
もう一度確認してみます。
アプリ|more アプリ>ファイル しないとだめよ
443 :
435 :2008/11/05(水) 00:59:45
>>442 たびたびすいません。
> アプリ|more
> アプリ>ファイル
でやってみましたが、やはり標準出力に書いたはずの文字列はうまく表示されませんでした。
うーむ・・・。
嘘を教えたがる奴がいるみたいだな
>>440 とか
>>442 とか
騙る奴もそうだが、この手の連中って何が目的なんだろうね
445 :
386 :2008/11/05(水) 03:05:17
自分の質問をスルー、クズ扱いされていたちごっこになってるだけだと思われ
叩かれたから叩き返すってか クソガキが
叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け 叩け叩け叩け叩け叩け叩け叩け叩け叩け
ゲシュタルト崩壊キタコレ
明日はどっちだ
前
古代ギリシア人に言わせると前にあるのが過去で、未来は後ろにあるもんだそうな。 曰く「過去は見ることができるが、未来は見えない」
過去は光速で遠ざかっていく 未来は光速で向かってくる
>>435 変なことしてなきゃふつうにできるはずだが
変なことしてないか?標準エラーを見てるとか?
455 :
デフォルトの名無しさん :2008/11/05(水) 15:12:25
アプリ間でデータのやり取りをしたいのですが SendMessageのWM_COPYDATA以外になにか方法はありますか?
共有メモリとかネームドパイプとか
WM_ENABLEって、以下のように状態が変わらないと発生しないようなのですが、 その挙動はどこかで保証されていますでしょうか? EnableWindow(FALSE); // ここでは発生する EnableWindow(FALSE); // ここでは発生しない EnableWindow(FALSE); // ここでは発生しない EnableWindow(TRUE); // ここでは発生する EnableWindow(TRUE); // ここでは発生しない EnableWindow(TRUE); // ここでは発生しない
458 :
デフォルトの名無しさん :2008/11/05(水) 16:37:03
>>456 共有メモリって簡単にできる?
どっか参考になるサイト教えてくださいよ
そのくらいググれよw キーワードは「プロセス間通信」あたりで
Windowsの場合、メモリマップドファイルで探すといいかも
>>457 If the window is being disabled, the system sends a WM_CANCELMODE message.
If the enabled state of a window is changing, the system sends a WM_ENABLE message
after the WM_CANCELMODE message. (These messages are sent before EnableWindow returns.)
If a window is already disabled, its child windows are implicitly disabled,
although they are not sent a WM_ENABLE message.
なんでこの馬鹿はMSDNを見ないのだろうねぇ
知らないならレスしないで下さい。非常に不愉快です。
メモリマップドファイル程度でメンドイとなるとアトムくらいしか残ってないんじゃねーかw? パイプはもっとめんどいぞw
Windowsだと共有メモリはメモリマップドファイルで実現する方法が普通なので 面倒なら共有メモリは使わない、ということでいいのかな。 きまりきった関数を決まった順番で呼ぶだけだけどな。
おまえらメモリマップドファイルメモリマップドファイルってうるさい奴だなしなし どうせそれしか知らないんだろ?
通信する内容・形態によるからな。そういうこと書いてないなら、 メモリ空間を共有するメモリマップドファイルなら何にでも対応できるからそれを勧めるだろう。
ごめんなさいメモリマップドファイルを勉強してきます
469 :
デフォルトの名無しさん :2008/11/05(水) 19:01:32
僕がメモリマップドファイルです。
せっかくWinAPI覚えたから、グラフィックでランダムに幾何学的な グラフィック表示をして、印刷して、今年の年賀状を送ろう。
メモリマップトファイルが面倒なら普通のファイル使っちゃえよもう。
>>470 メモリマップドファイルで送るんですね。わかります。
アプリ|more アプリ>ファイル で標準出力が割り当てられて、CreateProcessでinheritされるだろ? それをGetStdHandleで取れるだろ?
疑問形にするくらいなら、自分で試してみてから答えればいいのに。
付加疑問文って中学校で習わないか?
476 :
デフォルトの名無しさん :2008/11/05(水) 20:50:24
Did you learn about this, didn't you?
スタートメニューの最近開いたアプリケーションの一覧に 任意のアプリを追加するのってどうやんのすか? なんかのCOMインターフェイスでも取得するんのかな
478 :
デフォルトの名無しさん :2008/11/05(水) 21:35:38
documents and settings\hoge\recent にショートカットを作ればいいよ
AddRecent
うそーん
「最近使ったファイル」ならSHAddToRecentDocs 「最近使ったプログラム」だったらたぶんレジストリ
ユーザーとプログラマのどちらを優先させるかで、 昔はプログラマを信用してAPIを提供してたたけど、 歴史的に見てウゼーアプリが多いから信用しませんよ、 みたいな話だな
何でもかんでもプログラムで制御しようとする発想が間違いなんだよ ユーザーはそんな事は望んでいない、単なるプログラマのエゴだ 例 強引にSetForegroundWindowするアプリ ダイアログのOKボタンに勝手にマウスカーソルを移動するアプリ
まああまりお行儀が良いとは言えないよな 自分しか使わないアプリってならともかく、ユーザにことわりを 入れなければいけないレベル
未だにCドライブの直下にわけわからんファイル残す糞アプリとかあるし
∧_∧ o/⌒( ゚д゚ )つ 話がズレているぞ と_)__つノ
c:\sqmdata00.sqm
プログラムランチャが実行したアプリを登録するオプションを持つくらいだったらいいと思うんだが まあ認めたらずるずるになるから仕方ないか
Cドライブ直下ならまだマシ アンインストールしてもC:\Windows以下にわけわからんゴミを大量に残す糞ソフトもあるからな .NETとか
MS様が自分のOSにどんな糞をひろうが勝手だろ
下手するとアンインストールできないこともあるIEよりはまし。
ダウンロードしたexeを実行すると自動でsystem32にインストール。 主要なファイル形式数十種類に自動で関連付け。 各ユーザのデスクトップ、スタートアップ、クイック起動へ自動でショートカットを登録。 万一、他のソフトが関連付けを解除してしまったり、常駐を解除してしまっても自動で修復。 1時間おきにインターネット接続して、常に最新の状態に自動でアップデート。 インストーラが全ユーザを自動で管理者権限にしてUACも解除してくれるので、 どのユーザーアカウントでも快適に使用可能。 アンインストール機能が無いので間違って削除してしまう心配は無い。 その上、もし手動でファイルを削除してしまっても自動で修復して復旧するので安心。 つまり、 行儀が悪いソフト≒初心者に優しいソフト ということ。
初心者プログラマにも易しいよね
PC初心者に優しいスパイウェアですね、わかります
>>485 >ダイアログのOKボタンに勝手にマウスカーソルを移動するアプリ
これ危なすぎるよな
他人のPC使うときに何度痛い目にあったか
そいつはなんとも思ってないらしいが・・・
勝手にIMEのモードを変えるのもやめてほしい
500 :
デフォルトの名無しさん :2008/11/06(木) 14:09:33
たしかにエディットボックスが強制数字入力だったり、パスワードが伏字にされたりすると、 強制されてるみたいでいやだ
パスワードが伏字じゃないと怖くて使えない
だったら使うな
じゃあパスワードが伏字じゃないソフトを教えてくれよ 使わないようにするからさ。
ちゃんと伏字にするかしないか、プログラムに決めさせるんじゃなくて、ユーザーが設定できるようにすればいい って話じゃないのか
伏字が*とか●とかってもう飽きちゃったんだよね △※◎☆▼! みたいに出てきてくれると楽しそう
> *とか●とか ケツの穴とかウンコとか
::SendMessageW(hwndEdit, EM_SETPASSWORDCHAR, L'☠', 0);
508 :
デフォルトの名無しさん :2008/11/06(木) 16:07:26
SendMessageで別のウィンドウ(別プロセスの)に送り元プロセスの文字列のポインタを送って 送り先でその文字列を読むにはどうすればいいんですか?
>>505 こんな感じで入力する度に伏字を変えてみればいいと思うよ
case WM_COMMAND:
if(HIWORD(wParam) == EN_UPDATE){
static const WCHAR w[] = {12942, 12963, 12944};
static unsigned i;
SendMessageW((HWND)lParam, EM_SETPASSWORDCHAR, w[i++ % 3], 0);
}
break;
ちょっと馬鹿っぽい質問ですが・・・ dllでメッセージって受け取ることできますか? できるならやり方を教えてください。 ちなみにやりたいことは・・・ ソフトA ⇔ DLL ⇔ ソフトB ソフトAからDLLでWM_COPYDATAを送ってDLLがそれを受け取って ソフトBにWM_COPYDATAを送るみたいな・・・
ちょっと馬鹿っぽい回答ですが・・・ メッセージ用のダミーなウィンドウ作ればいいんじゃないですか?
ポストしていいものならスレッド作ってPostThreadMessageという手もある。 WM_COPYDATAはSendじゃないとダメみたいだが。
>>512 馬鹿っぽいというよりお前は馬鹿そのものだな
514 :
デフォルトの名無しさん :2008/11/06(木) 19:14:53
Windows7でWin32て.NETに明け渡すの? もしそうならもう精力的に学ぶ意味なくね?
いや、今までのWin32はそのままだし、 XPS関連とかDirect2DとかネイティブAPIも増え続ける。
516 :
デフォルトの名無しさん :2008/11/06(木) 19:18:15
じゃあ前途が怪しいのはMFCとかあの辺のラッパだけ?
>>510 SetWindowLongでdllフックじゃダメなん?
コントロールにフォーカスがある時のキー入力を取得したい時は コントロールをサブクラス化するしかないのでしょうか?
コントロールの親でトラップして何事もなかったかのようにデフォルトプロシージャに戻す
スレッドにキーボードフックを掛ける手もありますん
Direct2DとかDirectWriteってCOMベースなんだろ? GDIと比較するとめんどいな。
COMとかいい加減にしてくんねーかな
COMで何か問題でも?
524 :
518 :2008/11/06(木) 23:09:01
>>519 ありがとうございます
「トラップ」で調べてみたのですが、
それらしきソースが落ちていませんでした
MFCなら PreTranslateMessage というものがあるようですが・・・
>>520 ありがとうございます
MDIのソフトを作成しているので、
スレッドでフックするのは無理そうです
↑は毎度出てくる理解しようとしないバカ
↑は毎度出てくるただのバカ
527 :
518 :2008/11/07(金) 00:43:42
>>525 私の理解力が足りないためにすみません
もしよろしければどの点が理解できていないのか
ご指摘をお願いしたいのですが・・・
↑文脈で判断できないバカ
529 :
518 :2008/11/07(金) 00:48:44
>>528 私の理解不足は重々承知しております
ですから、どの点を理解できていないのか
ご指摘を頂きたいのです
ほっとけよ意味なく書いてるだけだから
531 :
518 :2008/11/07(金) 01:00:04
結局、指摘できないということでよろしいでしょうか バカという奴がバカとは言い得て妙ですね
どうせニセモノだろ
慣れれば楽だろCOMは・・既存のものを使うだけなら尚更
AddRef/Releaseし忘れとかSTA/MTAとかかな 前者は_com_ptr_tやCComPtrを使えばいいけど
535 :
518 :2008/11/07(金) 02:05:48
>>531 私を語るにしてももう少し言葉を選んで頂ければうれしいです
536 :
518 :2008/11/07(金) 04:39:18
得意げに(笑)とか使っちゃってバーカみたい
ん?悔しかったの?(笑)
得意げに(笑)とか使っちゃってバーカみたい
ん?悔しかったの?
ん?悔しかったの? 得意げに(笑)とか使っちゃってバーカみたい
ん?(笑)悔しかったの?(笑) 得意げに(笑)とか使っちゃって(笑)バーカみたい(笑)
マルチスレッドのお作法みたいなのを学びたいんだけどいいサイトか何かない? 手探り状態でいろいろやっててかなりマズいことをしている気がする。 とりあえずウィンドウハンドルやファイルハンドルはオープンしたスレッド以外で操作やクローズするとバグるというのは経験した。 スレッド間通信はグローバル変数使って値が返るまでSleep(1)するという無茶苦茶なことをしているんで。
てめー茶漬け返せw
>>543 WaitForなんちゃらで待機用のオブジェクトがシグナルするまで待てば良いじゃない
スレッド間通信ならWaitFor〜よりInterlocked〜を使った方がいい
>>543 普通に本を一冊読んだ方がいいんじゃないか?
その僅か4行程度の書き込みで、あまりにも無知なことが伺えるし。
バグる(笑) バグると言っていい状態はファミコンのカセットずらしだけ
得意げに(笑)とか使っちゃってバーカみたい
550 :
デフォルトの名無しさん :2008/11/07(金) 10:56:34
知らないならレスしないで下さい。ウザイだけです。
お前も知らないんだからレスしないでください。ウザイだけです。
知ってますよ?
すでにご存知なら、回答する必要はありませんね?
いえ僕は知ってるって事を知ってるのです。
アプリケーションインスタンスが破棄されるときに解放されると明示されているハンドル等は一切解放コードを書かないですか?
たいてい書きます。俺は。
たいてい書くね
558 :
デフォルトの名無しさん :2008/11/07(金) 14:46:48
すんません。昨日のおばかですが教えてください。 DLLからアプリのハンドルを取得してそのアプリにSendMessageすると ちゃんとアプリにメッセージ届きますか? なんかアプリ側にメッセージきてないみたいなんですが・・・
559 :
デフォルトの名無しさん :2008/11/07(金) 15:03:29
まじかるばなな。ばななといったら、に〜んじん。
>>558 どうせSendMessageの前にハンドルが取れてないというオチだと思われます。
562 :
デフォルトの名無しさん :2008/11/07(金) 15:48:18
知らないならレスしないで下さい。ウザイだけです。
>アプリのハンドル どのハンドルですか
564 :
デフォルトの名無しさん :2008/11/07(金) 19:04:12
知らないならレスしないで下さい。ウザイだけです。
あ
∩ /⌒ヽ, うるせぇえええええ  ̄_ ̄)’, ・ ∴.' .. ∧_∧ ∴.'
| | / ,ヘ ヽ∧_∧ --_- ― = ̄  ̄`:, .∴)' (((
>>1 )
| | .i l \ ( ´Д`)ヽ, _,-'' ̄ = __――=', ・,‘ r⌒> _/ / ・,‘
| |ニヽ勿 ヽ,__ j i~"" _-―  ̄=_ )":" . ’ |y'⌒ ⌒i .' ∴.'
∪ ヽ,, / / __,,, _―  ̄_=_ ` )),∴. ) | / ノ |∴.'∴.'
ヽノ ノ,イ ―= _ ) ̄=_) _), ー'/´ヾ_ノ
/ /,. ヽ, _ _ )= _) ,./ , ノ ∴.' ∴.'
丿 ノ ヽ,__,ノ = _) / / /∴.' ∴.'
j i / / ,'
巛i~ / /| |
!、_/ / )
|_/
ちゃんとアプリにメッセージ届きます
こめんぷー^p^
すみません…
573 :
デフォルトの名無しさん :2008/11/07(金) 21:14:07
なんか、C#スレといいキモイのが湧いてるな。 質問者はともかく、荒らしはスルーしろよ。スレが荒れるだろ。
↑スルーできないバカ登場
APIのことをアピって言ったら笑われたんだけど、普通アピって言いますよね
俺はエーピーアイって言っている。
おれはエイプアイって言ってる
MAPI は まぴ
Get/WritePrivateProfileを今更使うのってどうよ 推奨されてないようだけどレジストリも汚したくないし自前で関数準備するのもマンドクセ('A`)
また水掛け論の悪寒
Get/WritePrivateProfileを今更使う奴は馬鹿 階層化できないしデータ型もセキュリティもロクに無いし、 そもそもWin16時代の後方互換で残ってるだけだからAPI仕様が腐ってる てかWin95発売から10年以上になるのに未だ大多数の国産フリーソフトでINI使ってるのが正直信じられない どんだけ時代遅れのオッサンプログラマが多いんだよ・・・
俺はC#使う時でもINI書いてるけどな XmlSerializerのバグがウザ過ぎる 7でも無くならないんだろ?どうせ…
レジストリに触るとキレる人も多いからねぇ。
なんでレジストリを毛嫌いする人がいるんだろう 勝手に関連付け変更されるとさすがに嫌だけど、HKCU\Software以下に設定を保存するくらいなら何も無いのに まあ正直そんな連中は無視でいいと思うよ レジストリが嫌なら一生Windows3.1でも使ってればいいのにね
サンクスコ 致命的な問題も無さそうですし小さいアプリなんでiniファイル使う事にします セキュリティも気になってはいましたけど、そもそもそこまで使われるとも思えないソフトなので('A`)
iniの最大の問題点は「どこにファイルを配置するか」だな 問答無用でexeのフォルダやWindowsフォルダに置くソフトは論外だが、 Application Data以下に置くぐらいなら結局レジストリ使うのと大差無いからなあ
>>586 レジストリが肥大化するとOSの起動が遅くなるって嫌がる人がいるから
俺はなるべくAppDataに放り込むようにしてるよ。
レジストリの肥大化でOSの起動が遅くなるっていつの時代の話だよw そりゃ何十MBもレジストリに書きこめば遅くなるかもしれんが貧乏性すぎだろ
そういって開発性優先した挙句、重くなったのが窓やflashやjavaアプリ
↑レジストリの肥大化とソフトの肥大化を同列に語る馬鹿
「レジストリを嫌がる人がいる」とか言ってる本人がレジストリ否定論者そのものなんだろうねぇ
XXXであるという人もいる XXXであるといっていた友人がいる XXXであるという世間の声もあるようだ
設定のバックアップが容易かどうかが重要で、レジストリを使う場合はそれを考慮しないと嫌がられる
XXXであるというのが多数派だ XXXであるという見解が常識だ
>>583 レジストリに触られるとキレるんですね
>>587 レジストリが肥大化するとOSの起動が遅くなって嫌がるんですね
>>588 時代を先行く人なんですね
>>591 あなたも実はレジストリ否定論者ですね
>>593 設定のバックアップを考慮しないと嫌がるんですね
こうですか><
INIの利点はUSBメモリに入れて同じ環境設定を 共有できる。素晴らしい事じゃないか。
どうせそのうちWindowsごと再インストールするんだから、 レジストリを汚していくソフトも気にならなくなった。
INIじゃなくてもいいだろ。
XMLだと、タグの対応とかめんどいし、文字によってはエスケープしないとダメだったり。 その点、INIファイルはお手軽でいいんだよな。
ちょっとした設定ならiniで悪いってこともないと思う どうしても階層が深くなってしまうようなのがある時にはxml使ったりもするけど でも最近は例外処理が楽なんでSQLiteにしてる
>>599 XMLのそこらへんのめんどい所って全部ライブラリに任せるとこだろ。
でも、そういうライブラリがなくても何とかなるという意味でINIが手軽というのはその通りだと思う。
メモ帳で簡単に編集出来るからね。
すかすXMLパーサってどれも重い
>>575 アピwwwwwwwwwwww
いわねーよwwwwwww
エーピーアイだろ
知り合いの米国人はエピとかアピとかって発音するな。 あいつらは好き勝手に発音する。正しい読み方なんて全然気にしない。
文字描画に関する質問です。 現在、SetBkModeがTRANSPARENTの状態で、DrawTextで文字を描画しているのですが、 文字と背景の背景色が近い場合、文字が読みづらくなってしまっています。 ですので、文字の周りだけを白くして見やすくしたいと思っています。 方法が分かる方教えてもらえないでしょうか? SetTextColorだと全体的に白くなってしまうので。
大きさと色を変えるとかちょっとずらして二回かく
二回でもいいけど 上下左右にずらして白く書いて とどめに真ん中に黒く書くとそれらしくなるよ DrawThemeTextEx使うと一発だけど
609 :
606 :2008/11/08(土) 16:51:03
>>607-608 DrawThemeTextExってのがあるのですか。
まだよくわからないのですが調べてきます。
ありがとうございます。
そしてXP以上かつテーマ有効でないと使えないということにorzするのだよ。
Minimum operating systems Windows Vista ってmsdnに書いてあるけど?
問題無い。これからはVistaの時代だ。
>>608 五回でもいいけど
八方向にずらして白く書いて
とどめに真ん中に黒く書くともっとそれらしくなるよ
614 :
610 :2008/11/08(土) 18:38:07
>>613 いちいち九回も書いていたら相当重くなりそうだが
616 :
デフォルトの名無しさん :2008/11/08(土) 21:05:02
「スレッド」や「スレッドの中のイベント」をCloseHandleする場合はどこでやればいいんでしょうか? CreateThreadと_beginthreadexのどちらを使うかでハンドルを閉じるべき場所が変わったりするんでしょうか?
617 :
606 :2008/11/08(土) 21:28:55
>>610-614 わぉ・・・、後で調べようと思ってたらwwww
Vistaからなのかぁ・・・。
おろ てっきり「自分のもvistaなので全然大丈夫です」とかいう 旧機種を使い続ける者にとっては少々ムカつく答えがかえってくると思ったのに
CloseHandle(CreateThread(...)); だろjk
行儀がよくないw
>>620 それだとスレッド作ったらすぐ終わるのでは?
スレッドが動いてるときにclosehandleしても大丈夫なんでしょうか?
終わらないよ MSDNのCreateThreadの項目よく見て来い
知らぬならレスしないで下さい
625 :
デフォルトの名無しさん :2008/11/08(土) 22:17:45
コントロールパネルを作りたいのですが、 方法を教えてください。 参考URL,参考書籍だけでもよいのでよろしくお願いします。
>>626 コントロールパネルのようなアプリを作りたいのでは?
*.cplを列挙してアイコンと説明を表示して・・・、みたいな
>>623 CreateThreadでも_beginthreadexでもハンドルを使わないなら作った直後にclosehandleがよいということ?
スレッドのハンドルを閉じてもスレッド間で共有してるグローバル変数は使用可能なんでしょうか?
少しは自分で試せハゲ
MSDNを読む気が全く無いと見た
631 :
628 :2008/11/08(土) 23:01:24
OH!
スルーしとけ また何かある度に聞きに来るようになるぞ
いや、別に聞きに来るのは構わないだろ。誰だろうと質問なら答える。
ただ、そのうちここで聞くより一次的な情報源を自分で漁ったほうが
早く答えを見つけられるようになるだろうに、それを捨てるのは
あなた(
>>628 )にとって惜しいことではないだろうかというだけのこと。
>>622 Advanced Windowsに書いてあるところの、
CloseHandleをスレッドハンドルに対して使用すると、スレッドを終了させるという、
不思議な思い込みをしている奴って本当にいるんだな。
やっぱりCloseって名前がいけないのかな。
他のハンドルはClose=破棄が多いから まあ分からんでもない
いや、他のハンドルだって、参照カウンタを減らすだけじゃん。 結果として大抵の場合は(名前つきとかduplicateとかはまず使わんし)破棄になるけれど。
628ですが、631は別人。
>>630 MSDNみてもいつclosehandleすれば良いかは書いてなさそうなんですが。
スレッド終了待ちにhandleは使うから結局閉じるのは終了後になると思うけど
>>638 この辺から読み取れよ
>The thread object remains in the system until the thread has terminated and all handles to it have been closed through a call to CloseHandle.
CloseHandleのところにも、スレッドハンドルを閉じてもスレッドは終了しないと書いてある。
http://msdn.microsoft.com/en-us/library/ms724211.aspx > Closing a thread handle does not terminate the associated thread or remove the thread object. ……
> To remove a thread object, you must terminate the thread, then close all handles to the thread. ……
だから行儀がよくないって言ったのに
ポップアップメニューについて質問させてください。 普通にTrackPopupMenu()を使うと 下みたいな左に縦線付きのメニューがでるのですが、 . | 切り取り (T) . | コピー (P) これを縦線なしのポップアップメニュー (コマンドプロンプトのポップアップメニューみたいな) を出すにはどうしたら良いでしょうか? こんな感じの↓ . 切り取り (T) . コピー (P)
はぁ?
はぁ!
ポップアップメニューの背景を消したいって意味か? どうせならjpgで
. 切り取り (T) . コピー (P) こんなメニューの出るソフトは嫌だな 貼り付け(P) とニーモニック衝突してるじゃん
moto ni Modosu (M) ----------- kiriTori (T) koPii (P) haRitsuke (R) sakuJo (J) ----------- suBete sentaku (B)
単なる例だろよw 突っかかるなよw
ここまでテンプレ
>>645 もしかしてVistaのメニュー?
あれが普通のシステムが生成してるメニューで
CMDにでるメニューは独自実装のメニューもどきじゃねーの?
Vistaしか使ったことない奴がプログラマになる時代なのか・・・
結構見慣れてくると分からんよ。 654が指摘するまでVistaのメニューの事だと気づかんかった。
vistaマシンなんていまだに店頭でしか触った事ないぜ
その空間はチェックマージン、アイコンイメージマージンと言ってだな
VistaだとメニューにSetMenuItemBitmapsで32bitでアイコン描けるんだぜ
>>659 MENUITEMINFO::hbmpItemのことか?
アイコンじゃなくてビットマップだろ
HIMAGELISTが渡せるわけでもないのでわざわざHBITMAPを作らないといけないし
メニューを破棄するときに手動でDeleteObjectしないとだし
ぶっちゃけオーナードローだけで済んだXPまでの方が楽つーかこれ考えた奴馬鹿だろ
言わんばかりじゃなくてそう言ってんだと思うぜw
.NETのメニューはかなり自由度が高いからな ・デフォでOffice風 ・ComboBoxやTextBoxを乗せることができる ・クリックしても閉じないようにできる ・ToolStripMenuItemやToolStripRendererを継承すれば弄り放題 同じ事をWin32だけで行うとなるとメニューのウィンドウを自作する所から必要だな
メニューのプロパティで何か指定できんのかな? ちょっと見てみっか
ヒント: Theme
ある1つのボタンの背景色のみを変えたいのですが、 オーナー描画ボタン(BS_OWNERDRAW)しか手段はないのでしょうか? システムカラーは全ての色が変わってしまうみたいですし。 少し調べてみた限りわからなかったため質問させていただきました。 環境:XP、Visual C++
クラシックなら変わるよ
>>664 マジでVistaしか使ったこと無いみたいだな
もしかして小学生?
670 :
デフォルトの名無しさん :2008/11/09(日) 15:23:14
InternetSetOptionで登録したユーザ名やパスワードって変更できないの? 無効のID/PASSから有効なID/PASSに変更ならできるけど、有効なID/PASSから無効なID/PASSに 変更しても有効な時のID/PASSが使われるんだけど、どうしたら再度無効な状態に戻せるの?
おれはねんちゅうだよ りゅうねんして30ねんめだけど
ちゅう…ねん…?
まぁ逆に言えばオーナードローしてるとVistaでメニューだけクラシックになって違和感あるけどな
>>674 見てますよ〜
英語が読めないのと.NETって書いてあったので
ちら見しかしてなかったんですが、
書き込みした後、じっくり読むうちにかなり重要な情報と気づきましたw
MF_OWNERDRAW?というのを使うと、なんとかできそうな目処も立ちました。
ちなみに、小学生じゃないです。
ニートです。
ありがとでした。
>>661
ヒント無視かよ!
なんでわざわざクラシックにしたいのかねぇ cmd.exeのメニューがクラシックなのはこいつのプロセスにVisualStyleが適用できないからだし、 オーナードローでクラシックなのは単にそのアプリがVistaを考慮してないだけじゃないか そんなにクラシックがいいならAeroやThemeを切れば済むだろうに
Vista以外で面倒なことになるから、標準の物は気にせず使うのが一番いい。 くだらない事に時間をかけるのは、
681 :
667 :2008/11/10(月) 00:45:42
あれ?これは簡単すぎる事だから、 自分でもっと調べろって事で放置されてるのですかい?
>>681 オーナードローでいいんじゃない。
放置されてんのはおっきな釣針がぶら下がっていただけ。
気を悪くしたのなら済まない。
ボタンのカスタムドロー(≠オーナードロー)ってできなかったっけ?
XPのボタンだと描画するタイミングでNM_CUSTOMDRAWが来るみたい てことはNMCUSTOMDRAW::hdcにゴニョゴニョしたらできると思われ
質問よろしくお願いします。 SetFileAttributesやCFile::SetStatusで フォルダの更新日時を変更使用と思ったのですが、 「アクセスが拒否されました」となります。 フォルダの属性の変更をどうやって達成できますか? 環境はXP、VC++です。
アクセス許可を与えればいいじゃないですか エラーの指示に従ってください
>>667 >環境:XP、Visual C++
>>687 >環境はXP、VC++です。
同一人物?
>>689 XPかつVC++ってそんなに珍しいのか?
1. 書き方が同じ
XPPro sp3+VC2005Proです
開発環境はWindows XP Home Edition、Visual C++ 2005 Express Editionです
とか、他にも書き方はある
2.
>>687 =
>>681 (=
>>667 )ならば時間的に合致する
で、同一人物だったら何なの?
同一人物ならば二度と来ないでいただきたい。 同一人物でないならば言うことは何も無い。
>>694 お前にそんなこと言う資格はない
お前が来ないでください
同一人物というのは図星のようだな
なんかアブナイ人だなあ
PCヲタク プログラマー 2ちゃんねらー 世間的には充分「アブナイ人」だろw
PGは変な人多いけど危険ではないよ
複数ペインがあるアプリケーションを作りたいのですが、 子ウインドウを2つ作ってウインドウの間をドラッグしたら ウインドウのサイズを変更する関数を実行するくらいしか思いつきません。 何か良い手はないでしょうか。よろしくお願いします。
701 :
687 :2008/11/10(月) 07:31:41
667の方とは別の人物です。
書き方が紛らわしくてスイマセン。
上の人の質問を見て、書かないといけないのかなと思ったので…。
>>688 さん
ありがとうございます。アクセス許可ですか。
ファイル自体は上記の手法でも変更できてるんですけどね。
フルコントロールにしてないとフォルダは変更できないのですかね。
ちょっとやってみます。
VBでやれ時間の無駄だ 生産性が落ちる でなければ帰れ
こりゃまたデカい釣り針ですね
>>701 エクスプローラとかでそのフォルダ開いてない?
XPのエクスプローラってハンドルリークしてるのかよくフォルダが削除できなくなったりするからなぁ
どなたか700をよろしくお願いします。
嫌です。帰ってください。
709 :
667 :2008/11/10(月) 20:57:03
>>682-686 ふむふむ、ありがと。
ちょっちカスタムドローっての見てくるわさ。
>>683 色変えるだけでオーナードローってめんどくさそうな感じがしたので。
おれ頭悪くて
>>700 のようなものを自作したら変な挙動のしかできなかった
親窓が固定サイズならいいけど
をリサイズした時どうすべきか
______
| | |というウィンドウを
~~~~~
______________
| | |広げて
~~~~~~~~~~~
______________
| | |ペインを移動て
~~~~~~~~~~~
______________
| | |サイズを元に戻す時どうすべきか
~~~~~~~~~~~
←?
>>710 の続き
あと、元に戻せたとして、
______
| | | これをもういっかい広げたら
~~~~~
______________
| | | こうなるのか
~~~~~~~~~~~
______________
| | | こうなるべきか
~~~~~~~~~~~
Outlookでは後者なんだな
どうなっとんじゃ
それと、
_________
| | | | ペインが複数あったらどうすんの
~~~~~~~
まあでも、これ書いてたらなんかひらめきそうになったからいいや
どうするも何もお前さんの実装しだいだろとしか言いようが…
______________ | | ・ω・ | ~~~~~~~~~~~
比率を維持するのとか いろいろありますな
WTL使え
日記書いてる馬鹿とそれに釣られる馬鹿
一瞬、テトリスの作り方教えてください かと思った
718 :
701 :2008/11/10(月) 21:39:47
>>704 さん
一応現在の作業プロジェクト以外対応してないんです。
どうやらフルコントロールも上手く行かないようなので、
どうしたものでしょうか…。
フォルダのハンドルをどうにかして取得して、
そのハンドルをつかって無理やり変更…とかできるのかなぁ。
誰かがそのファイルが開いているせいじゃないの?
なんだかわからんプロセスがファイル握ってて、 今起動しているアプリ全部閉じたり再起動すると直ってる という現象がたまにあるな
タスクトレイの自分のアイコン上にマウスカーソルがきたら 自動でメニューを開きたいのですが、 タスクトレイの自分のアイコンの位置って、どうやって得るのでしょうか?
>マウスカーソルがきたら じゃあカーソルの位置でよくね?
NotifyIcom_MouseMoveでContextmenu.Showといきたかったが 色々あって結局TrackPopupMenu
Icomって何だよ…orz
いやだからGetCursorPosで駄目な理由って何?
>>722 >>725 ?
それで、カーソルがタスクトレイの自分のアイコンの上にあるかどうかは
どうやって判定するんでしょう?
>>721 を別の言い方に直すと、
タスクトレイの自分のアイコンの上にマウスカーソルが
きたことを知る方法は?という事です。
WM_MOUSEMOVEじゃね?
カーソルがきた時の通知イベントあるよ Shell_NotifyIcon見直せ
できました! なぜかWM_MOUSEMOVEがこないと思い込んでました。 ありがとうございました。
> タスクトレイの自分のアイコン上にマウスカーソルがきたら > 自動でメニューを開きたいのですが、 そもそもこんなUIが設計として間違ってる
>>718 Unlockerでファイルハンドルを握っているプロセスを確認できる
エクスプローラの変なアドオンが握っている気もするがな
つか、ディレクトリのハンドルはどうやって取得してんの?
APIで取得しています
自分でつかんでるからできないのでは
知らないならレスしないで下さい。ウザイだけです。
ってリネームじゃなくて更新日時か。更新日時は通常0にしないと操作できんべ。
って代用だけど解決策あったけど
>>737 がうざいから書くのやめた
知らないなら言い訳しないで下さい。ウザイだけです。
741 :
デフォルトの名無しさん :2008/11/11(火) 13:52:27
知らない奴に限って
>>739 みたいな事を言うよね。このクズは絶対にわかってないとおもうw
そうやって答えを引き出そうとしても無駄だよ。
無駄なことが好きらしいから、そっとしておいてやれ。
>>687 とウザイ言ってるのは別の人か。
ヒントやるよ、MFCのCFile::SetStatus()じゃ無理。
static関数の方ね
これから変えようとしているディレクトリを そのアプリケーションがカレントに設定してるんじゃまいか? なんかのプロセスがカレントにしてると作成/更新日時を変更できないのは確認した
748 :
デフォルトの名無しさん :2008/11/11(火) 15:54:52
知らないなら言い訳しないで下さい。ウザイだけです。
まだいるのかよ、お前はこのスレからも世の中からも必要とされてないんだよ。
>>745 > FILE_FLAG_BACKUP_SEMANTICS
何が偉そうに「ヒントやるよ」だよw
そんなのググってすぐに見つかるしMSDNのCreateFile見れば書いてある事じゃん
知らないのに無理しなくていいよ。必死すぎて痛々しい。
知らないならレスしないで下さい。ウザイだけです。
知らない奴に限って
>>750 みたいな事を言うよね。このクズは絶対にわかってなかったとおもうw
753 :
デフォルトの名無しさん :2008/11/11(火) 17:13:00
知らないなら言い訳しないで下さい。ウザイだけです。
>>732 いや、クリック減るし、これは流行ると思う。
クイック起動並の快適さ。
>>754 マウス操作しか考慮していないアプリはゴミ
>>687 はFILE_FLAG_BACKUP_SEMANTICSは知ってるんじゃね?
ディレクトリのハンドルは取得できてるみたいだし
なんで考慮してないってことになるんだろう・・・
マウスホバーでメニューはいいが、 MOUSEMOVEでピョコピョコ出てくるのはウザいな。速攻設定Off
>>758 別にピョコピョコ出るわけじゃないけど。
きちんとポップアップする領域を設定してあげれば使いやすいと思うよ。
それなら画面の四隅にマウス持っていったらメニューが出るようなのでいい ランチャーとかでよくあるだろ
よし、最近ショートカット覚えるのも面倒になってきたし おれもチャレンジしてみる!
おれもチャレンジしてみる!
じゃあおれもチャレンジしてみる!
つーかメニューはこの方式でも問題ない気がしてきたよ。 いちいちクリックさせるのって、そのうち旧式UIという認識になるんじゃないかと。
タスクバーを自動的に隠すクイック起動でいいじゃん
僕がピョコピョコです。
>>760 あーOffice付属の糞ツールにそういうのあったな
墨占有されると邪魔なんだよな
>>764 16x16程度の小さなアイコンがずらずら並んでる通知領域でみんながこんな方式を採用したら相当ウザイと思うが
てか通知領域って操作性悪すぎるよなー
解像度が低いとタスクバーが狭くなるし解像度が高いと相対的にアイコンが小さくなるし
通常右端にあるから、階層の深いサブメニューが右に左に出るし
タスクトレイの自アプリのアイコンにカーソル合わせるだけでも イラつくのに、その上クリックさせるなんて拷問だよな
タスクトレイ使うのをやめればいいんじゃね?
>>769 Googleの個人情報収集好きは今に始まった事ではないだろ
タスクトレイにマウス乗っけると出るチップヘルプの情報あてにしてるので、 あの時点でメニュー出るのはどうかな。 右クリックと左クリックで違う機能のも多いし、まだ操作を統一するのは無理か。
>>769 それはアプリの作りの問題じゃないかと。
>>771 おれいつもかちゅ〜しゃとか全画面で開いてるから、
空いてる場所がタスクバーしかない。
タスクトレイが快適になるならいいと思うよ。
ユーザーの好きな方法でインターフェイスにアクセスできるなら どこに何を置こうがポップするイベントがどんなだろうが関係ない
まあ利便性を追求したと思ったら結局はプログラマの一人よがりだったりする罠。 Vistaさん。
>>770 カーソル合わせてもボコらない昔のツールバーがそんな感じ。
ホバーさせるほうが難しそう
>>769 Googleのプログラマは優秀なはずだよね
するとこれは仕様通りってことか。だれだこんな仕様にしたやつぁ
782 :
デフォルトの名無しさん :2008/11/11(火) 19:23:54
>>781 だからなんなんです? 知らないならレスしないで下さい。ウザイだけです。
783 :
デフォルトの名無しさん :2008/11/11(火) 19:42:02
>>782 そんなこと主張するだけにレスしないで下さい。ウザイだけです。
質問です 拡張コンボボックスの背景色を変更するにはどうやればいいのでしょう? 普通のコンボボックスではWM_CTLCOLORSTATICやWM_CTLCOLORLISTBOXに応答すれば出来たのですが 拡張コンボボックスでは送られてこないようです
作者乙
どういたしまして
今までC++でコンソールで動くソフトを作っていましたが、このプログラムをそのままAPIで使えますか? coutとかは変えないといけないと思いますが・・・
> このプログラムをそのままAPIで使えますか? こんな出鱈目な表現してる人には移植は無理だと思う
Win32APIといえばよかったです・・・
「コンソールで動くソフト」というのがDOSの16ビットアプリなのかWin32CUIアプリなのかにもよる 用語を正しく使って説明し直しましょう。
知らないならレスしないで下さい。ウザイだけです。
793 :
792 :2008/11/11(火) 21:35:13
誤爆
>>791 VS2008で作ってるCUIなんですが・・・
このプログラムをそのままWin32APIで使えますか? に修正しても意味分かりません
TCHARをchar型に変換するにはどうしたらいいの?
>>796 それマジで言ったん?ソースあんならすぐ出せ
マジなら2ちゃんねら総力を上げて潰すが
ワイド文字でぐぐれ
>>797 総力ってお前誰だよ
今ふと思ったが
妙に「ねらー」とか「2ちゃんねら」とか言うの多いな
なんつうかν速慣れしてなそうな感じの
>>795 例えばwaveファイルを読み込む関数があってfunc.cppに本体を記述、func.hにヘッダが書いてあります。
func.hをインクルードしてWinMainから読み込む関数呼び出したら正しく動きますか?
読み込む関数内ではcoutとか使ってるんですが・・・(allocation error!とかを表示)
>>ALL-1 書き込まないで下さい。ウザイだけです。
>>800 うまいなー
韜晦の仕方っていうか、もうこれ忍術じゃね?
ここで質問していいことじゃないかもしれないけど、フォトショップってこれでつくれるの?
どれですか?
>>796 #ifdef UNICODE
wsprintfA(c,"%ls",t)
#else
wsprintfA(c,"%hs",t);
#endif
796の書き方では、変換元が文字列かどうか断定できない。 単体の文字かもしれないでしょ。
const TCHAR* src = _T("あ"); char* dest = string_cast<char*>(src); printf("%s\n", dest); こういうの作りたいけどまあ無理か CT2AやT2Aがイマイチ気に食わないんだよな・・・ (とか言いつつ使ってるが)
CT2Aとか使っているなら、ATLが使えるはずだ。 #include <stdio.h> #include <atlbase.h> #include <atlstr.h> int main() { ATL::CString s = _T("あ"); ATL::CStringA d = static_cast<ATL::CStringA>(s); printf("%s\n", static_cast<const char*>(d)); }
いやまあそうなんだけど
OLEとかもここでいい?
スレタイよんでくれないか
すまなかった。邪魔したな。
スレタイからしてありだと思うぞ、程度にもよるが。
.NET → .NETスレへ ActiveX → 知らん OO4O → DB板へ ODBC → DB板へ COM → VBスレへ OLE2 → 知らん DirectX → ゲ製板へ ---------------------このスレのボーダーライン OLE → どうなっても知らんぞ Shell関係 ComCtl Win32API これでいい?
>>816 そういう指標がテンプレにあると楽だね。
誘導も兼ねてるし。
>COM → VBスレへ 馬鹿?
>>818 じゃあどこよ?
おれはCOM関係はいつもVBの達人に聞いてるよ
COMがVBとか頭悪すぎだろ そんな奴が無理に仕切ろうとしなくてもいいよ
>820&皆 夜遅くにthx。IEスレに書いてきた。 良かったら答えてやってくれ。
525 2008/10/12(日) 14:12:10 526 2008/11/12(水) 03:01:30 過疎ってるスレだな・・・
age忘れたのは致命的かもしれんなw
こっちも過疎ってるんだからここでもいいと思うんだがなw
ダメだよ
Windows 7のDirect2DとかDirectWriteはどこでやることになるんだろうな。 Direct2Dはともかく、DirectWriteはDirectXスレではないと思うが。
DirectWriteスレが立つだけだろ
いったい何がどうして移行できないのか
APIゴリゴリ書きながらライブラリ作りこむの楽しいです(^q^)
楽しくねーよ
知らないならレスしないでください。
何時間もかけてヘッダをちまちまマネージ型に書き直すのは嫌だお><
心中お察しします
所詮.NETなんてWin32APIのラッパーじゃん シェル関連とかもライブラリ用意されてないの多いし、2.0になるまでテーマAPIすら使えなかった VB時代からずっとそうだが基本的にこの手のクラスライブラリは有り物で素早く開発したい場合にしか向かない 複雑なソフトほどWin32APIオンリーで作った方がかえって楽だからな
所詮.NETなんてWin32APIのラッパーじゃん シェル関連とかもライブラリ用意されてないの多いし、2.0になるまでテーマAPIすら使えなかった VB時代からずっとそうだが基本的にこの手のクラスライブラリは有り物で素早く開発したい場合にしか向かない 複雑なソフトほどWin32APIオンリーで作った方がかえって楽だからな
あえて問おう。 それは大切なことか?
.NET が (or/and OO が) よく理解できなかった
>>839 にとっては。
所詮.NETなんてWin32APIのラッパーじゃん シェル関連とかもライブラリ用意されてないの多いし、2.0になるまでテーマAPIすら使えなかった VB時代からずっとそうだが基本的にこの手のクラスライブラリは有り物で素早く開発したい場合にしか向かない 複雑なソフトほどWin32APIオンリーで作った方がかえって楽だからな
大切なことだとしても3度言うほどじゃない
.NETを否定されると即反論してくる奴ってどこのスレにもいるよなw 宗教みたいで気味悪いぜ
所詮.NETなんてWin32APIのラッパーじゃん シェル関連とかもライブラリ用意されてないの多いし、2.0になるまでテーマAPIすら使えなかった VB時代からずっとそうだが基本的にこの手のクラスライブラリは有り物で素早く開発したい場合にしか向かない 複雑なソフトほどWin32APIオンリーで作った方がかえって楽だからな
所詮Win32APIなんて.NETのラッパーじゃん WPF関連とかもライブラリ用意されてないの多いし、未だにSendMessageとかアホかと Win16時代からずっとそうだが基本的に思考停止したオッサンが開発したい場合にしか向かない 複雑なソフトほどWin32APIオンリーで作ったらかえって危険だからな
.NETを否定されると即反論してくる奴ってどこのスレにもいるよなw 宗教みたいで気味悪いぜ
間違った認識に突っ込みたいだけじゃないかな スルー汁
.NET教徒は.NETが他の如何なる言語やクラスライブラリより優れてると言って貰えるまで気が済まないからな スルー汁
スルー汁
「スルー汁」って何?
クズが最近覚えた言葉を使いたがる そういうことだ
バグの無い効率の良いプログラムが効率よく書ければWin32APIだろうと.NETだろうとどこぞのライブラリだろうと構わんのだけどな。 所詮は手段でしかないし。
>>854 じゃあ、あなたにはこのスレは不要ですね。
どうぞお引取りください。
857 :
デフォルトの名無しさん :2008/11/12(水) 16:04:04
>>852 「Throughしろ」が変化して「Throughしる」になった
汁おじさんが元祖w
今日リリースビルドしたVCprojのexeがぴったり1Mになったので祝ってくれ
デフォだと4096バイト単位でアラインされるからそんなの別に珍しくないだろ
うそーん?プロジェクトのオプソはリンクするライブラリ以外いじってないからたぶんデフォだ・・・
でかすぎじゃね?
[ロリ動画](無修正)小学生しおり10才・りえ11才・めぐみ12才・後半乳首を舐めあってレズってます.mpg
謎の文字列でくれ
お互いのチクビをなめあうって事は、上四方固めの体勢か
知らないならレスしないで下さい。ウザイだけです。
所詮Win32APIなんて.NETのラッパーじゃん WPF関連とかもライブラリ用意されてないの多いし、未だにSendMessageとかアホかと Win16時代からずっとそうだが基本的に思考停止したオッサンが開発したい場合にしか向かない 複雑なソフトほどWin32APIオンリーで作ったらかえって危険だからな
868 :
デフォルトの名無しさん :2008/11/12(水) 19:42:12
867 名前:デフォルトの名無しさん[sage] 投稿日:2008/11/12(水) 19:41:20 所詮Win32APIなんて.NETのラッパーじゃん
.NETを否定されると即反論してくる奴ってどこのスレにもいるよなw 宗教みたいで気味悪いぜ
大切なことだとしても何度も言うほどじゃない
あえて問おう。 それは大切なことか?
後半でキスだけ?
糞 ス レ
以上が「.NET信者に構うとスレが荒れる」法則です
.netは入れてあるけど.netがないと動かないソフトは何があっても使わない
別にかまわんけど スレに書くほどのことじゃなくね? オナニーして寝ちまったほうがいくね?
.NETは重い。フォーム一つ出すだけでWin32の数千倍もの時間がかかる。 しかもクラスライブラリが糞。劣化Java+糞VBランタイムの焼き直しでしょあれ。 結局、アンマネージコード無くては屑ソフトしか作れない。 しかも事実上Windows専用(それもXP以降とか)。さすが独占企業。
∬∬∬ 人 ⊂ ⊃ ⊂ ⊃ ∽ プ〜ン ⊂__⊃
>>876 このように、少しでも否定されるとすぐさま反論してきます
彼らは一日中Win32APIスレに張りついているのでしょうか
いや、いいんだけど、 やってることはWin32APIスレを破壊することなんだが
>>827 Direct2DとかってせめてVistaでも使えるようにしてくれれば
よかったのに・・・正直浸透する前に別のものになったりして
消えそうで怖い・・・
VistaもWDDM1.1にアップデートされれば使えるようになるだろ する予定はあるって言ってるし
絶対になくならないのがWin32APIのいいところ
Direct2Dと聞いて「DirectDrawなら95時代からあったじゃん。何を今更・・・」と一瞬思った俺
いままでのはDirectじゃなかったんですね?
その記憶はドローしました
888 :
718 :2008/11/13(木) 00:16:39
書き込み以来来てませんでしたが、 久しぶりに来て見るといろいろと助言が。ありがとうございます。 一応、自分でいろいろと試行錯誤を繰り返し、 フォルダの時間を変更する事はなんとかできるようになりました。 1 CreateFileを使ってハンドルを取得 2 持ってる時間(CTime)のSystemTimeをFILETIMEに変換 3 SetFileTime関数を用いて変更 CreateFileの引数をいろいろいじると変更可能になってました。 時間が変っていうのはあるものの、なんとな成りそうです。 ちなみに…、煽ったりしてるのは自分ではないですよ。
別にかまわんけど スレに書くほどのことじゃなくね? オナニーして寝ちまったほうがいくね?
> CreateFileの引数をいろいろいじると どうしたら可能になったのか書かないからオナニーなんだよ
エクスプローラで、フォルダに対して画像を貼りつけることが できます。 あれを自作のプログラム側で実行したいのですが、実装方法が まるでわかりません。 何かAPIが用意されているのでしょうか?それともレジストリを シコシコいじるしか方法はないんでしょうか?
「フォルダに対して画像を貼りつける」の意味が分からないんだが。
Paint.netは使ってる
>>892 知らないならレスしないで下さい。ウザイだけです。
画像じゃなくてもファイルだったら何でも貼り付けれるじゃん
エスパーじゃなくて普通だろ お前の頭が悪すぎるだけ
フォルダ(ウィンドウ)に対して(背景に)画像を貼りつけることができます。
この程度なら文脈で判断できるよなw
>>897 は日本人では無いみたいだ
↓荒れる原因となるレス
Since I'm not a Japanese, I don't know what he wants to say.
普通にフォルダアイコン右クリックで貼り付けかと思ったorz
俺は、mspaintで画像切り取ってエクスプローラにペーストできる機能のことかと思ってた。
コスモポリタン以外はレスを(ry
>>881 Vistaにはバックポートされると思う。多分。
WPFがあるのに何でまた新しいAPIを増やすのだろう
既存のOSにない新機能を追加しないと買い替えが進まないから
新機能を追加したところでそれを使ったソフトが増えない事にはねぇ・・・ 個人的に、XPのシェアを考えるとOSのサポートが終了まで切り捨てできないと思うから ほとんどのソフトはそんなの使わないと思うよ だってWin9xのサポート終了するまでUnicodeアプリなんてほとんど無かったでしょ
それは関係ねーよ。 未だに馬鹿外人の作ったコードはマルチバイト文字ばっかりだぜ。
国籍も関係ないんじゃw
関係あるよ シェアがそれなりにあるOSはそう簡単には切り捨てられないということ (UnicodeアプリにするとWin9xで動かないからね) 例えばWindows2000なんかはシェアが低いからメインストリーム終了と共に続々と切り捨てられてる
マルチバイト文字ばっかりならいいじゃないか
>>910 そりゃ1バイト圏のプログラマは普通は1バイト圏で使う事しか想定していないからだろ
だからわざわざUnicodeビルドする必要も無い
マルチバイトで困ってるのって実は日本ぐらいじゃないの? そもそもShiftJISでバックスラッシュが0x5cにあるのが問題な訳だし、 それ以外はあまり大きな問題ではなかろう
MFCなら、ちゃんとソースを書いておけば、既存のプロジェクト設定をコピー して、「_MBCS」の代わりに「_UNICODE」を定義したビルド設定を作成する だけで、MCBS(シングルバイト)環境用と、ユニコード環境用のバイナリを いとも簡単に生成することができる。 xxxxAとかxxxxWという関数の使い分けは、全部マクロやフレームワークが 面倒見てくれる。 いまだにSDKでしかプログラムを書けない、C++はできると言うのに、(C++ で書かれたソース付きの)MFCは判らないとか文句を言う、似非グラマが 多数いる。 別にSDKで書いてもいいが、メッセージループを廻していなくて、時間が 掛かる処理でウィンドウの描画が止まってしまうとか、勘弁してほしい。
> メッセージループを廻していなくて、時間が掛かる処理でウィンドウの描画が止まってしまう MFCプログラマって時間が掛かる処理でメッセージループを廻すという古臭い発想を未だに持ってるの? 普通スレッド立てるだろ・・・
マスゴミが公共事業を無駄とか言ってる国でモノが売れるわけねーだろ
>>915 自分で文字列処理とか書いたことない人?
マルチバイトは文字通り途中で切れるのが大変だろ。
>>919 つ CharNext/CharPrev
昔VCでDoEventsという関数を作っている人がいて失望した
サ変活用のある日本語らしい考え方じゃないか。
>>922 そのレスから察するにDoEventsを知らないようだな。
>>922 知らないならレスしないで下さい。ウザイだけです。
>>920 そういう関数があること自体、マルチバイトの問題があるってことなわけで。
>>925 CharNextW/CharPrevWもありますが何か?
微妙にイミフだったんだけど >別にSDKで書いてもいいが、メッセージループを廻していなくて、時間が >掛かる処理でウィンドウの描画が止まってしまうとか、勘弁してほしい。 これってもしかして時間がかかるループ内はPeekMsgやDispatchMsg呼べって話?
ふと気になって調べてみたが XPSP3ではCharNextWはサロゲートペアを無視だな
俺はShellExecuteExを1回呼ぶだけでもスレッド作って丸投げだな。
UnicodeビルドすればCharNextW/CharPrevWは不要と思ってる奴は
結局
>>914 が言う1バイト圏のプログラマと発想は同じ
>>931 Vistaでもサロゲートペアは無視するらしいぞ
CharNextAのプログラムを無理やりUNICODEにするのに エスケープとしてCharNextWとか使ってるだけだろ サロゲートペアなんか気にするなら初めからUNICODEで書けってこった
utf32を使えば、現時点では、サロゲートペアは不要。 そしてC++0xに入る。 VC10では実装されないが。
937 :
891 :2008/11/13(木) 12:07:44
>>896 エスパーな返信をいただいたところを申しわけないですが、違うんです。
エクスプローラでフォルダのプロパティ画面を出して、「カスタマイズ」タブを
選択します。
その中の「フォルダの画像」−「ファイルの選択...」ってのをやるとフォルダ
アイコンの中に特定の画像を貼り付けることができます。
これをプログラム側から設定したいのですが、方法がサッパリわからん
です。
何かAPIが用意されているのでしょうか?
ということを聞きたかったのです。(省略しすぎですみません)
それってesktop.iniじゃねえの?やっぱり いまさらだがMSもini使ってるのな未だに
esktop.ini
Vistaって隠しファイルを表示する設定だと デスクトップにiniが出てきちゃわない? しかもユーザー用とAll User用と二つ。 あれはひどい
指示通り、隠しファイルを表示しただけなのに この言われ様。
保護されたオペレーティングシステムファイルも表示するようにしないと、表示されないなw
ゴミには自分の設定した事の意味なんて分からないんだろうな
いや、XPまではデスクトップ上のdesktop.iniは表示されなかったでしょ。 もちろんエクスプローラ等で掘っていけば表示されるけども。
いや、表示されるから。
XPだとデスクトップには出なかったな
XPでもdesktop.iniを作成してフォルダオプションで表示するように設定すれば表示された Vistaと同じ挙動
何か、でっかいちんぽをしゃぶりたくなってきた
tnok禁止
>>917 スレッド立ててもメッセージループ廻してもいいけど、そのどちらも
やっていない有名ソフトは数多い。
例えば、評判が悪いウイルスバスター(更新処理中)とか、Mozilla
Thundirbird(メール受信処理中)とかな。
Thundirbirdに至っては、メール受信中は、ウィンドウのサイズ変更や
移動、最小化/最大化といった操作さえできない。 細かなバグはとも
かく、Netscape 4.0の方がずっとマシな造りだった。
他にも、ファイルのドラッグ&ドロップ操作でこれを取り込んでリスト
ビューに追加する処理なんかをメッセージループを廻さずにプライマリ
(GUI)スレッドに書いていると、数百個のファイルをまとめてドラッグ&
ドロップすると、動作環境の性能にもよるけど数十秒間まったく無反応
になる。
スレッド使うのはいいが、SDKで組むような連中は、スレッドが終了 しても、スレッドの使ったメモリ領域の解放処理とかちゃんとやって なくて、1回でリークするメモリ量はわずかだが、ある操作でスレッドが 生成されるたびに、どんどんメモリ減っていくとかよくあるな。
メール受信でDB弄ってるときに下手に操作されるより UIばっさり止めておいたほうが安全確実なんだよ。
知らないならレスしないでください。ウザイだけです。
>>953 それならせめてモーダルダイアログで受信中ですって表示するだけでも、随分と印象が違うと思う。
>>951 俺はThundirbirdを使ったことがないが、 Thunderbirdならきっちりマルチスレッドで動作してるぞ?
なに? 不思議ちゃん?
>>953 > メール受信でDB弄ってるときに下手に操作されるより
> UIばっさり止めておいたほうが安全確実なんだよ。
その割りにメールの概要ファイルがたまに壊れるんですが?(w
あと、初期のNetscape 2.0か3.0頃にあったバグで、受信したメールを
1件ずつ消せば、サーバーを消し損ねても重複して受信するメールは1件
で済むのに、最初にサーバー上のメール件数を取得してforループで
メール受信した後、まとめてサーバー上のメールを消しているらしく、
メール受信中に通信が途切れると、受信済みのメールがサーバーに残っ
てて、同じメールを受信しちゃうんだな。
Netscape 4.xでは直っていたバグなのに、なんとThunderbirdで復活
している。(w
未読が数百件あってこれをやられるとつらい。 しかも受信開始ボタン
はあっても、キャンセルボタンがない(Netscapeはあった)ので、タイム
アウトするか全部受信を終わるまで止められない。
あとメールをスレッド毎のツリー表示できるが、参照元のメールにジャ
ンプできるボタンが無くなってるし、複数インスタンス起動して、ウィン
ドウを並べて別のメールフォルダを表示したり、ダブルクリックでメール
本文を別ウィンドウで複数表示したりといった、Netscape 3.x/4.xでは
普通に可能だったこともできない。
アイコンがフルカラーなくらいで、プログラム的な中身の造りは、むしろ
チープという印象。
なんでこんなソフトが世界的に高評価なのか理解に苦しむ。
スレと関係ねえ
企業製品から暇人プログラマの道楽になったんだから当たり前だろ
>>958 オープンソースなんだからお前が直せばいいだろ
.netを悪く言うと信者が荒らしに来る、というのはわかった
.net(笑)
ホントだな・・・ スレと無関係な話題を振ったりして全力で潰しにかかってくるようだ
.netを知らない奴が偉そうに.netを否定するからだ 分かったら二度と.netの悪口は言わないこった
知らないならレスしないで下さい。ウザイだけです。
.netを知らないならレスしないで下さい。キモイだけです。
.netの話題は出さないでください。ウザイだけです。 Win32APIの話題だけお願いします。
知らないけどレスします。ウザくて上等です。
>>514 >>663 >>682 >>831 どうやらスレの後半になってくると.netの話題を振りたがる奴がいるみたいだな
Win32APIで.netの話題なんか出したら荒れる事ぐらい分かってるだろうから確信犯か
そろそろ次スレが必要なので ●持ちの賎民はアップをお願いします
賎民て、
ローカル版のMSDNライブラリより検索が早く 関連項目のまともなヘルプはどこにあるかご存知ありませんか? 昔delphiについてたwin32apiのヘルプはとても重宝しました あれに似たものがあるとうれしいのですが
VC++6.0に付いてたHtmlHelp版が一番良かった 誰か、 オンライン版MSDNのhtmlを根こそぎダウンロード →不要なJavaScriptやCSSなどを削除して軽量化 →HTML Help Workshopへ突っ込んでジャンル別にchmを自動生成 してくれるスクリプトでも書いてくれ
検索ならsite:msdn.microsoft.comでググるのが速い。
>>977 が出来上がったら、CHMプラグインつけてGoogleデスクトップするのが良さそうな気がする。
正直Document Explorerは改悪だと思う
Silverlightのヘルプはchmでも配っているのが助かるw 俺が見るのは基本的にchmの方だな。
VisualStudioと言語のヘルプでいいのに 10G以上もあるMSDNを入れさせるのが害悪だろ
>>981 インストール時に要らないやつのチェック外せよ。
10GBの内訳はほとんど全部ドキュメントのはず。
>>981 高々10GBぐらい入れなよ。
自分の体はメタボなのにHDDはダイエットってへんじゃね
高々10GBw 大容量化の弊害w
どうせ最近は開発環境だってデカいのだから「高々10GB」じゃないの? VC6の頃なんてIDE+SDKのみだと100MB程度だったが。
現場では未だにVC5だったり
別にいいんじゃね?
別にいいよな
そうかな?
別にいいよ?
別にいいですよね?
いやどうだろ?
993 :
デフォルトの名無しさん :2008/11/14(金) 15:20:10
FindDirstFileとFindNextFileで "*.*" をキーにしてディレクトリの中身を総ざらいするとき . .. がひっかかってしまいますが、これを検索にかからないようにする方法はあるのでしょうか? 最初の2つの結果を捨てたらいいかなーとか思ってるんですが、 あまりスマートじゃない気がするので…
if( filename[0] == '.' ){ ここでやる }
逆だったばかぶたどじうんこ if( filename[0] != '.' ){ ここでやる } これでいいだろ?
どうかな
残念ながら.から始まる普通のファイルを作成可能なのでそれではダメだ。 まあ、Unix系のアプリぐらいしかそんなもん作らないが普通。
そしたら2つみちゃえよもう
>>993 >あまりスマートじゃない気がするので…
でも、それしかない。
>>998 もちろん、それしかない。
1000 :
デフォルトの名無しさん :2008/11/14(金) 15:34:03
レスどうもです。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。