Win32API質問箱 Build120©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net
2015/04/09(木) 18:16:02.24ID:Rhj0QTuK■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build118
http://peace.2ch.net/test/read.cgi/tech/1407006123/
Win32API質問箱 Build11 (119らしい)
http://peace.2ch.net/test/read.cgi/tech/1418181169/
0002デフォルトの名無しさん
2015/04/09(木) 18:16:46.84ID:Rhj0QTuK0003デフォルトの名無しさん
2015/04/09(木) 18:30:18.88ID:V62mLZFy0004デフォルトの名無しさん
2015/04/09(木) 22:23:50.28ID:rJtjnWq00005デフォルトの名無しさん
2015/04/10(金) 00:25:10.63ID:hFniQxdaWindowsXP
0006デフォルトの名無しさん
2015/04/10(金) 00:31:07.08ID:JpfDZLA20007デフォルトの名無しさん
2015/04/10(金) 01:48:29.89ID:jthFc1120008デフォルトの名無しさん
2015/04/10(金) 09:16:30.09ID:V6osEzljそれともタスクバーなりデスクトップなりからツールを立ち上げるつもりなのか
0009デフォルトの名無しさん
2015/04/10(金) 17:49:05.02ID:TAiFPTdhでも・・コンパイルできませんよ??
わたしが直したところが悪かったのかなって思って、
前すれ>>969でコテの人が書いてくれたコードをそのまま直さないでコンパイルしてもfatal errorって。
どういうことですか><
0010デフォルトの名無しさん
2015/04/10(金) 17:51:02.10ID:sPfz1KCP死ね
0011デフォルトの名無しさん
2015/04/10(金) 20:10:23.65ID:AgT+3q87条件1 アドレス1 xx & アドレス2 yyならLeftDownでyyをzzに
条件2 アドレス1 xx以外 or アドレス2 zz以外になったらLeftUp
なのか
条件1から条件2になるまでLeftDownのままなのか
その他なのか整理してレスしてみ
0012デフォルトの名無しさん
2015/04/10(金) 23:10:56.92ID:tcwpax/F場合によっては正規処理をキャンセルして独自処理を実行させたいです。
ひと通りフック系は調べてみたのですが、該当するものが見つけられず。。。
(shellexecutehooksだとexplorerからフォルダを開く際に拾えなかったです)
何か方法ありましたら教えていただきたく。
0013デフォルトの名無しさん
2015/04/10(金) 23:26:32.09ID:TAiFPTdhありがとうございます。でも、どうにか自分で出来ました。
コンパイルが通らなかったのはコードの最後の中括弧を見落としてコピーし忘れていたからでした。
>>10
ごめんなさい。これで最後にするので許してください><
答えてくれた人達ありがとうございました。特にコテの人。
もし、また来る事があったらよろしくです。
0014デフォルトの名無しさん
2015/04/10(金) 23:31:40.76ID:UXaEjvcwMSDNで.NET Framework クラス ライブラリは日本語でも資料が充実していて
サンプルソース(といっても全体ではないですが)も載っていますが、
WinSDKに関しては例えば調べたい関数の詳細については載っていても
探し方が悪いのかサンプルソースが見当たらず...
やはり書籍などを購入するのが良いのでしょうか?
0015デフォルトの名無しさん
2015/04/10(金) 23:33:54.86ID:WBKzV1HP俺も知りたいです。
https://support.microsoft.com/ja-jp/kb/310749
>再解析ポイント: プログラムは、ファイル システム内のオブジェクトに対するオープン操作をトラップし、
>ファイル データを返す前に独自のコードを実行します。データの読み取りし、を別のボリュームまたは
>物理フォルダーからの書き込みをリダイレクトすることができます、マウント ポイントなどのファイル システムの
>機能を拡張するこの機能を使用することができますディスクです。
0016デフォルトの名無しさん
2015/04/10(金) 23:36:11.49ID:WBKzV1HP猫のサイトとかWisdomSoftとかあるだろ。
グーグルで検索すればすぐ見つかるのに、何故それをしない。
0017デフォルトの名無しさん
2015/04/10(金) 23:41:12.31ID:UXaEjvcw一応既に猫のサイトは一通り勉強させてもらいました
(ちなみに猫でもわかるwindowsプログラミングは全部写経したんですが笑)が
肝心のMSDNでサンプルソースを探そうとしても
.NETのほうは実際に動くソースが載っているのにWinSDKのほうは
探し方が悪いのかサンプルがなかなか見つからないんですが...(何故
0018デフォルトの名無しさん
2015/04/11(土) 00:10:08.75ID:j7Y/pu4pそれはAPIからの方向じゃなくて
エクスプローラの機能拡張でどこまでやれるかという話じゃないの
それともイベントを受ける側は別のアプリなのかしら
0019デフォルトの名無しさん
2015/04/11(土) 00:12:40.07ID:j7Y/pu4pMSDN の外の野良解説を探せばたくさん出てくる
ちなみにMSDNの方の日本語訳はかなりひどいので英語版で確認すべき
0020デフォルトの名無しさん
2015/04/11(土) 00:22:34.50ID:dDVvge2WということはMSDNにWinSDKの方のサンプルがあまり載ってないのは
仕様ということなのでしょうか
確かにMSDN外の野良解説はたくさんありますし詳しいですよね
やはり調べたい情報が欲しい場合はWinAPI関連の書籍を購入するのが
一番良い方法でしょうかね。
002112
2015/04/11(土) 00:24:33.46ID:rd1rB1JO元々は別アプリでイベントを監視できるかと考えていたのですが、
方法がなくエクスプローラーの機能拡張の方向でも調査しておりました。
結果的に挙動を実現できればどちらでも問題はなかったのですが、
何分手詰まり感があり参っております。
(所謂ファイラーなどはフォルダに関連付けて自アプリを開いたりしているので、
実現は可能だと思ってはいるのですが。。)
0022デフォルトの名無しさん
2015/04/11(土) 00:28:13.50ID:LbK5Z9ysC:\Program Files\Microsoft SDKs\Windows\v7.1\Samples
0023デフォルトの名無しさん
2015/04/11(土) 01:16:34.56ID:yiXu9fzw>>1 > APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう
とあるが実際には読まなくてもそこらへんのHP色々見て断片的な情報を自分なりに繋げれば本無くても実現は出来る
0024デフォルトの名無しさん
2015/04/11(土) 02:51:15.30ID:j7Y/pu4p通して体系的に理解するなら書籍がいいけど
やりたいことが具体的にわかってるならネットで検索するのが早い
ただし blog の落書きに近い奴は前提が噛み合わなかったりするからそこはきちんと確認
0025デフォルトの名無しさん
2015/04/11(土) 07:13:27.27ID:6QBeTfwQ自分で言ってる通り
フォルダーウィンドウ内でフォルダアイコンをダブルクリックorEnterキー押下した場合は
関連付けが発動するだけだわ
独自関連づけをデフォルトにしておいて
自分で処理しないときはIShellBrowserなりIExplorerBrowserなりICommDlgBrowserなりに開かせる
もしくは泥臭い方法だけどキーとマウスにフックしかけちゃう方向もある
QTTabBarとかがそんな処理してそう
0026デフォルトの名無しさん
2015/04/11(土) 10:04:13.49ID:ijD8XqjAIExecuteCommandを実装したCOMを作ってシステムに登録して
HKEY_CURRENT_USER\Software\Classes\Folder\shell\open\command
のDelegateExecuteにさっき作ったCOMのGUIDを登録する
フォルダを開こうとするとIExecuteCommand::Executeが呼ばれるので好きにする
0027デフォルトの名無しさん
2015/04/11(土) 10:19:13.12ID:dDVvge2Wぼちぼち頑張ってみます
0028デフォルトの名無しさん
2015/04/12(日) 02:47:00.25ID:sQ6L0dTFSS_BLACKRECTって効いてなくないか?
vs2010expressのwin32プロジェクトで出て来るWinProc関数んとこに
case WM_CREATE:
hStatic = CreateWindow(
TEXT("STATIC"), NULL ,
WS_CHILD | WS_VISIBLE | SS_BLACKFRAME |SS_BLACKRECT ,
0,200, 200, 200,
hWnd, (HMENU)3,
((LPCREATESTRUCT)(lParam))->hInstance , NULL
);
とやっても黒枠は出るが塗りつぶしがされないのだ。
教えてくん。
0029デフォルトの名無しさん
2015/04/12(日) 12:20:53.11ID:SDNlNHK70030Office & Gamers ◆G144Hzgh2.0e
2015/04/12(日) 12:23:36.12ID:kx9iDNgY0031デフォルトの名無しさん
2015/04/12(日) 12:49:27.67ID:y8PA+brmこのページではちゃんと表示されているみたいだけど。
SS_BLACKFRAMEとは一緒に指定できないんじゃね?
それぐらい試したよね?
003228
2015/04/12(日) 17:33:06.50ID:sQ6L0dTFもっといろいろ試してみまふ。
>>30
プログラム板なんて五年ぶりくらいなんでインデントが消えることも忘れてたすまん。
コード自体はどっかの入門サイトのコピペなんであたしゃしらん。
>>31
SS_BLACKFRAMEをつけてるのはSS_BLACKRECTもちゃんと黒のはずってことを示すためでした。
教えてくんでゴメンネ
0033デフォルトの名無しさん
2015/04/12(日) 20:49:44.98ID:2B83nDoZ#define SS_BLACKFRAME 0x00000007L
0034デフォルトの名無しさん
2015/04/12(日) 22:13:22.82ID:8ClUnIS/後々他の色もできるように
WM_CREATE: hbrush = CreateSolidBrush(color);
WM_CTLCOLORSTATIC:
if((HWND)lParam == hwnd) {
return hbrush;
}
WM_DESTROY: DeleteObject(hbrush);
の方がいい気がする
0035デフォルトの名無しさん
2015/04/12(日) 23:52:09.97ID:y8PA+brm0036教えて君
2015/04/14(火) 08:02:18.57ID:XDZ3Jlf4タスクバーアイコン(16x16)の表示がオカシくて困っています。
・使用OSはwindows8
・コンパイル直後1回だけは正しくタスクバーアイコンは表示される。
・その後exeを立ち上げるとアイコンが全然別のものが表示される。
・WNDCLASSEXのhIconSmやLoadImageを試してみたが改善されず。
・brc32をやめbrcc32にしresファイルをilink32してみたが改善されず。
・windows8の.dbキャッシュを削除したりブートで起動したりしたが改善されず。
・.dbキャッシュは空で作成したり読み取り専用や隠しファイルにしたが改善されず。
・MAKEINTRESOURCEやLR_DEFAULTCOLORやIMAGE_ICONを設定してみたが改善されず。
困っています。windows8の問題なのかbcc5.5.1の問題なのか解る方。
或はこのような質問と解答のあるスレ、サイトを知っている方教えて下さい。
0037アイコンキャッシュ 化ける win32api(教えて君)
2015/04/14(火) 08:28:46.97ID:XDZ3Jlf4MAKEINTRESOURCEをやめ、w.hIcon=LoadIcon(i,"ICO");でちゃんと表示されるようになりました。
0038:アイコンキャッシュ 化ける win32api(教えて君)
2015/04/14(火) 08:40:36.11ID:XDZ3Jlf40039デフォルトの名無しさん
2015/04/14(火) 09:41:47.32ID:85cAVwi8hIconにLoadIconすればいいんじゃないの
0040デフォルトの名無しさん
2015/04/14(火) 09:45:05.20ID:85cAVwi8SetClassLong(hWnd, GCL_HICON, (LONG)LoadIcon(hInst, MAKEINTRESOURCE(IDI_Ico)));
これでもダメなら、リソースに入ってないかリソースIDが何かと重複してると思う。
0041教えて君
2015/04/14(火) 10:19:18.90ID:XDZ3Jlf4windows8のアイコンキャッシュがおかしいんだと思います
0042教えて君
2015/04/14(火) 10:21:20.90ID:XDZ3Jlf40043デフォルトの名無しさん
2015/04/14(火) 10:26:59.03ID:58Lr8u5B他の何百何千というプログラムは正常に表示できている状況で
そう考える事ができるというのは驚きである。
0044教えて君
2015/04/14(火) 10:27:17.93ID:XDZ3Jlf40045デフォルトの名無しさん
2015/04/14(火) 10:27:19.64ID:FfurPzHR/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < んなーこたーない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. |
0046教えて君
2015/04/14(火) 10:29:22.03ID:XDZ3Jlf4ちなみに他のアプリは正常に表示されています。
0048デフォルトの名無しさん
2015/04/14(火) 10:33:30.22ID:jz1OLtV7vs2013使ったら?条件付で無料じゃなかったかな?
0049デフォルトの名無しさん
2015/04/14(火) 10:49:59.76ID:85cAVwi8なんかちゃう。定義の方を見て。
#define ICO_xxx 100
とかなってるはずだが、数字部分が他の定義と被ってるかもって書いた。
でもまあ、単にリソースがリンクされてないだけだと思うけど。
0050教えて君
2015/04/14(火) 11:11:54.58ID:XDZ3Jlf4サイズ最適化がわかんないんですよね。MinGWもgcc入れて専用のコマンドプロンプトみたいなのでパス設定とか
わけがわからくて使ってないんですよね。(連続投稿に引っ掛かってしまいました)
>>49 数字も1008にしてみましたがだめでした。
ちなみにLoadImageのLR_DEFAULTSIZE| LR_SHAREDもだめでした。
0051デフォルトの名無しさん
2015/04/14(火) 11:17:53.68ID:85cAVwi8あとはそのアイコンがそもそも、アイコンなのかどうか。アイコンとしての条件を満たしてるかどうか。
0052教えて君
2015/04/14(火) 11:22:11.60ID:XDZ3Jlf416x16がちゃんと入ってます。
0053アイコンキャッシュ 化ける win32api(教えて君)解決!
2015/04/14(火) 11:27:05.03ID:XDZ3Jlf4モノクロbmpでアイコンを作っていましたが、24bit bmpでアイコンを作り直すと
各箇所に正しく表示されました。
0054デフォルトの名無しさん
2015/04/14(火) 20:57:08.74ID:y/I7sbAhResEdit危険インストーラから同意ボタンで広告表示アドウェア感染被害?
http://blogs.yahoo.co.jp/fireflyframer/33222019.html
0055デフォルトの名無しさん
2015/04/14(火) 21:43:13.39ID:IRWLYaw5ResEditはもう完全に悪意のあるソフトウェアだよ
VSが無料になった今RedEditの必要性は皆無
0056デフォルトの名無しさん
2015/04/14(火) 21:58:42.50ID:8TR3GPc6また、そのエラーメッセージを、他のアプリより閉じる手段は、どのようなものがありますか?winndowを列挙してSendKeyするしかないのでしょうか?
0057デフォルトの名無しさん
2015/04/14(火) 22:04:06.57ID:4FPwD7PAttp://peace.2ch.net/test/read.cgi/tech/1418181169/261
> ResEditインストール注意点
> ・最初にいくつか広告が入りDeclineが小さく表示されている
> ・インストール先を指定できずルートにインストールされる
> 1ページ目 ttp://i.imgur.com/9qn75TR.jpg
> 2ページ目 ttp://i.imgur.com/HBajxao.jpg
> 3ページ目 ttp://i.imgur.com/Bowds3d.jpg
> 4ページ目 ttp://i.imgur.com/irH6Wx1.jpg
> 5ページ目 ttp://i.imgur.com/DIVwXN3.jpg
> Declineを押していれば広告のインストールはされないので
> 検索で出てくるAdwareという指摘は勘違いや思い込みに過ぎない
0058デフォルトの名無しさん
2015/04/14(火) 22:26:05.39ID:IRWLYaw5もうこの時点でインストーラとしての体をなしていない。マルウェア
0059デフォルトの名無しさん
2015/04/15(水) 19:38:08.96ID:jr652CyUprintf("左クリックを離さないでください\n")と表示させたいんですが
どうすればできますか><?
0060デフォルトの名無しさん
2015/04/15(水) 20:00:09.63ID:rSJ1Mqrvつまり離さないのはクリックとは呼ばない
0061デフォルトの名無しさん
2015/04/15(水) 20:08:55.02ID:OBp2TzOF0062デフォルトの名無しさん
2015/04/15(水) 20:33:46.75ID:YYpYNbny0063デフォルトの名無しさん
2015/04/15(水) 21:02:00.70ID:e7criVwjクライアント領域限定か
+ ウィンドウ領域含むか
+ 領域外も含むか
どれだ?
0064デフォルトの名無しさん
2015/04/15(水) 21:04:56.43ID:jr652CyUじゃあ訂正して、マウスの左ボタンを押下 って言うことにします!
>>61
GetAsyncKeyStateでどうやるんですか??
キーが押されてるか、押されてないかを検出できても
離された瞬間って検出できないですよね?
0065デフォルトの名無しさん
2015/04/15(水) 21:13:51.39ID:jr652CyU対象とするプログラム上で、マウスの左ボタンが離された瞬間を検出したいので、
たぶん、クライアント領域です。?
0066デフォルトの名無しさん
2015/04/15(水) 21:19:37.85ID:e7criVwj>>62
0067デフォルトの名無しさん
2015/04/15(水) 22:08:38.93ID:pxhrK6tLWM_LBUTTONUP:は簡単に実装するなら正解
GetAsyncKeyStateでもできるが?GetForegroundWindowとか組み合わせがいるかもな。
押したときにフラグ立てて、離されたときにフラグが立ってるか見て判断すればよかろうint bLeft=0;
void OnTimer(){
if(GetForegroundWindow() == hMyWnd) // 自分のウインドと判別
if(GetAsyncKeyState(VK_LBUTTON)) bLeft=1; else if(bLeft){
bLeft=0;
// 離された直後の処理(クリックと一緒)
}}
0068デフォルトの名無しさん
2015/04/15(水) 22:11:36.84ID:jr652CyUWM_LBUTTONUP ってだけ言われても意味がわかんないです。
if (GetAsyncKeyState (WM_LBUTTONUP)){
printf("左クリックを離さないでください\n");
動かないじゃないですか><
0069デフォルトの名無しさん
2015/04/15(水) 22:36:15.69ID:jr652CyUerror C2601: 'OnTimer' : ローカル関数の定義が正しくありません。
error C2065: 'hMyWnd' : 定義されていない識別子です。
error C2065: 'bLeft' : 定義されていない識別子です。
error C2065: 'bLeft' : 定義されていない識別子です。
C2065: 'bLeft' : 定義されていない識別子です。
何をすればいいですか?
0070片山博文MZ ◆T6xkBnTXz7B0
2015/04/15(水) 22:57:12.19ID:Be/6smJnC言語とWin32APIの基礎がなっていない。「イベント駆動」と「ウィンドウプロシージャーの書き方」を勉強する必要がある。
WM_で始まる定数はウィンドウメッセージであり、ウィンドウプロシージャーで処理する。
0071デフォルトの名無しさん
2015/04/15(水) 22:57:29.11ID:MncDCMB00072デフォルトの名無しさん
2015/04/15(水) 23:02:46.06ID:Q1p7nIrk0073デフォルトの名無しさん
2015/04/15(水) 23:23:12.58ID:e7criVwjメイン関数はmainかWinMainかどっち?
0074デフォルトの名無しさん
2015/04/15(水) 23:40:48.45ID:YYpYNbnyこんな感じ。
http://codepad.org/Zk27gysv
0075デフォルトの名無しさん
2015/04/16(木) 00:01:32.25ID:niirhvYMUpがどこにも表示されません><
ってくるぞw
0076Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 01:15:58.27ID:sQiZAhF+んじゃついでにマルチスレッドの書き方についても論じてくれw
0077デフォルトの名無しさん
2015/04/16(木) 01:46:02.12ID:r89rtGYR前スレで書いてくれたコードあるじゃないですか?
それに>>67のLEFTUP検出を追加しようとしてるんですが>>69が出てできないんです。
プロシー?を覚えれば解決するんでしょうか? がんばります。
だけど、まだC入門書のIF文やってるところですけど・・
>>73
int mainです。
>>74
複雑すぎて何してるのかよく分かりません><
>>67みたいな感じでGetAsyncKeyState使ってシンプルにしたいです
0078デフォルトの名無しさん
2015/04/16(木) 02:06:00.46ID:1cAUYc2L007967
2015/04/16(木) 04:55:33.87ID:xHp1mspF#include <windows.h>
int main(int argc, char * argv[]){
bool bLeft=0;HWND hMyWnd =GetForegroundWindow();
while(1){if( hMyWnd == GetForegroundWindow()){
if(GetAsyncKeyState(VK_RBUTTON)) break; // マウス右ボタンを押したら停止
if(GetAsyncKeyState(VK_LBUTTON)) bLeft=1;else if(bLeft){bLeft=0;
printf("左クリックを離さないでください\n");
}}Sleep(30);}return 0;}
0080Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 06:30:00.49ID:sQiZAhF+while( hMyWnd == GetForegroundWindow())でいいんじゃないの?w
while(1)がムダw
0081デフォルトの名無しさん
2015/04/16(木) 06:43:05.17ID:niirhvYMそんなネタ投下して楽しい?
0082Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 06:53:11.05ID:sQiZAhF+#include "stdafx.h"
#include <windows.h>
int main(int argc, char * argv[])
{
bool bLeft=0;
HWND hMyWnd =GetForegroundWindow();
while( (hMyWnd == GetForegroundWindow()) && !GetAsyncKeyState(VK_RBUTTON))
{
if(GetAsyncKeyState(VK_LBUTTON))
bLeft=1;
else
if(bLeft)
{
bLeft=0;
printf("左クリックを離さないでください\n");
}
Sleep(30);
}
return 0;
}
0083Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 06:59:10.65ID:sQiZAhF+プログラムが汚いとダメw
プログラムが汚いとダメw
プログラムが汚いとダメw
プログラムが汚いとダメw
プログラムが汚いとダメw
0084デフォルトの名無しさん
2015/04/16(木) 07:00:02.73ID:niirhvYM0085Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 07:01:19.02ID:sQiZAhF+0086デフォルトの名無しさん
2015/04/16(木) 07:35:59.21ID:GQj/zmtf008767
2015/04/16(木) 07:41:32.80ID:xHp1mspF初心者が読みやすいように、あえてwhile(1)のループにして、必要な処理は、if文で分岐するんだぜ!
と理解しやすく例題つくってみたんだが、式で省略して複雑にしてどーするww
69の質問する人の理解力で、while内で&&や、!とか書かれても混乱するだけじゃね?
switch(msg){case WM_LBUTTONUP:}が分かりませんだぞ?
0088Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 08:23:26.48ID:sQiZAhF+それなら
loop:
goto loop;
の方が見やすいだろw
0089デフォルトの名無しさん
2015/04/16(木) 08:24:58.79ID:kE101whD(笑)
0090Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 08:43:08.53ID:sQiZAhF+0091デフォルトの名無しさん
2015/04/16(木) 12:32:20.77ID:6zGepQEU0092デフォルトの名無しさん
2015/04/16(木) 16:47:32.48ID:tXtzH4xOwhile(1) と書いているプログラマにいじめられたのか
Cのプログラマってなんか文系タイプが多いよな
なんかのアンチにすぐになるという
だれそれのやっている何かが憎いから新しく何かをやるという感じの奴
プログラミングをやっても結局頭が良くならないんだろうな
普通プログラミングを継続するとだんだん理系思考になってそういうのが冷めてくるはずだが
0093デフォルトの名無しさん
2015/04/16(木) 16:54:10.38ID:r89rtGYR勉強不足なのは分かってます。。追々学んでいきますが、
今作ってるのだけはすぐ完成させないと不味いんです。
元ソースの原型は前すれ>>969のやつです。
このソースの文末に>>79さんに教えてもらったGetAsyncKeyStateのサンプルを
くっつけたんですがコンパイルエラーいっぱい出ます><
Sleep(30);}return 0;} を消したらエラー無くなったですけど
プログラムがヘンになりました・・。
これが終わったら本格的に勉強して、
初歩的な事聞かなくても大丈夫にするので、
今回だけお願いします。助けてください><
0094Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 17:04:28.31ID:djFvfTCc0095Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 17:05:48.79ID:djFvfTCc0096Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 17:11:09.35ID:djFvfTCc0097デフォルトの名無しさん
2015/04/16(木) 17:11:52.61ID:ktYqo1R50098Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 17:12:29.59ID:djFvfTCcフツーにgoto文付ければいいんだよ♪(アハ♪”
0099デフォルトの名無しさん
2015/04/16(木) 17:34:45.27ID:DUQ4ImO1応答無しのソフトのウィンドウハンドルからGetWindowRectとかしても普通にOKが返るので
何かそういうの判別するAPIないですかね
0100デフォルトの名無しさん
2015/04/16(木) 17:41:28.20ID:YCHaL8K8まず「落ちてる」って何?
どういう状況を指しているの?
>応答無しのソフトのウィンドウハンドルからGetWindowRectとかしても普通にOKが返るので
そりゃ応答無しってのはメッセージキューの処理がなんらかの理由で止まってしまっているから起こる。
だからメッセージキューとは無関係に処理されるものは当然応答がある。
0101デフォルトの名無しさん
2015/04/16(木) 17:55:22.50ID:GQj/zmtf0102デフォルトの名無しさん
2015/04/16(木) 17:55:31.72ID:DUQ4ImO1知らないならレスしないで下さい。ウザいだけです。
0103デフォルトの名無しさん
2015/04/16(木) 18:14:53.68ID:VRneRw3s0105デフォルトの名無しさん
2015/04/16(木) 18:58:43.65ID:Wbz2Z132Meiryoを使っていますが、英語圏のWindowsでは、どうなりますか?
Meiryoが入っているんですか?それとも他のフォントに置き換えられるんですか?
もし、置き換わるのでしたら、何に置き換わりますか?
その置き換わったフォントは、アンチエイリアスが効いていますか?
そもそも、置き換わるのでしたら、その置き換わり先のフォント名を元から指定しておけば、
日本語の場合はMeiryoに置き換わって日本語も綺麗に表示されたりしますかね。
どうなんですか?
0106デフォルトの名無しさん
2015/04/16(木) 21:22:35.75ID:niirhvYMいま自分が書いてるソースをここにでも上げてみて
ttps://ideone.com/
010767
2015/04/16(木) 23:21:43.69ID:xHp1mspF969のは、すでに完成しているので、仕様変更は知識があれば簡単ですね。
>>93
チート系ツールを他人に作らせようとするのはどうかと思うのだけれど?
この板はチート系ツール作成板ではありません。
時間がないとかそういうのは、あなたの勝手な都合を板の住人に押し付けないでもらえる?
あなたは、まずは、基本を学びなさい。
今の段階で、コピペでプログラム組むとか、なにかと間違っていると思うのだけれど?
WINDOWSのシステムや、ロジック、Win32APIの意味を理解して、ちゃんと設計してからプログラム組なさい。
0108Office & Gamers ◆G144Hzgh2.0e
2015/04/16(木) 23:26:14.26ID:djFvfTCc簡単なものを難しく見せようとするのが間違いw
0109デフォルトの名無しさん
2015/04/16(木) 23:53:11.47ID:r89rtGYR0110デフォルトの名無しさん
2015/04/17(金) 00:04:49.02ID:u6kt2Ektやましい事がないのなら言えると思うから教えて
LEFTUP検出時に何をするのか
0111Office & Gamers ◆G144Hzgh2.0e
2015/04/17(金) 00:10:29.37ID:dW7xxEmp0112デフォルトの名無しさん
2015/04/17(金) 00:17:56.88ID:8xw27FV+printfでメッセージ出した後に、
PrintScreenキーを押して画面の保存です・・
>>107
ごめんなさい。
あなたの言うとおりです。
でもちート云々はわたしが言い出したことじゃなくて
他の人が勝手に言ってることです。
今の自分じゃ調べても分からないから詳しい人に聞きたかったんです。
0113デフォルトの名無しさん
2015/04/17(金) 00:46:11.75ID:u6kt2Ekt>>11
> 条件1 アドレス1 xx & アドレス2 yyならLeftDownでyyをzzに
> 条件2 アドレス1 xx以外 or アドレス2 zz以外になったらLeftUp
> なのか
> 条件1から条件2になるまでLeftDownのままなのか
このどれか + LeftUpでスクリーンショットか
頻度によっては「覗き見」になるから自分で全てできないとな
0114デフォルトの名無しさん
2015/04/17(金) 00:46:43.27ID:8xw27FV+ソースの最後のトコ、
/* マウス操作をエミュレートする */ の部分だけ違ってて、
if (abBuffer1[0] == xx && abBuffer2[0] == yy) {
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
}
if (abBuffer1[0] == aa && abBuffer2[0] == bb) {
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
になってます。
アドレスxx,yyの値は一定時間経過後、aa、bbになるんです。
値が aa、bbになったらLEFTUPさせるんですが、
LEFTUPした瞬間を検出して、printfでメッセージを出して、PrintScreenキーを押す
って仕組みです。
知識があって簡単に仕様変更できる人に聞きたいって思うのはダメなんですか?
いちお、猫でも分かるっていうサイトの第4章やったけど
勉強すること多すぎて何からやったらいいのかわかんないです。
0115デフォルトの名無しさん
2015/04/17(金) 00:49:09.70ID:w/dpiMO4コンパイルエラーは、ソースコードの上の行から順に、
一つずつ解決していくこと
必ず上から直すこと! なぜなら、上のエラーを直すと、
下のエラーは自然に直ることも多いから
よく知らんが、VC++を使っているのなら、
IDEが左側に、電球の形をした、
解決するヒントを示してくれるのでは?
君は59の質問者かね?
誰が書いているのかわかりにくいので、
名前欄に、59と最初のレス番号を入れろ
そもそも素人が、Win32APIを直接使うのは無理。
WM_LBUTTONUP などのGUIのメッセージも知らないんだろ?
画面のイベントを知らないなら、画面を作れない
0116デフォルトの名無しさん
2015/04/17(金) 00:54:50.78ID:u6kt2Ektif (abBuffer1[0] == aa && abBuffer2[0] == bb) {
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
// ここでメッセージを出して同様にPrintScreenを押す
}
じゃダメなん?
0117デフォルトの名無しさん
2015/04/17(金) 01:16:12.40ID:w/dpiMO4error C2601: 'OnTimer' : ローカル関数の定義が正しくありません。
error C2065: 'hMyWnd' : 定義されていない識別子です
.h の拡張子はヘッダファイルで、このファイルに型宣言を書く。
.c, .cpp の拡張子は実装ファイルで、このファイルに定義を書く。
実装ファイルで、関数名や変数名などの識別子を使う前に、
まずそれらの型を宣言しないと、コンパイラが型チェックできない
識別子の宣言は、以下のように実装ファイルで行うか、
型名 識別子; int a;
皆が使うような関数などは、
ヘッダファイルに型宣言してあるので、
実装ファイルの冒頭で、以下のどちらかで、
ヘッダファイルをインクルードする
標準ライブラリのヘッダファイルなら、#include <ファイル名.h>
自分で作ったヘッダファイルなら、#include "ファイル名.h"
まあ、こんな初歩的なことも知らないのに、
プログラミングは無理。まず本を読め
011867
2015/04/17(金) 01:28:19.13ID:GgWweP1wプリントスクリーンねぇ。。それだけで済みそうにないと思うんだが。
PS後の画像をファイルに保存とか、PSの画像と、保有する画像が一致したら、
マウスクリックとかそういう処理増えていったりするんじゃね?
知らんけど。
C言語の入門や、WindowsのAP関連の入門サイトを初めから読み飛ばさず基礎から勉強するか、
仕様をちゃんと固めて、2000円払って、MZの人に続きを作ってもらえば、あっさりできちゃうかもよ?
ここの板は、こういうことできるAPI知りませんかー?っていう質問する板だと思うのだけれど?
0119デフォルトの名無しさん
2015/04/17(金) 01:54:23.92ID:6/UQT6bn0120デフォルトの名無しさん
2015/04/17(金) 01:55:56.45ID:w/dpiMO41つ教えると、バグが3つ出て、
そのバグ1つについて教えると、またバグが3つ出る
何かを教えても、それを知らないから、
またそれについて教えなければならないので無理
まず本などで、基本的なことは習得してからやらないと、
結局、他人に聞いても理解しないまま、進めていくので、
また繰り返し聞いてくる。時間の無駄
答えを聞いても無理なんだよ。
その通りにしても、新たなバグが出るから、
そのバグをまた修正しても、また新たなバグが出る
答えではなく、なぜなのか理由を聞け!
そしてその理由がわからなければ、
わかるレベルまで、さかのぼって勉強せよ。
何が・どこがわからないか、言えるようにせよ。
急がば回れ!
じっと本を読んで、力を貯めよ!
結局、その方が速くて、高品質
0121デフォルトの名無しさん
2015/04/17(金) 02:23:16.87ID:w/dpiMO4if (abBuffer1[0] == aa && abBuffer2[0] == bb) {
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
3秒間、スリープする
printfで、メッセージを出力する
PrintScreen キーを押す(キーイベント)
}
0122デフォルトの名無しさん
2015/04/17(金) 04:10:17.30ID:NAku5IxHRichEditコントロールのFINDTEXTメッセージに渡すものとして、ググるとFR_DOWNや
FR_MATCHCASEなどなどが出て来るのですが、おいらの環境VS2010 Expressについてきた
SDKのヘッダファイル....Microsoft SDKS/Winodws/v7.0A/Include/Richedit.h
には定義されてません。当然コンパイルエラーが出ますしVSにも赤線引かれて怒られます。
なにか別な方法でも出来ているのでしょうか。
0123デフォルトの名無しさん
2015/04/17(金) 04:12:32.55ID:NAku5IxH// Additional EM_FINDTEXT[EX] flags
FR_MATCHDIAC
FR_MATCHKASHIDA
FR_MATCHALEFHAMZA
0124デフォルトの名無しさん
2015/04/17(金) 04:19:31.06ID:6/UQT6bnCommDlg.h
なお、単にインクルードするだけでいいのかは知らない。
0125デフォルトの名無しさん
2015/04/17(金) 05:41:11.87ID:GgWweP1wvs2015だけど、grepしたらこんなとこにあったよ。
Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\CommDlg.h(585): #define FR_MATCHCASE 0x00000004
たぶん、この2つ追加でいいんじゃないかな?
#include <commdlg.h>
#pragma comment(lib,"comdlg32.lib")
0126デフォルトの名無しさん
2015/04/17(金) 07:09:06.75ID:u6kt2Ekt同じの使ってるけど
c:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\CommDlg.h
ここにあったよ
フラグだけなら#pragmaは無くていいみたい
0127デフォルトの名無しさん
2015/04/17(金) 10:03:57.26ID:8xw27FV+済みます! 絶対にこれ以上処理は増えないです。
スレには"Win32APIについての質問はこちらへどうぞ"って書いてあります。
使い方について聞いてもいいじゃないいですか・・。
>仕様変更は知識があれば簡単
ってことは
67の人はマウス離した瞬間を検出して、PrintScreenキーを押す、ってわたしには難しいことが、簡単にできるんですよね?
知識が十分なのにこのスレに居るって事は誰かを助けるために来てくれてるんですよね?
演習用のじゃなくて、ちゃんとしたプログラム作るのはこれが初めてなんです。
元はほとんどコテの人のコードだけど、それでも、最初って肝心じゃないですか?
最初に上手くいかないとやる気なくなります。
逆に最初のプログラムが出来ればめっちゃやる気出てたぶん勉強も捗ります。
ソース上げてみてって言ってくれて、コードまで読んできてくれたんですよね?
それなのに・・見捨てないでください><
>>121
mouse_eventの後に処理をさせるだけなら聞かなくても出来ますしapiスレに来ません。
わたしが出来ないのは"Win32API"のGetAsyncKeyStateを使って、
マウスの左クリックを離した瞬間を検出して、その処理を実行させることです。
無意味に見えるかもしれませんがとても重要なことです。
調べててもわかんなくて、風邪引いて、ガッコやすんだんですよ。
可哀想だと思いませんか? 思いますよね?
助け合いの精神が大切だと思います。
0128デフォルトの名無しさん
2015/04/17(金) 10:22:05.00ID:jWFJYotGMSDNのmouse_eventのページ見てればPrintScreenの押し方とかふつー聞かなくね?
0129デフォルトの名無しさん
2015/04/17(金) 10:55:29.98ID:PQTjmfWn0130デフォルトの名無しさん
2015/04/17(金) 10:55:57.65ID:95OY7iuD0131デフォルトの名無しさん
2015/04/17(金) 11:48:50.51ID:PQTjmfWn0132デフォルトの名無しさん
2015/04/17(金) 12:17:45.40ID:AqenIXcN> >>118
> 済みます! 絶対にこれ以上処理は増えないです。
> スレには"Win32APIについての質問はこちらへどうぞ"って書いてあります。
> 使い方について聞いてもいいじゃないいですか・・。
使い方は聞いてください。
しかし、
> わたしが出来ないのは"Win32API"のGetAsyncKeyStateを使って、
ここまではいいです。
> マウスの左クリックを離した瞬間を検出して、その処理を実行させることです。
ロジックの話であり、Win32APIの話ではありません。
他のスレでお願いします。
ここは貴方のスレではないのです。
0133デフォルトの名無しさん
2015/04/17(金) 12:37:09.89ID:e01JbLz60134デフォルトの名無しさん
2015/04/17(金) 12:41:38.03ID:8xw27FV+検索してますけど?
別にPrintScreenの押し方を聞きたいんじゃないんです。
それは>>110が検出時の処理を教えてって言うから書いただけです。
わたしが知りたいのは
GetAsyncKeyStateでどうやって、マウスの左クリックを離した瞬間を検出するのかってことです。
そしてそれをどうやって、↓の元ソースに組み込めばいいのか。
ttp://codepad.org/0E6iybtA
ってことです。
0135デフォルトの名無しさん
2015/04/17(金) 12:55:58.67ID:6/UQT6bn013667
2015/04/17(金) 13:25:01.19ID:GgWweP1wここの板は、「魚を与えるのではなく、魚の釣り方を教える」住人がいる場所だと思ったほうがいい。
魚の釣り方といっても、あくまでもアドバイス、それ以上でもそれ以下でもない。
住人はアドバイスしたくないと思えば教えないし、教える義務もない。
既に、あなたの知りたいコードのサンプルは板に上げられているんだから、それをコンパイルして動かす。
コピペ結合とかだめ。
上げられている数行のサンプルは、どのように動くのか考えなさい。
また、使われているAPIを一つ一つしらべ、意味を全部調べ理解しなさい。
MSDNや、Googleで検索すれば、解説はすぐに見つかる。
すべて理解できれば、結合もできる。
それでも、理解できないなら、あなたは教わる基礎知識が不足しているので、
プログラムの基礎からはじめなさい。
ここでは、WIN32APIのスレッドであって、基礎を教える板ではないことは理解しなさい。
学生なら、ブラウザーのメモリー変化を監視するプログラムを作るよりも、本業の学業を優先しなさい。
0137デフォルトの名無しさん
2015/04/17(金) 14:02:07.73ID:e01JbLz6前回のループではキーが押されていたのに今回のループでは押されていなかったときこそが離された瞬間だ
一個前の状態をメモれる変数があるといいな
0138デフォルトの名無しさん
2015/04/17(金) 14:31:40.82ID:YO6Tc0D6捗るな
0139122
2015/04/17(金) 19:53:54.07ID:NAku5IxH#include <Richedit.h>
でいろいろきちんと動作するようになりました。
どもどもでした。
0140デフォルトの名無しさん
2015/04/17(金) 23:27:18.16ID:8CLn8QdX「 ̄ `ヽ、 ______
L -‐ '´  ̄ `ヽ- 、 〉
/ ヽ\ /
// / / ヽヽ ヽ〈
ヽ、レ! { ム-t ハ li 、 i i }ト、
ハN | lヽ八l ヽjハVヽ、i j/ l !
/ハ. l ヽk== , r= 、ノルl lL」
ヽN、ハ l ┌‐┐ ゙l ノl l
ヽトjヽ、 ヽ_ノ ノ//レ′
r777777777tノ` ー r ´フ/′
j´ニゝ l|ヽ _/`\
〈 ‐ 知ってるが lト、 / 〃ゝ、
〈、ネ.. .lF V=="/ イl.
ト |お前の態度が とニヽ二/ l
ヽ.|l 〈ー- ! `ヽ. l
|l気に入らない lトニ、_ノ ヾ、!
|l__________l| \ ソ
0141デフォルトの名無しさん
2015/04/18(土) 00:11:33.12ID:d+XtVUDX所々スルーしてるレスがあるから本気で完成させたいのかが謎
0142デフォルトの名無しさん
2015/04/18(土) 00:28:13.73ID:j/wjXDDU「getasynckeystate sample code」で検索すれば?
漏れは今、JavaScriptのゲームエンジン、
enchant.js の本を読んでいるけど、例えば、
Bボタンが放された時に、発生するイベントは、
Event.B_BUTTON_UP
Win32APIにも、これによく似たイベントがあるはず
君は59の質問者かね?
誰が書いているのかわかりにくいので、
名前欄に、59と最初のレス番号を入れろ
君は、学校のPCに何かを仕掛けて、
何か悪いことをしようとしているのかね?
0143Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 00:48:00.49ID:yZFnrc/6>enchant.js の本を読んでいるけど、例えば、
ワロタw
0144142
2015/04/18(土) 01:09:29.14ID:j/wjXDDU気ちがいとしか思えんw
ましてや素人が何で、そんな難しいことをする必要がある?
今日日ブラウザで、ゲームプログラミングで十分やろ?
0145Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 01:10:48.20ID:yZFnrc/60146デフォルトの名無しさん
2015/04/18(土) 01:24:09.63ID:Pxa1HN8Fそのガイキチの住む世界を知らない斜め上なご高説w
こいつこそなんでこんなとこ覗きに来るんだろうな
0147デフォルトの名無しさん
2015/04/18(土) 01:24:41.48ID:d+XtVUDXとりあえずそいつは他スレに誤爆したり余計な事を言うだけの奴だ
興味持った人が
自分の作業を効率化させる目的で
ってのもあるでな
かゆい所に手が届く
0148Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 01:27:11.05ID:yZFnrc/60149デフォルトの名無しさん
2015/04/18(土) 09:52:22.94ID:QuJhi9bL0150Office & Gamers ◆G144Hzgh2.0e
2015/04/18(土) 11:44:37.40ID:yZFnrc/60151デフォルトの名無しさん
2015/04/18(土) 13:21:44.86ID:Slei64Ty0152デフォルトの名無しさん
2015/04/18(土) 15:13:27.56ID:j/wjXDDUの意味はこういう事かも
ループ処理 {
// 今回のキー状態を、取得する
curr_KS = GetAsyncKeyState(調べたいキー);
// もし前回のキー状態が押されていて、
// 今回、放されたのなら
if(prev_KS & 0x8000 && !(curr_KS & 0x8000)){ 処理 }
// 前回のキー状態を、更新する
prev_KS = curr_KS;
}
0153デフォルトの名無しさん
2015/04/18(土) 23:15:29.25ID:R28h8IPAループ処理に入る前に
prev_KS = 0x0000;
で初期化といた方が良いかもね
0154デフォルトの名無しさん
2015/04/22(水) 20:39:17.69ID:NZ8QzlQ5http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html
☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると日本国憲法の改正です。皆様方、必ず投票に自ら足を運んでください。
私たちの日本国憲法を絶対に改正しましょう。☆
0155デフォルトの名無しさん
2015/04/22(水) 20:43:27.62ID:AcUbjFWFなんでそんなに難しく感じるのかが理解できん
0156デフォルトの名無しさん
2015/04/22(水) 22:24:23.10ID:ugIcL2/vシンプルイズベスト
0157デフォルトの名無しさん
2015/04/22(水) 23:59:32.01ID:Op4eKru/0158デフォルトの名無しさん
2015/04/23(木) 15:10:02.80ID:atwBzKak0159デフォルトの名無しさん
2015/04/23(木) 17:23:33.80ID:E8mzZpiJ0160デフォルトの名無しさん
2015/04/23(木) 20:14:51.80ID:t7P1w7fr0161デフォルトの名無しさん
2015/04/23(木) 21:26:19.91ID:82Kg6BW/コントロールをメインウインドウに配置して、WM_SIZE:でレイアウトする関数を呼んでますが、
起動する
→レイアウトがズレている。
マウスでメインウインドウをリサイズする。
→意図したレイアウトになる。
という現象が起きて困ってます。
レイアウトのための関数をWM_SIZE:だけでなくWM_CREATE:から呼んでもダメ。
(リサイズすりゃまともになるんだからレイアウトの関数自体はちゃんとしてる。)
起動時から意図したレイアウトにならないのはどんな理由が考えられますか?
0162片山博文MZ ◆T6xkBnTXz7B0
2015/04/23(木) 21:35:17.38ID:rgdBbObhウィンドウプロシージャの第一引数使え。
0163デフォルトの名無しさん
2015/04/23(木) 21:49:51.66ID:82Kg6BW/代入されてないハンドルというのはコントロールのハンドルってことですよね。
レイアウトの関数はWndProc()の第一引数で呼んで、関数内部でGetDlgItem()を使って
コントロールのハンドルを指定してました。
それでもダメです。なんか画面全体が下にズレて配置されて下が隠れてます。
メニューとかステータスバーとかの高さぶんくらいのズレです。
0164片山博文MZ ◆T6xkBnTXz7B0
2015/04/23(木) 21:55:54.12ID:rgdBbObh0165デフォルトの名無しさん
2015/04/23(木) 22:12:40.19ID:dR4qRq190166デフォルトの名無しさん
2015/04/23(木) 22:20:13.53ID:82Kg6BW/hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
で、VS2010Expressの「Win32プロジェクト」が生成したまんまです。
あとはRichEdit(Multilineが二つ)とStaticが縦に並んでます。
0167片山博文MZ ◆T6xkBnTXz7B0
2015/04/23(木) 22:26:51.98ID:rgdBbObhあまり知られていないことだが、WM_CREATEの前にWM_SIZEが来ることがある。
0168デフォルトの名無しさん
2015/04/24(金) 00:01:17.23ID:p+NZUOcDWM_CREATE::
PostMessage(hWnd,WM_SIZE, 自分で必要なパラメータセットしてね。);を呼び出してリサイズさせるのはだめなん?
もしくは、
WM_CREATE:
PostMessage(hWnd,WM_USER,0,0); // ウインドが作られた後、すぐに処理したい場合
break;
WM_USER:
SetWindowPos(自分で必要なパラメータセットしてね。); // ウインドの位置や、サイズなどを設定しなおす(リサイズ)
0169デフォルトの名無しさん
2015/04/24(金) 00:24:45.89ID:belF3Fjqそういう意味ではC/C++って両極端すぎ。
C++は覚えることが多すぎてキツくて面白いわ。
0170デフォルトの名無しさん
2015/04/24(金) 00:26:34.57ID:l7nNbXLHいろいろどもっす。
なんか釈然とせず「空のプロジェクト」から始めて昔書いたWinMainとかを貼り付けた後
同じレイアウト関数を同じ呼び方で呼んだら普通に動き、ますます釈然としなくなりますた。
原因が分かったらまたカキコします。ちなみに
>>168さんのWM_USERでのSetWindowPosできちんと動きはしています。
なんだかいろいろもうしわけない。
0171168
2015/04/24(金) 01:22:51.93ID:vwT5rXE6ウインドが作成されてWM_USER が呼ばれるまでの間のメッセージをprintfしてみた(16進)
24,81,83,93,94,94,
1, <--- #define WM_CREATE 0x0001
18,46,46,1c,86,93,7f,7f,7f,93,91,92,92,6,282,281,7,85,93,93,91,92,92,14,47,93,5,3,f,e,7f,7f,7f,d,31f,
400 <--- #define WM_USER 0x0400
WM_CREATEが動く前に、WM_GETMINMAXINFO,WM_NCCREATE,WM_NCCALCSIZEや、
その他のメッセージが走ってるのと、WM_USERまでに、多くのウインドメッセージが動くので、
間でサイズに関して初期化時に不具合があるんじゃないかな。
何のメッセージが動いているかは、#include <winuser.h> とかと見比べればいいかも
WM_USERで、解決できたならあまり深く考えないでもいいかもだけど、がんばって。
0172デフォルトの名無しさん
2015/04/24(金) 03:05:43.50ID:cnXdh8tnウィンドウサイズは拡大されないために最下部に配置していたボタン類が
ウィンドウに収まりませんよね。
そのためウィンドウサイズの拡大が必要になりますが、メニューの高さ(フォントサイズ)
はwindowsの設定で変化しますから、この辺を考慮してウィンドウサイズを
変更する必要があると思います。
これは一々自前で実装する必要があるのでしょうか?
もっと簡単に対応する方法があるのでしょうか?
0173Office & Gamers ◆G144Hzgh2.0e
2015/04/24(金) 03:07:09.38ID:gsh3Hj5N0174168
2015/04/24(金) 03:48:08.49ID:vwT5rXE60175デフォルトの名無しさん
2015/04/24(金) 03:54:40.79ID:cnXdh8tnメニューを追加すると既存のボタン類は自動的にメニューの高さ分下に移動しますが、ウインドウサイズは変わりません。
ウインドウサイズも自動的に大きくはならないのですか?
0176デフォルトの名無しさん
2015/04/24(金) 04:33:58.09ID:xfJFJ7Nc処理が完了するまでウィンドウが動かないものとして
メニュー追加前のクライアント座標0, 0をウィンドウ座標に変える
→メニュー追加後のクライアント座標0, 0をウィンドウ座標に変える
→その差分ウィンドウサイズを変更する
じゃダメなん?
0177168
2015/04/24(金) 04:41:10.43ID:vwT5rXE6参考になるか?
ttp://sumishiro.blogspot.jp/2010/03/blog-post_13.html
0178デフォルトの名無しさん
2015/04/24(金) 05:13:29.62ID:cnXdh8tnGetSystemMetricsなどでメニューサイズの取得やSetWindowPosでのウインドウサイズの変更方法などは分かっているのですが、
最初に書いたようにダイアログベースのウインドウをリソースエディタで作成すると
メニューの有無でボタン類の位置は勝手に上下に動きますが、ウインドウサイズは変わりません。
これは、プログラムでサイズ変更するしかないのかというのが質問です。
0179デフォルトの名無しさん
2015/04/24(金) 06:13:30.70ID:vwT5rXE6vs2013の自動生成コード利用して、ABOUTBOXダイアログに、メニューの追加でサンプルを作ってみたが、
RCのダイアログって、クライアントサイズは固定で、メニュの有無で、ウインドサイズは異なるので正常だと思うが、
ダイアログのウインドサイズを固定で作りたいの?
ダイアログのクライアントサイズを固定で作りたいの?
メニューの追加って、RCのプロパティでmenuってとこで設定するようにしてるよね?
0180デフォルトの名無しさん
2015/04/24(金) 06:44:25.47ID:6TulMhAx糞仕様
0181デフォルトの名無しさん
2015/04/24(金) 08:29:32.10ID:ci039+n8「メニューの有無で」の部分をもっと正確に言わないと回答つかないのでは?
エスパーして例を挙げるなら、表示されているウィンドウにSetMenuなどで
メニューを付けてあげる場合は勝手にリサイズされないから自前でやる必要がある。
0182デフォルトの名無しさん
2015/04/25(土) 08:59:49.51ID:QgsvYozO0183デフォルトの名無しさん
2015/04/25(土) 09:06:53.19ID:QgsvYozO0184デフォルトの名無しさん
2015/04/27(月) 21:27:22.01ID:QwoO9IPFメッセージループは1つのアプリケーションに一つ?
それともそのアプリケーション内のウィンドウごとにおのおの存在するの?
0185デフォルトの名無しさん
2015/04/27(月) 21:35:52.54ID:6f9FfEFl0186デフォルトの名無しさん
2015/04/27(月) 21:39:44.80ID:eeUDpTg4ドラッグで範囲選択するときのWM_LBUTTONDOWNなどで独自にループすることもある
0187デフォルトの名無しさん
2015/04/27(月) 21:47:49.17ID:nicG1Io0そのスレッド内でGetMessageすれば新しいメッセージループが作られるけど
取り立てて役だったことはない
0189デフォルトの名無しさん
2015/04/28(火) 18:13:27.82ID:W6RHswum0190189
2015/04/28(火) 18:26:37.13ID:W6RHswum0191189
2015/04/28(火) 23:01:18.23ID:W6RHswumタッチ操作中に、マウスを動かさない方法ってありますか?
一部の処理で、マウスカーソルの位置をアプリ側で操作する処理で障害になります。
WM_TOUCHでタッチ処理をしているのですが、GetCursorPos();で調べると値が変化しています。
0192189
2015/04/29(水) 02:05:01.53ID:S40E4Ihk0193デフォルトの名無しさん
2015/04/29(水) 12:08:54.67ID:No5D67KY0194デフォルトの名無しさん
2015/04/29(水) 12:53:06.13ID:pThgOoLO0195デフォルトの名無しさん
2015/04/29(水) 13:15:05.63ID:UdtGh3gm0196デフォルトの名無しさん
2015/04/29(水) 14:16:13.91ID:No5D67KY0197デフォルトの名無しさん
2015/04/29(水) 16:24:35.52ID:1y0sk+YZDelegateExecute等から呼び出させるCOMを作成する際、既存COMの動作を
適宜実行させたい場合、どうするべきなのでしょうか。
既存COMのDLLを参照して、コクラスの継承とかが出来るのかと思いましたが、
よくわからないでおります。
HKCU\Software\Classes\Folder\shell\open\commandの場合、
ExecuteFolder(ExplorerFrame.dll)が既存アクションのようなのですが、
こいつをどう呼び出す/継承させるかがわからずにいる状態です。
(そもそもスタンスがあってるのかさえ。。)
0198デフォルトの名無しさん
2015/04/29(水) 18:05:09.67ID:lb5eDrrLIExecuteCommand IInitializeCommand IObjectWithSelection IObjectWithSite
ここらへんのインターフェイスのメソッドで正しい情報を与えてやってExecuteFolderをエミュレートすればできそうな気がするけど
面倒くさそうだから自分なら既得のsiteからIShellBrowserをQueryInterfaceして
IShellBrowser::BrowseObjectで普通にフォルダ開かせちゃうのがいいと思うがどうか
0199デフォルトの名無しさん
2015/04/29(水) 18:38:32.74ID:Bg6ZLegt10年ぶりに聞いたなw
0200デフォルトの名無しさん
2015/04/29(水) 19:59:29.55ID:Ih1x52O1メッセージループがぐるぐる開始する。
ダイアログ中のプッシュボタンをマウスで押すと
このメッセージループがWM_LBUTTONDOWNを受け
WM_LBUTTONDOWNのハンドラ中で別のメッセージループを開始する。
メッセージループはいくつある。
0201デフォルトの名無しさん
2015/04/29(水) 20:23:23.77ID:MPDoLmFP0202デフォルトの名無しさん
2015/04/29(水) 20:58:21.71ID:Bg6ZLegt0203デフォルトの名無しさん
2015/04/29(水) 21:22:01.08ID:pThgOoLO0204デフォルトの名無しさん
2015/04/29(水) 23:20:13.57ID:zwED2fT30205197
2015/04/30(木) 00:27:47.26ID:IOp/sxLAIShellBrowser::BrowseObject実装して、今のところ既存の動きを再現できました。
ありがとうございます!
IShellBrowser::BrowseObjectなんぞ知りも知らなかったので、
ここらへん辿れるようになりたいですね。
0206デフォルトの名無しさん
2015/04/30(木) 07:57:48.27ID:75MO5jun0207デフォルトの名無しさん
2015/04/30(木) 11:21:09.79ID:ztKwqMYg0x91,0x92,0x93のメッセージは何をやっているかわかりません。
Vs2015ってSpyツールありましたっけ?
0208207
2015/04/30(木) 11:23:04.24ID:ztKwqMYg0209207
2015/04/30(木) 11:25:21.36ID:ztKwqMYg0210デフォルトの名無しさん
2015/04/30(木) 13:51:06.64ID:iDcC+qzm0211デフォルトの名無しさん
2015/04/30(木) 21:45:33.01ID:acewAU+4>サンドボックス環境で動き、ネイティブデスクトップアプリの力をそのままにシステムへの影響を減らす。
>アンインストール時にゴミを残さない。ステージでは PhtoShop Elements をデモ。
サンドボックス化は歓迎だけどこんなんストアがマルウェアの万国博覧会になりそうなんだけど
0212デフォルトの名無しさん
2015/04/30(木) 22:36:39.51ID:z7JbgbHOパッケージマネージャーつけろとは前々から思っていたが
chocolatey?
おもちゃに用はないよ
0213デフォルトの名無しさん
2015/04/30(木) 22:54:56.41ID:uI857xi40214デフォルトの名無しさん
2015/05/01(金) 01:12:16.84ID:/Mtkjhpa大きいのが取得したいんだけど、どうすればよい?
ExtractAssociatedIcon と IExtractIcon を試したんだけど、
両方とも48x48が最高みたい。
256x256の綺麗なアイコンはどうやったら取得できますか?
0215214
2015/05/01(金) 01:30:39.80ID:/Mtkjhpa解決しました
0216デフォルトの名無しさん
2015/05/01(金) 16:17:44.56ID:mcLYTm8yCHARFORMAT構造体のdw.yHeightはtwip単位。
twipからpixelへの間には各環境のdpiが絡んでらっしゃると。
てことはGetDeviceCapsとかを呼んでアレコレするしかないってことなんでしょうか。
現フォントの大きさ高さをピクセル単位で保存してるプロパティ的なものって
ないんでしょうか。
昔はだいたい96dpiだったと知りましたが、実際計ってみると確かに
96dpiではおかしい大きさで表示しとりますです。
0217デフォルトの名無しさん
2015/05/02(土) 18:04:37.67ID:wQLon+fDCtrl+FunctionKeyを捕まえたいのですが、どんなメッセージ飛んでくるのですか?
0218デフォルトの名無しさん
2015/05/02(土) 18:43:22.99ID:wQLon+fD0219デフォルトの名無しさん
2015/05/02(土) 19:22:52.25ID:P8FpGVi1グローバルフック周り地味に面倒になってそうだな・・・
0220デフォルトの名無しさん
2015/05/03(日) 01:12:27.12ID:DpPxqG4cしかし、CreateWindowでtooltips_class32を指定したものをShowWindowで表示してみても影しか表示されません
何かしら抜けている手順があったら教えてください
0221デフォルトの名無しさん
2015/05/03(日) 01:20:14.65ID:DGVNwvpl0222デフォルトの名無しさん
2015/05/03(日) 08:38:00.25ID:y99enroxウインドメッセージ、WM_WINDOWPOSCHANGING:の値を書き換えたいのですが、ご教授お願いします。
0223デフォルトの名無しさん
2015/05/03(日) 10:46:37.20ID:jQdh0BE6やりたいなら対象プロセスに潜り込んでWndProcを上書きするしかない
対象プロセスに潜り込む方法はグローバルフックでもいいけどね
0224デフォルトの名無しさん
2015/05/03(日) 10:50:29.30ID:jQdh0BE6確実にWH_CALLWNDPROCではない
ジャーナル何とかだったかな
0225デフォルトの名無しさん
2015/05/03(日) 11:04:16.54ID:p3er52Mk0226デフォルトの名無しさん
2015/05/03(日) 11:47:58.30ID:y99enroxCreateRemoteThreadとか使う感じになるのでしょうか?
case SC_MOVEのタイミングで、SetWindowSubclass(p->hwnd, SubclassProc, 0, 0);だとダメでした。
自分のウインドのみは書き換えは成功していたみたいです。
SetWindowLongは試してないですが、古いAPIなので、使うと不具合ありそうですねよね?
SetWindowLongは、動作しているスレッドが違う場合ので動かないのかな?
WH_CALLWNDPROC 読み出しのみっぽいのでダメ
WH_CBT+HCBT_MOVESIZE 動かしたい内容に近いが、ダメでした。
WH_DEBUG 試してない
WH_GETMESSAGE WM_WINDOWPOSCHANGING:読み出しできず
WH_MOUSE、WH_MOUSE_LL ウインド移動ではだめっぽい。
このあたりは読みましたが…解決してないです。
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/05e13534-8964-4626-b056-06e93a2154d5?forum=vcgeneralja
0227デフォルトの名無しさん
2015/05/03(日) 11:58:39.70ID:DpPxqG4cググってもヒットしないんですが、それは何なんでしょうか?
0228デフォルトの名無しさん
2015/05/03(日) 18:17:35.43ID:LlABLTElなんか不穏な感じ
0229デフォルトの名無しさん
2015/05/04(月) 05:27:30.11ID:LYeSXt0A0230デフォルトの名無しさん
2015/05/04(月) 08:56:17.68ID:80QzrQPL0231デフォルトの名無しさん
2015/05/04(月) 09:36:46.19ID:sKsouBLL0232226
2015/05/04(月) 18:02:24.32ID:q56zhT2ASetWindowSubClassだとうまく動きませんねぇ。なんでだろ?
Win7以降向けで、CreateRemoteThreadEx+LoadLibrary で、サブクラス化のテストはしました。
XPだとCreateRemoteThreadじゃないとだめですね。
とりあえず、CreateRemoteThreadExだと、カスペル先生とかが誤動作しそうなので、
グローバルフック中にSetWindowLongのを使おうかと考えています。
ウインド移動前提で、サブクラス化した場合、
SetWindowLong(サブクラス化)の解除のタイミングは、WM_DESTROY 以外だと、
どのメッセージがよいでしょうか?
WM_EXITSIZEMOVE,WM_DESTROY で破棄コードを動かすようにはしています。
0233226
2015/05/04(月) 18:26:03.85ID:q56zhT2AなにかAPIありましたっけ?
0234226
2015/05/04(月) 18:35:31.12ID:q56zhT2ADWORD processID;
DWORD thID;
BOOL bIsWow64 = FALSE;
thID = GetWindowThreadProcessId(hWnd,&processID);
IsWow64Process(processID, &bIsWow64);
は。。64ビットめんどくさー
0235226
2015/05/04(月) 20:26:27.96ID:q56zhT2A0236デフォルトの名無しさん
2015/05/04(月) 20:58:25.12ID:VqP+6wea作っているアプリ自体が64bitっていうなら良いけど。
0237226
2015/05/04(月) 21:25:39.18ID:q56zhT2A32Bitの環境は、IsWow64Process関数が存在するかどうか調べて判断すれば。。と思ったんですが、甘いかなぁ。。
この辺り参考にしようかとは思ってますがどうなんでしょう。
http://blog.monoweb.info/blog/2009/09/13/64bit-hook/
0238デフォルトの名無しさん
2015/05/04(月) 21:53:00.00ID:MYTXHyrO事足りるんじゃないの?
0239デフォルトの名無しさん
2015/05/04(月) 23:36:23.21ID:VqP+6weaWindows XP SP2以降はこの関数が存在しているらしい。
「関数が存在していなければ32bitOS」という判断は出来るが「関数が存在していれば64bitOS」という判断は出来ない。
また実機(WindowsXP SP2)でも過去に検証済み。
MSDN
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms684139.aspx
>If the process is running under 32-bit Windows, the value is set to FALSE.
>If the process is a 64-bit application running under 64-bit Windows, the value is also set to FALSE.
そのサイトに書かれている方法は以下の文が肝。
>始めに利用者が起動するのは32bit版のプログラムです。
32bitアプリ実行環境においてIsWow64ProcessがFALSEを返すということは、ネイティブで実行されている。
逆にIsWow64ProcessがTRUEを返したならそれはWOW64の下で動いているということになる。
だから「必ず最初は32bitアプリを起動させて・・・」という方法を取れるならそのブログのようにIsWow64Processだけで判断も出来る。
>>238
result が FALSEってのがどのレベルで言っているのか分からんが
( IsWow64Processの戻り値ということなら)64bitOSで64bitアプリケーションでも IsWow64Process はFALSE を返す。
つまり32bitOSか64bitアプリなら関数はFALSEを返すので
アプリが何bitかを判断するにはOSが何bitかを知らないといけない。
0240デフォルトの名無しさん
2015/05/04(月) 23:45:54.58ID:VqP+6wea32bitアプリを作っているなら「最初に起動するのは32bitアプリ」なのは当然か。
フック対象が64bitならフックしないか、64bit版を起動させるっていうブログの方法で問題ないな。
ただ「関数が存在するかどうか」だけじゃ不十分だから気をつけてね。
0241デフォルトの名無しさん
2015/05/05(火) 00:15:04.99ID:HP7XiSqu>>240は若干訂正。
自分が32bitアプリだとしても、
・相手が32bitOSで32アプリ → IsWow64Process はFALSEを返す
・相手が64bitOSで32アプリ → IsWow64Process はTRUEを返す
・相手が64bitOSで64アプリ → IsWow64Process はFALSEを返す
OSが何bitかを知りたいだけならそのブログの方法だけでいいが、
相手が何bitかを知りたいなら組み合わせないとダメだな。
自分が32bitアプリだから、自分にIsWow64Processを使いFALSEなら32bitOSでTRUEなら64bitOS。
32bitOS環境なら相手も当然32bitアプリ。
64bitOS環境だと相手が32bitアプリか64bitアプリかの判断が必要なので相手もIsWow64Processで調べる。
FALSEなら64bitアプリ、TRUEなら32bitアプリ。
「動いているアプリの」ってのが相手のことならこうしないとダメだな。
あとは相手が64bitアプリならフックしないか、64bitアプリを立ち上げてフックするか。
0242デフォルトの名無しさん
2015/05/05(火) 00:55:10.80ID:JPFk61nlint a = 0xffffffffffffffff;
でなぜ警告がでるの?
0243デフォルトの名無しさん
2015/05/05(火) 01:08:32.87ID:WXcigvGrintを32ビットで扱っているから
整数型のサイズはCPUのビット数に合わせなければならない
とかいう規定があるわけではない
shortのサイズ以上であればintが2048ビットでも
24ビットでもそれはコンパイラの自由なんだよ
0244デフォルトの名無しさん
2015/05/05(火) 01:16:06.47ID:q10zsNFn0245デフォルトの名無しさん
2015/05/05(火) 01:21:24.52ID:AH7UBQjvsizeof(int) がいくつになるか試してみたら
0246デフォルトの名無しさん
2015/05/05(火) 05:07:51.68ID:V9xQwQO9マウス入力などを遮らないアニメーションをデスクトップ上に表示したいんですが
0247デフォルトの名無しさん
2015/05/05(火) 09:29:14.26ID:8cBYwRXK0248226
2015/05/05(火) 09:29:18.47ID:20DP2R/2サンキュー助かります。
最初に32ビット版で起動して、64ビットOSであれば、
64ビット版を起動して、ウインド情報を調べてフックするようにするつもりです。
実行ファイル2つと、DLLが2つになるのは仕方ないですね。
メモリー共有って32ビットと64ビットの混合ってできましたっけ?
32ビットウインドと64ビットのウインド間のメモリー共有って
CreateFileMappingでできるのかな?
SendMessage(WM_USER や WM_COPYDATAでやりとりしたほうがいい?
0249デフォルトの名無しさん
2015/05/05(火) 10:51:06.10ID:V9xQwQO9ありがとうございます
確かにAeroの処理を考えるとダブルバッファリングが必須ですね
よく考えたらやりたいこととダブルバッファリングはあまり関係がありませんでした
すでに知っているのはGetDC+BitBltで書き換えるやり方ですが、
描画した画像の下に無効リージョンが発生すると
勝手に塗り直されてちらつきが発生するのでそれを防ぐ方法が知りたいです
デスクトップの内部バッファが後は反映するだけというところまで描画を終える
↓
そこにすかさず割り込んで表示したいアニメを描き足す
↓
その後OKサインを送ったらようやく実際にデスクトップが描画される
具体的に書くときっとこういう流れになると思うんですが、特に真ん中を実現するためのAPIがあったら教えてください
0250デフォルトの名無しさん
2015/05/05(火) 10:59:46.29ID:qvOIJ9mb0251226
2015/05/05(火) 11:04:35.43ID:20DP2R/2自分でダブルバッファーしてるんであれば、あとはやることといえば、NULLブラシの設定くらいか?
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);を
wcex.hbrBackground = (HBRUSH)NULL;にしてみたら?改善しないか?
0252デフォルトの名無しさん
2015/05/05(火) 11:17:14.87ID:kyGf+mJm0253デフォルトの名無しさん
2015/05/05(火) 11:21:04.64ID:V9xQwQO9これが実現できるならダブルバッファリングは一回で済むんじゃないかと思います
自分ではウィンドウは作らずにデスクトップに直描きしたいってことです
理由は最前面になっている他のウィンドウを非アクティブにしたくないのが一つと
カーソル下にウィンドウがあるときにマウス入力が遮られて邪魔になるのが一つ
(例えばスタートボタンの上に画像が被さっていても意に介せずホバーやクリックの反応をしてほしい)
協力してくださってありがとうございます
0254226
2015/05/05(火) 11:24:14.70ID:20DP2R/2LPDATA pData = MapViewOfFile(hShare, FILE_MAP_WRITE, 0, 0, sizeof(MyShareData));
32/64ビット間のメモリー共有ですが、特にコードいじることなく共有できました。
0255デフォルトの名無しさん
2015/05/05(火) 12:56:34.32ID:kyGf+mJmデスクトップのハンドルからプロシージャのアドレス得て>>252だけ捕まえるとか
0256226
2015/05/05(火) 13:46:31.14ID:20DP2R/2デスクトップの直書きって、WM_PAINT直後に描画するてこと?
試してないけど、デスクトップのウインドハンドルをフックしたとして、
WM_PAINTを先に描画させて、任意の画像を上からBitBltとかする感じかな?
普通にちらつきそうではあるが。。?
0257デフォルトの名無しさん
2015/05/05(火) 14:07:36.70ID:q10zsNFn0258デフォルトの名無しさん
2015/05/05(火) 14:39:05.37ID:3fPyNIFJwm_paintのendpaintの直前に描画命令を割り込ませられれば。。。あるいは。。。
0259デフォルトの名無しさん
2015/05/05(火) 16:58:43.47ID:PARG4dys0260226
2015/05/05(火) 18:36:30.71ID:20DP2R/2これ通るか不明ですが。
case WM_PAINT:を動かす時って、通常、hdc = BeginPaint(hWnd, &ps);EndPaint(hWnd, &ps);がセットですよね?
と、いうことは、hWndのhdcの値を任意の情報に書き換えられれば、バッファリングできるかもしれないですよね?
だめで元々と思ってください。
予め、自分のウインドハンドルに、hdc=GetDC(hWnd);でHDC取得して、 バッファに、SelectObject(hdc,hMyBmp);で関連付けしておく
それと、ダブルバッファ用のメモリーDC(myDC)を作っておく
んで、GetDesktopWindow() とか必要に応じて、グローバルフック+サブクラス化して、 WM_PAINTの本来受け渡す、HookPrc( hWnd,rParam,lParam); のhWndを書き換えてバッファリングして描画するっていう方法はどうでしょうか?
case WM_PAINT:
myWndDC =GetDC(hMyWnd); // 自分のウインドハンドルのDCを取得
// myBmpはCreateCompatibleBitmapで本来のhWndのDC, 所属のhBitmapなどからサイズとか取得したほうが良いと思う
hdc =GetDC(hWnd);myBmp = 略;ReleaseDC(hdc);
oBmp=(HBITMAP)SelectObject(myWndDC,myBmp); // myWndDCにバッファ用のビットマップをセット
// 先に描画、描画対象を自分のウインドのhDCに描かせることが成功すればチラツキは抑えられるはず?
HookPrc(hMyWnd,wParam,lParam);
hdc = BeginPaint(hWnd, &ps);
BitBlt(myDC,略,myWndDC,略); // 背景として、本来の描画内容をmyDCに転送(バッファリング)
SelectObject(hMyDC,oBmp); // 本来のビットマップに戻す
ReleaseDC(hMyWnd, myWndDC); // リリース
DeleteObject(myBmp); // myBmpを破棄
FillRect(myDC,略)など // ここで自分で上書き描画
BitBlt(hdc,略,myDC); // 実際のウインドに描画する
EndPaint(hWnd, &ps);return 0;
0261226
2015/05/05(火) 18:38:32.93ID:20DP2R/20262デフォルトの名無しさん
2015/05/05(火) 23:47:02.11ID:V9xQwQO9とても親切に説明していただいて恐悦至極です。ありがとうございます!
BeginPaintが返却するhdcを自分のメモリDCに挿げ替えるなんてのは思いつかなかったので非常に参考になりました
背景, アニメABCDコマがあるとすると(背景はGetDC(NULL)で取得できる内容そのもの)
1, 背景が描画される(表示状態:背景のみ)
↓
2, Aコマを描画する(表示状態:背景+Aコマ)
↓
3, 次のコマを表示するために背景を再描画させる(表示状態:背景のみ)
↓
4, Bコマを描画する(表示状態:背景+Bコマ)
となり、AコマとBコマの間に一瞬だけ背景のみの状態になることがちらつきの原因と思われるので、
1と2,3と4を同一のタイミングで描画するための何かしらの方法を探していましたが、
皆さんの書き込みを拝見する限りではBeginPaintやEndPaint等のAPIフックが必須っぽいので、
それで試して上手く行かなかったらそのときは諦めようかと思います
ありがとうございました
0263デフォルトの名無しさん
2015/05/06(水) 22:24:13.55ID:OlUhBFHFMessageBoxIndirectを使ってダイアログを表示する際に、例えば
IDCANCELボタンを表示すると、日本語Windows7なら[キャンセル]、
英語Windows7なら[Cancel]と表示されますが、それをOSの言語と関係無く
自分で好きな文字列を指定して表示させたいのですが、どうやっても
出来ません。どうにかして出来ませんか?
0264デフォルトの名無しさん
2015/05/06(水) 22:35:05.51ID:ROM3ZfOK(1)自分でダイアログを自作する。
(2)メッセージボックスをフックする。
0265デフォルトの名無しさん
2015/05/06(水) 22:46:36.25ID:OlUhBFHFレスありがとうございます。
(2)の方法でやりたいのですが、どうすれば自作のcallback関数に
置き換えられるのか分りませんでした。
0266デフォルトの名無しさん
2015/05/06(水) 22:51:27.95ID:ROM3ZfOKSetDlgItemText
0267デフォルトの名無しさん
2015/05/06(水) 22:55:01.18ID:lk9KI/EaLRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode == HCBT_ACTIVATE)
{
HWND hWnd = reinterpret_cast<HWND>(wParam);
0268デフォルトの名無しさん
2015/05/06(水) 23:54:06.74ID:OlUhBFHF情報ありがとうございました。
試してみたいと思います。
0269デフォルトの名無しさん
2015/05/07(木) 00:56:21.78ID:CSFF77Jn分からないことはヤフレカスってのは常套手段ですねw
0270デフォルトの名無しさん
2015/05/07(木) 01:05:23.21ID:xpfh09H00271デフォルトの名無しさん
2015/05/07(木) 03:35:20.66ID:+yI4RSPEどこのスレで口喧嘩に負けてきたんだ?
荒らしてきてやるから書け
0272デフォルトの名無しさん
2015/05/07(木) 22:56:17.61ID:uDHc9Yu6が取得出来たとして、
Postmessage(hwnd, , ,) ;
で何かメッセージを送って、そのボタンの背景色を赤色に変えるなど
できますか?
0273デフォルトの名無しさん
2015/05/07(木) 23:10:50.13ID:XdEP7Lb2用意されていればいいのだが、あいにくボタンにはそういうメッセージがない。
なので、他のアプリのボタンの背景色を変えようと思えば、そのボタンのスタイルを変え、
なおかつプロシージャを乗っ取って WM_DRAWITEM なりを処理する必要があると思う。
ゆえに答えは否。
自分の作ったアプリのボタンの背景色を変えるにはどうすればいいか。
まずはそのあたりを考えてみるといいよ。
0274デフォルトの名無しさん
2015/05/07(木) 23:17:47.32ID:uDHc9Yu6レスありがとうございました。
>他のアプリのボタンの背景色を変えようと思えば、そのボタンのスタイルを変え、
>なおかつプロシージャを乗っ取って WM_DRAWITEM なりを処理する必要があると思う。
なかなかややこしそうですね。
>ゆえに答えは否。
そうですか。困った。
>自分の作ったアプリのボタンの背景色を変えるにはどうすればいいか。
>まずはそのあたりを考えてみるといいよ。
その場合は、
SetBkColor
でやるんですよね?
0275デフォルトの名無しさん
2015/05/07(木) 23:52:51.04ID:hWWp4HfH>>まずはそのあたりを考えてみるといいよ。
>その場合は、
>SetBkColor
>でやるんですよね?
全く理解してなくてワロタ
0276デフォルトの名無しさん
2015/05/07(木) 23:54:43.21ID:uhpkEIt40277デフォルトの名無しさん
2015/05/08(金) 00:05:10.49ID:D5f67YQT何らかのGUIツールキットで作られたボタンならスタイルうんぬん以前の問題
0278デフォルトの名無しさん
2015/05/08(金) 00:07:56.26ID:D5f67YQTWindowという実体を作らず画像処理だけでボタンを再現してる奴もいるかもしれん
後者ならボタンのハンドルもメッセージも存在しないw
0279デフォルトの名無しさん
2015/05/08(金) 00:30:30.98ID:wauI//yZ0280デフォルトの名無しさん
2015/05/08(金) 01:03:34.39ID:JNS4Z5xc>>277-278 は議論うんぬん以前の問題
0281デフォルトの名無しさん
2015/05/08(金) 01:04:28.80ID:2/9eM7ZL自分は全く書けないのに、正論だけ押し付けてくる奴
「きちんと設計すれば動かないはずが無い」が口癖w
そりゃそうだろうけどw
0282デフォルトの名無しさん
2015/05/08(金) 02:25:25.99ID:semA39SH0283デフォルトの名無しさん
2015/05/08(金) 05:53:15.38ID:rtQrrRIy0284デフォルトの名無しさん
2015/05/08(金) 08:24:18.65ID:Yhmm5THU暗にお前の設計がタコだって言われてるんだろ
0285デフォルトの名無しさん
2015/05/08(金) 08:42:21.41ID:oCL66D4S他のアプリってのが「もし自作なら」ユーザーメッセージで解決できるけどな
0286デフォルトの名無しさん
2015/05/08(金) 11:15:26.01ID:1gJibIV9>が取得出来たとして
これって異なる自作アプリ同士でプロセス間通信したいって話じゃないの?
0287デフォルトの名無しさん
2015/05/08(金) 11:25:32.49ID:JgJK5K7B0288デフォルトの名無しさん
2015/05/08(金) 12:19:18.43ID:Gm54KlG7>これって異なる自作アプリ同士でプロセス間通信したいって話じゃないの?
ええっと、そうではなくて
自作アプリから、他作アプリのコントロールの背景色を変更したい
と思いました。やり方が分りません。
0289デフォルトの名無しさん
2015/05/08(金) 12:24:41.65ID:Yhmm5THU0290デフォルトの名無しさん
2015/05/08(金) 14:12:02.64ID:qF/v14b/0291デフォルトの名無しさん
2015/05/08(金) 14:21:43.73ID:Iyiixb5XSpy++みたいにではないでしょうか。
0292デフォルトの名無しさん
2015/05/08(金) 14:31:02.25ID:semA39SH>>273の工程は専門的に言うとオーナードローとサブクラス化ね
その辺は1から体系的に学んでおかないとやっていけない
0293デフォルトの名無しさん
2015/05/08(金) 14:34:59.04ID:semA39SH他プロセスだからメッセージフックだったな
0294片山博文MZ ◆T6xkBnTXz7B0
2015/05/08(金) 14:49:49.46ID://zzhYF70295デフォルトの名無しさん
2015/05/08(金) 19:49:37.43ID:5bS680Kqマジで?!リソースファイルの.RCのStringFileInfoを適当に記載しておけばいいのかな?
WIN7以前、以降とか、記述なしで、実行制限ありましたっけ?
0296片山博文MZ ◆T6xkBnTXz7B0
2015/05/08(金) 20:18:23.68ID://zzhYF7SmartScreenがソフトのバージョン情報をチェックしているらしい。
バージョン情報を付けた方が良さそうだ。
0297片山博文MZ ◆T6xkBnTXz7B0
2015/05/08(金) 20:26:10.33ID://zzhYF70298片山博文MZ ◆T6xkBnTXz7B0
2015/05/08(金) 21:20:40.18ID://zzhYF7クラッシュの回数までマイクロソフトが把握するようになったんだよ。
0299デフォルトの名無しさん
2015/05/08(金) 23:55:30.38ID:5bS680Kqなるほど。。クラッシュ回数まで把握ですか。デバッグはしっかりやっておきたいですね。
#pragma data_seg( で質問です。
A.exe +a.dll とB.exe + b.dll があったとします。
a.dllで #pragma data_seg("MY_DATA") int share_a=0; #pragma data_seg()
void setData(int n) {share_a =n;}
int getData() {return share_a;}
b.dllで #pragma data_seg("MY_DATA") int share_a=0; #pragma data_seg()
void setData(int n) {share_a =n;}
int getData() {return share_a;}
このとき、A.exe 内で setData(10)とした場合 B.exe getData()の値は 10になるのでしょうか?
別プロセスで、share_aが共有できるのであれば、メモリーマップドファイル使わないでいいのかな?
0300デフォルトの名無しさん
2015/05/09(土) 00:06:21.40ID:f+X1Lw0k0301デフォルトの名無しさん
2015/05/09(土) 11:00:55.20ID:OWlYoivl文字セットはマルチバイトとUNICODEのどちらで開発した方が良いのでしょうか?
http://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2011/12/29/unicode-vc.aspx
ちょっと古いのですが上記の記事ではUNICODEを推奨しています。
しかし現在の主流はUTF-8だと思うのでマルチバイトの方がいいでしょうか?
0302デフォルトの名無しさん
2015/05/09(土) 11:01:57.68ID:4IoY+00Iイミフ
0303デフォルトの名無しさん
2015/05/09(土) 11:08:04.81ID:2HKbgDAs0304デフォルトの名無しさん
2015/05/09(土) 12:02:57.99ID:5NEoo1tPTCHARかUNICODE文字セットを使う
マルチバイト文字セットは環境依存で日本語のWindowsだとcp932
これをutf8に切り替えるオプションなんてもちろんないし
そもそもAPIがcp932のインターフェースしか無いので
現代の主流が云々など考えるだけムダ
モダンなプログラミングがしたければモダンなOS使え
0305デフォルトの名無しさん
2015/05/09(土) 12:48:51.86ID:PwWAAfZbようにしている。charは滅多に使わない。
なのでcharと言えばwchar_tを意味するようにしたいくらいだ。
typedef char wchar_t
とか
#define wchar_t char
ってやったらどうなるんだろう。
0306デフォルトの名無しさん
2015/05/09(土) 13:19:26.21ID:cx7dem6B0307デフォルトの名無しさん
2015/05/09(土) 13:43:09.74ID:QFYNEVBc0308デフォルトの名無しさん
2015/05/09(土) 14:56:09.74ID:dHKI9IMfvisual studioでデバッグするときも、utf8なstringは読めないからね
結局全部cp932になった
0309デフォルトの名無しさん
2015/05/09(土) 15:13:06.28ID:x1xiQQNi0310デフォルトの名無しさん
2015/05/09(土) 15:37:00.89ID:qZm7gFud0311デフォルトの名無しさん
2015/05/09(土) 15:44:31.24ID:CtUg1jEA0312デフォルトの名無しさん
2015/05/09(土) 15:48:36.60ID:x1xiQQNiUTF16
0313デフォルトの名無しさん
2015/05/09(土) 16:02:46.51ID:2HKbgDAs0314デフォルトの名無しさん
2015/05/09(土) 17:12:39.66ID:dHKI9IMfあ、設定いじればできるのか。何の問題もなかったわ
API呼び出すときだけutf16に変換すればいいんだね
0315デフォルトの名無しさん
2015/05/09(土) 17:19:35.65ID:dHKI9IMf0316デフォルトの名無しさん
2015/05/09(土) 17:27:42.10ID:qeICslx90317デフォルトの名無しさん
2015/05/09(土) 19:03:16.99ID:gxvtiy3rLE?
0318デフォルトの名無しさん
2015/05/11(月) 23:30:14.93ID:o2fecJta0319デフォルトの名無しさん
2015/05/12(火) 12:20:59.31ID:ylqMkeqf【C++】 DirectX初心者質問スレ Part39 【C】
はスレ違いらしいので
0320デフォルトの名無しさん
2015/05/12(火) 12:55:25.71ID:mcS0y+j70321デフォルトの名無しさん
2015/05/12(火) 13:17:16.94ID:ZZfAUy1V> さらには2005年4月、DirectShowはDirectXから完全に取り除かれ、
> 当時Windows Server 2003 SP1版だったPlatform SDKに移管された[2]。
> ただし、現在でもDirectShowのサンプルプログラムのビルドには依然としてDirectX SDKが必要である[11]。
スレチとか言い出したらめんどくせえ立ち位置だな。
0322デフォルトの名無しさん
2015/05/12(火) 13:38:00.46ID:ylqMkeqf質問させていただきます。
WindowsXPでDirectShowを使い .wmaや.mp3 を高速に.wavに変換する機能を作りたいと思っています。
手始めにNULLレンダラを使い、 .wavファイルをIMediaControl::Run で再生して
ISampleGrabberCBのSampleCB、BufferCB メソッドで高速にサンプルを取得する事ができました。
.wavファイルの読み込みができたので、次は.wmaや.mp3を読み込もうとしたところ
なぜかわからないのですがSampleCB、BufferCBが呼ばれません。
試しにNULLレンダラを追加せず、IMediaControl::RenderFile で追加されるレンダラを使い
IMediaControl::Runで再生したところ、等速で音が再生されながら
ISampleGrabberCBのSampleCB、BufferCB メソッドでサンプルを取得する事ができました。
なんとか音を再生せずに高速で.wmaや,mp3のサンプルを取得したいのですがどうしたらいいのでしょうか?
0323デフォルトの名無しさん
2015/05/12(火) 15:06:35.12ID:Z/MhgXt86万5千以上が有り得る状況になったら、
Win32APIはどうなってしまうのでしょうか。
有り得ないって?まぁそうかもしれませんが。
0324デフォルトの名無しさん
2015/05/12(火) 15:09:08.77ID:mcS0y+j7ExExExかもしれんがw
0325デフォルトの名無しさん
2015/05/12(火) 15:18:10.11ID:Z/MhgXt80326デフォルトの名無しさん
2015/05/12(火) 15:20:40.89ID:yK9QlxPHLONG_PTRだったはず
0327デフォルトの名無しさん
2015/05/12(火) 16:20:35.40ID:Z/MhgXt8HIWRODやGET_X_LPARAMといったマクロは、32bitでも64bitでも同じもの。
64bit環境でも、WM_SIZEなんかで渡されるLPARAMは、
64bit幅を有効活用せず、上位32bitは使われない。
つまり64bit環境でもWM_SIZEのLPARAMで扱えるウィンドウサイズの上限は、0xFFFFまで。
内部仕様として無理って言うんじゃなくて、インターフェイス的に無理って言うのがなんとも残念。
将来的には、wp,lp使わずに、GetCursorPosやGetClientRectを使ってくれってなるんかね。
0328デフォルトの名無しさん
2015/05/12(火) 16:44:48.43ID:yK9QlxPH0329デフォルトの名無しさん
2015/05/12(火) 16:47:10.58ID:Z/MhgXt8符号ありなんで、0xFFFFの更に半分の0x7FFFまでしか扱えないんだよね。
4kディスプレイを横に9枚並べるとアウト。
今はまだぜんぜん余裕だけど、将来どうなるかは分からんよね。
たぶん特定のウィンドウスタイルを追加しないと、ウィンドウサイズが制限されるような事態になるのかね。
そんで専用のAPIで取得してくださいみたいな。
ただ、今のretinaクラス以上にDPIを上げても、人間の視力の限界だし、
retinaのDPIを維持したまま(300dpiとして)、0x7FFFをインチに換算すると、
109インチ(2.8m)なんで、考えるだけ意味無いかも。
0330デフォルトの名無しさん
2015/05/12(火) 17:20:28.36ID:32yYIcwZ・RegisterClassでウィンドウクラスの登録
・CreateWindowでウィンドウの表示
・登録されたウィンドウプロシージャで各種処理
という最も基本的な流れでプログラムが動いていますが、作業中ウィンドウから
例えば「新規」を選ぶともう一枚ウィンドウが開いて全く別の作業ができるように
したい場合、単にCreateWindowすれば良さそうですが、同じウィンドウプロシージャ
だとこれまで使っていたデータと競合してしまいます。
かといって、ウィンドウごとにウィンドウプロシージャを別に用意って普通しないのでは?
と思います。
複数のウィンドウでウィンドウプロシージャは同一、データは別としたい場合、
一般的にはどうしているんでしょうか?
0331デフォルトの名無しさん
2015/05/12(火) 17:31:08.89ID:yK9QlxPH0332デフォルトの名無しさん
2015/05/12(火) 17:33:59.79ID:yK9QlxPH0333片山博文MZ ◆T6xkBnTXz7B0
2015/05/12(火) 17:34:05.47ID:fncYevaLGetWindowLongPtr/SetWindowLongPtrかハンドルマップを使って、
ウィンドウとデータを関連付ける。
0334デフォルトの名無しさん
2015/05/12(火) 17:39:18.76ID:32yYIcwZなるほど、よく分かりました!
ありがとうございます。
0335デフォルトの名無しさん
2015/05/12(火) 18:39:40.95ID:Z/MhgXt80336デフォルトの名無しさん
2015/05/12(火) 20:43:51.58ID:P8yXA8APDirectShowは知らんがMedia FoundationにSource Reader/Sink Writerというまんまの機能があるで
標準のmp3デコーダがWin7からしか備わってねえからちと厳しいけど
0337デフォルトの名無しさん
2015/05/12(火) 20:52:00.24ID:ylqMkeqf情報ありがとうございます。
0338デフォルトの名無しさん
2015/05/13(水) 02:03:21.43ID:VzW8YhOf可能でしょうか?
0339デフォルトの名無しさん
2015/05/13(水) 02:14:12.20ID:VzW8YhOfWin8でタスクマネージャ出して、
パフォーマンスタブを開いて、
右クリックメニューの
[グラフを変更]の中の
[論理プロセッサ]
表示にしたいのですが、VC++のプログラムで出来ますか?
0340デフォルトの名無しさん
2015/05/13(水) 09:23:17.27ID:hDqQQ4M80341デフォルトの名無しさん
2015/05/13(水) 10:32:07.23ID:VzW8YhOfヒント教えてくれよ
0342デフォルトの名無しさん
2015/05/13(水) 11:46:47.39ID:jTT2yS9mGetForegroundWindowで取得するhWndですが、GetForegroundWindowを使わずにグローバルフックで処理したい場合、
どのようにすればよいでしょうか?
試しに、WM_ACTIVEを拾って、表示してみたのですが、同様のメッセージが複数送られて来て判断がつきません。
0343デフォルトの名無しさん
2015/05/13(水) 12:30:27.51ID:hDqQQ4M8キーボード操作だけで>>339をやってみる
それを実装する
>>342
LOWORD(wParam)
0344デフォルトの名無しさん
2015/05/13(水) 13:12:04.72ID:VzW8YhOfヒント、サンキュウ!
>キーボード操作だけで>>339をやってみる
>それを実装する
なるほど。試してみたいのだが、今、他の作業で超忙しくて手が離せない。
だれか暇な人がいたらサンプルを作ってくれるとうれしい。
0345デフォルトの名無しさん
2015/05/13(水) 13:27:42.36ID:jTT2yS9mログ見る限り、うまく動いてませんね。。
// Dll
HWND hookWnd(){return ghookWnd;}
LRESULT CALLBACK fix32HookProc(int nCode, WPARAM wParam, LPARAM lParam){
if ( nCode < 0 ) return CallNextHookEx(hHook, nCode, wParam, lParam);
CWPSTRUCT* const p = (CWPSTRUCT*)lParam;
case WM_ACTIVE:
ghookWnd=p->hwnd;
SendMessage(gMainWnd,WM_USER,p->wParam,p->lParam);
break;
-------------------------------
// main
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
switch(message){case WM_USER:
switch(LOWORD(wParam)){
case WA_ACTIVE: printf("%p WA_ACTIVE マウスクリック以外の方法でアクティブ化された %p\n",hookWnd(),(HWND)lParam); break;
case WA_CLICKACTIVE: printf("%p WA_CLICKACTIVE マウスクリックによってアクティブ化された %p\n",hookWnd(),(HWND)lParam); break;
case WA_INACTIVE: printf("%p WA_INACTIVE 非アクティブ化された(新しいハンドル%p)\n",hookWnd(),(HWND)lParam); break;
}
printf("GetForegroundWindow() %p\n",GetForegroundWindow());
}
GetForegroundWindow()の値とhookWnd(),(HWND)lParamの値が一致しないです。
WA_INACTIVEのとき、lParamには適正値が入るのは知ってます。
DLLのグローバルフック上のcase WM_ACTIVE:で、GetForegroundWindow()を呼び出してそれ使ったほうがよい?
0346デフォルトの名無しさん
2015/05/13(水) 14:22:04.41ID:dI4ahC8fhWndと比べるんじゃねえの?
0347デフォルトの名無しさん
2015/05/13(水) 14:23:33.95ID:dI4ahC8f0348デフォルトの名無しさん
2015/05/13(水) 14:32:38.40ID:qFyXwJnhWH_SHELLでフックして HSHELL_WINDOWACTIVATED を拾えば?
0349デフォルトの名無しさん
2015/05/13(水) 14:41:26.04ID:jTT2yS9mありがとう。試してみますね。
0350349
2015/05/13(水) 15:05:15.31ID:jTT2yS9m試しましたが、デバッグ用のコンソールのウインドがアクティブになった場合、
そのウインドのイベントが発生せず。。うーん。。WH_CALLWNDPROCでフックして、WM_ACITVE内で、
GetForegroundWindow()使ったほうがいいのかもしれないorz
0351349
2015/05/13(水) 16:23:00.40ID:jTT2yS9mWIN8の32ビット版では、正しくHSHELL_WINDOWACTIVATEDは、GetForegroundWindow()の値と同じものが取得できました。
32Bit側のアプリ呼び出しの、AllocConsole();が、64BitOSだと、64Bitで動いていた可能性あり?
64BitDLL作って、調べてみます。
0352349
2015/05/13(水) 16:44:23.87ID:jTT2yS9m0353デフォルトの名無しさん
2015/05/13(水) 17:37:17.83ID:hDqQQ4M8それを丸投げという
0354デフォルトの名無しさん
2015/05/13(水) 17:55:53.05ID:fE4vsJH40355デフォルトの名無しさん
2015/05/13(水) 18:26:26.64ID:I7FDspWMマルウェア vs 丸投げウェア
0356デフォルトの名無しさん
2015/05/13(水) 18:45:24.92ID:jTT2yS9m0357デフォルトの名無しさん
2015/05/13(水) 18:47:31.55ID:cKVTGKhm0358デフォルトの名無しさん
2015/05/13(水) 20:28:45.56ID:5e3tU8d3おまえが暇になったらやればいいんじゃね?
0359デフォルトの名無しさん
2015/05/14(木) 15:20:59.18ID:+nIQtAtrダイアログにタブコントロールを配置し、タブの切り替えに応じて
複数の子ダイアログを表示・非表示しています。
この子ダイアログにリストビューがあるのですが、マウスによって
ホイールに反応するものとしないものがあります。
恐らくマウスドライバの作りの差かと思いますが、プログラム側で
なにか工夫すれば対応できるようになるものでしょうか?
ホイールが反応しないケースでは、どうも親ダイアログに対して
スクロールさせるような命令が飛んできている感じではあります。
親ダイアログに直に配置したリストビューはマウスの種類に関係なく
ホイールに反応します。
この挙動から、親に来るメッセージ類を補足して現在表示中の
子ダイアログ下のマウスカーソルが下のリストビューのスクロール処理
をすれば理論的には良さそうです。
しかし、ここまでやらないといけないでしょうか?
0360デフォルトの名無しさん
2015/05/14(木) 15:58:44.50ID:mCvwdOKMログ取って「リストビューにフォーカスがあるかどうか」調べてみるのは?
0361デフォルトの名無しさん
2015/05/14(木) 16:05:44.65ID:7SdMC+6R0362デフォルトの名無しさん
2015/05/14(木) 16:44:59.33ID:+nIQtAtr試行錯誤している内に、単にマウスドライバの問題ではないかという気がしてきました。
どうもありがとうございました。
0363片山博文MZ社外取補 ◆T6xkBnTXz7B0
2015/05/14(木) 21:40:41.08ID:opb9h0b1落とし穴。絶対使うな。
0364デフォルトの名無しさん
2015/05/14(木) 21:48:10.79ID:7SdMC+6R0365デフォルトの名無しさん
2015/05/15(金) 06:41:01.84ID:w0X/ZpcKAllocConsole();
してprintf出力しているのですが、
別スレッドを作成して、その中でもprintfしたところ、
このコンソールには出ませんでした。
どうすれば別スレッドからもこのコンソールに出せますか?
0366デフォルトの名無しさん
2015/05/15(金) 12:35:19.68ID:0PkDPPO5それは単純にはいかない
複数のスレッドから、からくりはどうであれ、一つのところに出力したいのなら、それなりの仕掛けが必要。
根本的に、各スレッド間で独立しているものはなに?共通なのはなに?
0367デフォルトの名無しさん
2015/05/15(金) 13:09:13.22ID:nIpJir9o文字列送信時、WM_COPYDATA を使ったらどうだろ?
メッセージを受信したら、その文字列をprintfすればいいんじゃね?
0368デフォルトの名無しさん
2015/05/15(金) 13:22:09.71ID:hBLf1mmahttp://www.f13g.com/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0/C_C++/Windows/GUI%A4%C8CUI%A4%F2%BA%AE%BA%DF%A4%B5%A4%BB%A4%EB/
0369デフォルトの名無しさん
2015/05/15(金) 13:31:24.00ID:nIpJir9o// 受信用
case WM_COPYDATA: printf("%s",((COPYDATASTRUCT*)lParam)->lpData );
// 送信向け
void myprintf (HWND hWnd,HWND hWndTarget,char *format , ... )
{
char strbuf[2048]; // バッファサイズは適当に〜
va_list args; // printf っぽいくstrbufに文字列を加工する
memset(strbuf,0,sizeof(strbuf));
va_start( args, format);
vsprintf( strbuf, format, args);
va_end( args );
COPYDATASTRUCT cds;
cds.dwData = 0;
cds.cbData = sizeof(strbuf); / /送る文字列データの長さ。
cds.lpData = strbuf; // 送る文字列データのポインタ
SendMessage(hWndTarget,WM_COPYDATA,(WPARAM)hWnd,(LPARAM)&cds);
}
// ヘッダーを追加
#include <stdio.h>
#include <locale.h>
#pragma warning(disable:4996)
// winmain とかに追加してね
AllocConsole();
FILE *stream = freopen("CON", "w", stdout); // 標準出力の再割り当て
_tsetlocale(LC_ALL, _T("Japanese_Japan.932")); // wprintfとか使うなら!
// winmainのメイン メッセージ ループを抜けた最後の付近で後始末
fclose(stream);FreeConsole();
0370デフォルトの名無しさん
2015/05/15(金) 18:44:45.43ID:WZ+HCGJPタブを親窓にせず、メイン窓を親にする。
たしか入力メッセは、デフォルトプロシージャがフォーカスあるやつに送りつけたはず
タブは孫に渡さず使い捨てたと思う
0371デフォルトの名無しさん
2015/05/15(金) 19:00:03.80ID:WZ+HCGJPその別スレッド、全角文字をだしているとみた。
メインはASCIIのみ
0372デフォルトの名無しさん
2015/05/15(金) 19:22:08.01ID:sCqaJb0Kこれまでオーナードロー無しでコンボボックスを使っていましたが、今回オーナードローにするため
CBS_OWNERDRAWFIXED を付加して CreateWindow し、WM_DRAWITEM を処理するように追加しました。
すると、コンボボックスに設定されている文字列が文字化けしておかしくなります。
正確には、ComboBox_GetLBText でコンボボックス文字列が正しく取得できません。
コンボボックスは以下のように作っており、CBS_OWNERDRAWFIXEDを付加しない場合、なにも問題は出ません。
{
hComboWnd = CreateWindowEx(WS_EX_CLIENTEDGE, "ComboBox", "",
WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_VSCROLL | CBS_OWNERDRAWFIXED,
0, 0, 100, 500, hWnd, (HMENU)1, GetWindowInstance(hWnd), NULL);
ComboBox_ResetContent(hComboWnd);
ComboBox_AddString(hComboWnd, "text A");
ComboBox_AddString(hComboWnd, "text B");
ComboBox_AddString(hComboWnd, "text C");
}
0373デフォルトの名無しさん
2015/05/15(金) 19:25:12.49ID:sCqaJb0Kどこかおかしいところがありますでしょうか?
static void DrawItemProc(
HWND hWnd, int iId, LPDRAWITEMSTRUCT drawitem
)
{
変数宣言略
if (iId != 1) return;
ComboBox_GetLBText(drawitem->hwndItem, drawitem->itemID, szbuf);
if (drawitem->itemState & ODS_SELECTED) {
rgbText = RGB(255, 255, 255);
rgbBack = RGB(0, 0, 200);
} else {
rgbText = 0;
rgbBack = RGB(255, 255, 255);
}
hPen = CreatePen(PS_SOLID, 1, rgbText);
hBrush = CreateSolidBrush(rgbBack);
SelectObject(drawitem->hDC, hPen);
SelectObject(drawitem->hDC, hBrush);
Rectangle(drawitem->hDC, drawitem->rcItem.left, drawitem->rcItem.top, drawitem->rcItem.right, drawitem->rcItem.bottom);
TextOut(drawitem->hDC, 0, 0, szbuf, lstrlen(szbuf));
}
WndProc(
略
case WM_DRAWITEM:
DrawItemProc(hWnd, (UINT)wParam, (LPDRAWITEMSTRUCT)lParam);
0374片山博文MZ社外取補 ◆T6xkBnTXz7B0
2015/05/15(金) 19:28:57.49ID:hBLf1mma0375デフォルトの名無しさん
2015/05/15(金) 19:40:42.30ID:WZ+HCGJP自分で書いた方が、実装が早い。あれは人に使わせるように書いたものじゃない
あと最近気になるのは、
多分、コモンコントロールはDirect2Dを使っていない。
0376デフォルトの名無しさん
2015/05/15(金) 19:46:23.99ID:w0X/ZpcKサンプルプログラム有難うございました。
無事にうごきました。別スレットからConsoleに出力できました。
大変助かりました。感謝です。
本件とは無関係ですが、この自作プログラムの中で
printfやcoutしている箇所がいくつかあるのですが、プログラムを
実行していると、ある時点から改行されずに、横につながって出力
されてしまうおかしな症状が出て悪戦苦闘しています。
printf("\n");や cout<<endl;でも
改行しなくなるなるんです。
こんな症状は初めてで、何がおかしいか心当たりが全くありません。
今回の別スレッドプリント機能を追加する前からそうなっていました。
もし何か解決のヒントありましたらアドバイスよろしく。
0377片山博文MZ社外取補 ◆T6xkBnTXz7B0
2015/05/15(金) 19:51:35.16ID:hBLf1mmaCriticalSectionで排他制御、または入出力の同期
0378デフォルトの名無しさん
2015/05/15(金) 20:01:24.06ID:AZhRVSC1TextOut(drawitem->hDC, drawitem->rcItem.left, drawitem->rcItem.top, szbuf, lstrlen(szbuf));
じゃないのか?
それと、ComboBox_AddString() では文字列を指定せず、
描画したい文字列へのポインタを ComboBox_SelectItemData() して保持するほうがラク
保持した文字列へのポインタは drawitem->itemData にあるので、それをDrawText() する
(NULL で終わる文字列の場合に文字数を指定しなくていいので、TextOut()するよりラク)
0379デフォルトの名無しさん
2015/05/15(金) 20:02:42.29ID:AZhRVSC1○ComboBox_SetItemData()
0380デフォルトの名無しさん
2015/05/15(金) 20:30:49.43ID:w0X/ZpcK片山さん、
レスありがとうございます。
さっそく
CriticalSectionでググッて、たまたま見つけた
http://bituse.info/winapi/16
のサンプルをみて、
InitializeCriticalSection()
EnterCriticalSection()
LeaveCriticalSection()
などを追加してみましたが改善されません。
サブスレッドは、
std::packaged_task
std::thread
を使って作成しています。
も少し何かチェックすべき点などありましたらご指導お願いします。
0381片山博文MZ社外取補 ◆T6xkBnTXz7B0
2015/05/15(金) 20:34:20.00ID:hBLf1mma0382369
2015/05/15(金) 20:38:08.04ID:nIpJir9o動いてよかったね。
マルチスレッド系なら、>>377のアドバイス通り、CriticalSectionの処理忘れずに。
あと、マルチスレッドのチェックを入れておくこと。
VS2013であれば、
構成プロパティ->C/C++ ->コード生成->ランタイムライブラリー
->マルチスレッド/mt か マルチスレッド/mtd
この設定しておかないと、CRT系のライブラリーで不具合出た記憶がある。
0383デフォルトの名無しさん
2015/05/15(金) 22:12:36.63ID:sI8inuS20385デフォルトの名無しさん
2015/05/15(金) 23:04:15.12ID:sCqaJb0K> TextOut(drawitem->hDC, drawitem->rcItem.left, drawitem->rcItem.top, szbuf, lstrlen(szbuf));
> じゃないのか?
そこは仰る通りです。後で気付きました。
> それと、ComboBox_AddString() では文字列を指定せず、
あれから CBS_HASSTRINGS ウィンドウスタイルを追加して問題が一旦解決していたのですが、
なんでこんなものがあるのかと調べているところでした。(他に別の問題が出てきて・・)
ComboBox_SetItemData で別のデータをセットしていたので、この辺を踏まえて
構造体ポインタでもセットした方が良さそうですね。
どうもありがとうございました。
0386デフォルトの名無しさん
2015/05/21(木) 12:41:57.14ID:iDqwREQX0387デフォルトの名無しさん
2015/05/23(土) 03:46:59.36ID:Xep2wRPyWindowFromPointだと、拾えないハンドルがあるみたいです。
APIの解説読むとChildWindowFromPoint使えと書いてあったのですが、親ウインドを調べる場合はどうすれば?
EnumWindowsとChildWindowFromPointの組み合わせとかになるんでしょうか?
一番上にあるウインドのハンドルが知りたいです。
0388デフォルトの名無しさん
2015/05/23(土) 08:37:51.43ID:Henr8hEj0389デフォルトの名無しさん
2015/05/23(土) 09:31:52.27ID:Xep2wRPyZオーダーとかも考慮する必要があるので複雑になると思うのですが。。?
0390片山博文MZ ◆T6xkBnTXz7B0
2015/05/23(土) 10:01:44.26ID:ojXlCtK2GetParentを繰り返し呼ぶ。
0391デフォルトの名無しさん
2015/05/23(土) 11:00:20.06ID:dJKu3sZCこの辺りの基本は、日本語でMSDNにハウトゥが書いてあるぞ
他プロセスのウィンドウを調べる方法もあるが、普通は要らない
なんかストークソフトの技術質問ばかりだな、ここ
0392デフォルトの名無しさん
2015/05/23(土) 11:39:31.72ID:e7q+dZJtGetAncestor()
0393デフォルトの名無しさん
2015/05/23(土) 11:48:13.91ID:EdDrIok9http://livedoor.blogimg.jp/sytsyt/imgs/9/1/9128060f.png
0394デフォルトの名無しさん
2015/05/23(土) 14:02:41.96ID:LbQhEyX4ちなみに inspect は UI Automation とかいう開発者向けの I/F を使ってるらしい
0395デフォルトの名無しさん
2015/05/23(土) 16:17:09.12ID:N5mcUzwL0396片山博文MZ ◆T6xkBnTXz7B0
2015/05/23(土) 17:44:15.28ID:ojXlCtK20397デフォルトの名無しさん
2015/05/23(土) 18:06:16.36ID:e7q+dZJt0398デフォルトの名無しさん
2015/05/23(土) 18:38:18.33ID:YAXRIJCD0399デフォルトの名無しさん
2015/05/23(土) 21:36:40.32ID:SD28Qaymこれシステムでなにかロックされてる?
0400片山博文MZ ◆T6xkBnTXz7B0
2015/05/23(土) 22:08:05.87ID:ojXlCtK2Process32*フックできたら、存在するプロセスを隠せるセキュリティ上の問題が発生する
0401デフォルトの名無しさん
2015/05/23(土) 22:59:40.12ID:aSQ4opfb0402デフォルトの名無しさん
2015/05/24(日) 00:17:54.61ID:r97vly3l本来必要のない手続きだから環境かプログラムのどちらかがおかしいけど
0403デフォルトの名無しさん
2015/05/24(日) 01:48:20.80ID:/8p/6XEk0404デフォルトの名無しさん
2015/05/24(日) 01:52:56.76ID:qlvppzxo0405デフォルトの名無しさん
2015/05/24(日) 02:38:12.25ID:fc/UFx7b0406401
2015/05/24(日) 03:01:23.80ID:4hOp25cHありがとうございます
SetWindowLongの第二引数をGWL_EXSTYLEとしていたのが原因でした
GWL_STYLEでできました
0407デフォルトの名無しさん
2015/05/24(日) 10:25:17.19ID:y1MgTLvOのも知らんアフォはともかく
http://it.srad.jp/story/11/09/17/0527253/
0408デフォルトの名無しさん
2015/05/24(日) 10:41:11.74ID:G2/oGA6A0409デフォルトの名無しさん
2015/05/24(日) 13:52:42.90ID:xY4KxC2+0410デフォルトの名無しさん
2015/05/24(日) 16:04:21.97ID:riQhXw9m他のウインドにフォーカスが移動したときに、ポップアップメニューが勝手に消えますよね。
それを自分のウインドにフォーカスが移った場合、ポップアップメニューを閉じないようにするには、
どうすればよいでしょうか?
0411デフォルトの名無しさん
2015/05/24(日) 16:15:06.24ID:tHPLTcxB0412デフォルトの名無しさん
2015/05/24(日) 16:17:51.47ID:riQhXw9mちーたんタッチボードとかは、ポップアップメニューについて、ポップアップ維持の処理が制御できているみたいです。
0413デフォルトの名無しさん
2015/05/24(日) 16:50:29.70ID:GWZDfR0O他のアプリケーションがフォアグランドになっても、表示したポップアップメニューは消えない。
0414デフォルトの名無しさん
2015/05/24(日) 23:33:23.28ID:riQhXw9mLockSetForegroundWindow(LSFW_LOCK);
CreateWindowEx(WS_EX_NOACTIVATE, ...
case WM_NCACTIVATE: return DefWindowProc(hWnd, message, 1, lParam);
ポップアップウインドのサブクラス化ってできませんよね?
WM_CLOSEをフォーカスが自分のウインドにあった場合、キャンセルさせようかと思ったんですが
ポップアップメニューってウインドハンドルないのかな?
0415デフォルトの名無しさん
2015/05/24(日) 23:54:34.27ID:JmEJu+yHWM_CLOSEじゃなくShowWindow(hwnd, SW_HIDE)ならフックになるな
0416デフォルトの名無しさん
2015/05/25(月) 00:12:22.08ID:Y4roGc/9WM_ACTIVE:と、WM_NCACTIVE:のタイミング両方で、
SetActiveWindow( hBackupWnd );SetForegroundWindow(hBackupWnd);を動かしてみたんですけど、
ウインドの状態は前のウインドで保持されてはいますが、ポップアップメニューが閉じてしまいます。
WM_NCHITTESTを戻り値を0にしてもだめです。。
ポップアップメニューのウインドハンドル調べてみたのですが、ハンドルを得ることできそうもないです。
困った。。
0417片山博文MZ ◆T6xkBnTXz7B0
2015/05/25(月) 00:18:26.56ID:LQzNccs7ただメニューと同じ動作のウィンドウは作ることはできる。
自作のポップアップウィンドウをメニューに見せるのが一番。
0418デフォルトの名無しさん
2015/05/25(月) 00:26:32.69ID:8Crjy0ouポップアップメニュー表示中に
FindWindow("#32768", NULL)でウィンドウハンドル取れるだろ
0419デフォルトの名無しさん
2015/05/25(月) 00:28:30.28ID:Y4roGc/9やりたいことは、ちーたんタッチボードや、TouchMousePointerなどの入力系ツールの作成です。
もしくは、マウスのイベントを無効にして、自分のウインドにフォーカスが移らないようにすることはできますか?
0420デフォルトの名無しさん
2015/05/25(月) 00:31:17.45ID:n6K4TpsH「ポップアップウィンドウを作って、ポップアップメニューに見せかける」
0421デフォルトの名無しさん
2015/05/25(月) 00:36:33.73ID:Y4roGc/9FindWindow("#32768", NULL)は知りませんでした助かります。ありがとうございます。
0422デフォルトの名無しさん
2015/05/25(月) 00:48:07.44ID:Y4roGc/9他のアプリが作ってる一部のポップアップメニューのハンドルは取れそうもないっぽいです。
例:フラッシュアプリで右クリックなどのポップアップなど
マウスフック試してみるか。。
0423デフォルトの名無しさん
2015/05/25(月) 00:53:05.46ID:xFjitowq0424デフォルトの名無しさん
2015/05/25(月) 01:03:47.42ID:Y4roGc/9さきほどのFindWindow("#32768", NULL)とグローバルフック経由からのサブクラス化など使えば
PopupMenuのフックはいけそうですね。
マウスフックのAPI眺めてみたのですが、それっぽいメッセージの処理ができそうもなかったので、
WH_CBTフックで、アクティブ拒否ができるか試してみます。
こっちのほうが簡単かな?
0425デフォルトの名無しさん
2015/05/25(月) 01:39:07.50ID:Y4roGc/90427デフォルトの名無しさん
2015/05/25(月) 09:52:54.90ID:5Xzz88z5メニューってウィンドウなんだー
じゃあ逆に、普通のウィンドウをOSのメニューと完全に同じにフワッと表示したり選択項目だけがフェイド・アウトしたり
みたいな効果つけれるかね?
0428デフォルトの名無しさん
2015/05/25(月) 11:00:17.64ID:7nFkPzENヒント: WS_EX_LAYERED
0429デフォルトの名無しさん
2015/05/25(月) 13:49:31.31ID:5Xzz88z50430デフォルトの名無しさん
2015/05/25(月) 14:02:59.81ID:7nFkPzEN0431デフォルトの名無しさん
2015/05/25(月) 14:08:24.82ID:JYCHMnRj0432デフォルトの名無しさん
2015/05/25(月) 17:29:27.21ID:2/V0nnt+0433デフォルトの名無しさん
2015/05/25(月) 17:42:38.61ID:QP0bivbhなっかっよーくジェノサイど
0434デフォルトの名無しさん
2015/05/25(月) 20:24:07.83ID:Y4roGc/9transparent属性にしたらそのウインドでのタッチイベント(WM_TOUCH)発生するんでしょうか?
WS_EX_TRANSPARENTの属性をつけると、ヒットテストそのものが起きないとMSDNのサンプルに乗ってるんですが。。
https://msdn.microsoft.com/ja-jp/library/ms997507.aspx
hwnd = CreateWindowEx(WS_EX_LAYERED | // レイヤード ウィンドウ
WS_EX_TRANSPARENT | // このウィンドウをヒット テストしない
後ほど試して見ます。
0435デフォルトの名無しさん
2015/05/26(火) 08:43:02.67ID:pOYKgSOyhttp://show-dc.info/desktop-clock-gallery/simple-clock/5-colors-round-clock
0436デフォルトの名無しさん
2015/05/26(火) 08:45:21.28ID:pOYKgSOyhttp://www.vector.co.jp/soft/cmt/winnt/personal/se361316.html
0437434
2015/05/26(火) 18:10:23.25ID:8e2ytTC5ポップアップメニュー保持したまま自分のウインドをタッチ操作することってどうすればいいんだろう?
実現しているソフトをSPY使ってウインドクラスのスタイルと拡張スタイルを見たのですが、同じようにウインドを生成しましたが、
ポップアップメニュー保持はできませんでした。
実現しているソフトのウインドスタイルがこんな感じです。
WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_TOPMOST | WS_EX_CONTROLPARENT
WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPED | WS_MAXIMIZEBOX
0438デフォルトの名無しさん
2015/05/26(火) 18:22:12.43ID:JdoiEwqAポップアップメニュー以外の部分をクリックしたときに、ポップアップメニューを消すのが難しい。
そこで、アプリ毎に、あの手この手で実現しているので、
全てに対応するのは無理だと思うのね。
0439デフォルトの名無しさん
2015/05/26(火) 18:42:11.63ID:s2c/IHjzたまにサブアイテムが複数開いたままになったりするしな
0440デフォルトの名無しさん
2015/05/26(火) 19:07:09.30ID:yWiUgxdI・・・メニューじゃなかったりしてw
0441434
2015/05/26(火) 19:10:40.34ID:8e2ytTC5ポップアップメニューが消えてしまい、スパイで監視することができません;;
0442デフォルトの名無しさん
2015/05/26(火) 19:12:11.53ID:yWiUgxdI0443デフォルトの名無しさん
2015/05/26(火) 19:13:43.31ID:yWiUgxdI0444434
2015/05/26(火) 19:16:07.64ID:8e2ytTC5マウス操作の場合、ポップアップメニュを開いた状態から、アプリのウインドにフォーカスを移すと、ポップアップは消えます。
タッチパネルで操作する場合、上記条件で、アプリのウインドにフォーカスを移した場合、
ポップアップは維持されていて、ファイヤーフォックスやら、Googleクロームやらのポップアップメニューも
表示されたまま操作できています。
0445デフォルトの名無しさん
2015/05/26(火) 19:29:45.63ID:Wubd1VRvつWM_KILLFOCUS
0446デフォルトの名無しさん
2015/05/26(火) 19:49:21.15ID:yWiUgxdI0447デフォルトの名無しさん
2015/05/26(火) 20:09:52.82ID:JdoiEwqAそれがあんまうまくいかんのよ。
全てのウィンドウがフォーカスを受け取るとは限らんので。
マウスクリックしてもフォーカスイラネーってウィンドウがあると、
そこでクリックしてもKILLFOCUSが発生しない。
例えばツールバーとかはフォーカスを受け取らない。
0448434
2015/05/26(火) 20:12:54.79ID:8e2ytTC5自前でポップアップメニューを生成しているわけではなさそうです。
0449デフォルトの名無しさん
2015/05/26(火) 20:14:18.14ID:PeUEmaw1ヒットテストしてメニューでなければ消す
これで終わりだろ
0450434
2015/05/26(火) 21:22:50.67ID:8e2ytTC5マウスのグローバルフックで、自分のウインドに関して、
すべてlp->wHitTestCode = HTTRANSPARENT;で処理無効にしましたが、効果なしでした。
LRESULT CALLBACK HookMouseProc(int nCode, WPARAM wParam, LPARAM lParam){
MOUSEHOOKSTRUCT *lp = (MOUSEHOOKSTRUCT*)lParam;
if( nCode == HC_ACTION){
if( lp->hwnd == hMainWnd){
lp->wHitTestCode = HTTRANSPARENT;return 1;
}
}
return CallNextHookEx(g_hHookMouse, nCode, wParam, lParam);
}
0451デフォルトの名無しさん
2015/05/26(火) 21:41:44.94ID:yWiUgxdI消さない方法があれば教えてください」
・・・という質問であることがやっとわかった。orz
0453434
2015/05/27(水) 06:12:50.61ID:cNWj5KEMProcess touch input with Direct Manipulation sampleをダウンロードして一部を書き換えたら問題が解決できました。
いろいろ有難うございました。
0454デフォルトの名無しさん
2015/05/27(水) 09:24:46.64ID:kMgatPrw全く参考にならないゴミレスの山だけが残った。
0455434
2015/05/27(水) 10:23:05.35ID:cNWj5KEMWin7以降をターゲット機とし、WM_TOUCH前提でトラックパットのアプリを作っていました。
トラックパット内で、右クリック同等のボタンを、デスクトップ上で押した場合、
ポップアップメニューが表示されるのですが、トラックパットにフォーカスが移ると
ポップアップメニューが消えてしまいトラックパットの操作ができません。
アプリとしては致命的なので、451さんが書かれている質問をしました。
前スレッドの781さんが書かれていたWin8向けのAPIを使ったら上記の問題が解消できたという内容です。
いろいろと言葉足らずですみません。
前スレッドの781さん有難うございました。
0456デフォルトの名無しさん
2015/05/27(水) 12:41:25.80ID:A76Dyx8a0457デフォルトの名無しさん
2015/05/27(水) 14:50:16.35ID:elZ3FXt40458デフォルトの名無しさん
2015/05/27(水) 15:18:24.34ID:N+gURrK40459434
2015/05/27(水) 15:31:52.16ID:cNWj5KEMWM_TOUCH以外のやり方は、まだ、理解していないので、自分のコードはかけませんが、解決だと思ったコードは次のとおりです。
MSDNから、Process touch input with Direct Manipulation sampleをダウンロードして、
AppWindow.cppの80行目のCreateWindowを、拡張スタイルでCreateWindowEx(WS_EX_NOACTIVATE, に置き換えたら上記の問題は解決できました。
Process touch input with Direct Manipulation sampleは、781の紹介されたWin8 APIのページからたどったら出てきます。
WM_TOUCHの代わりのAPI、WM_POINTERDOWN:関連はこれから調べる感じです。
このような感じでいいですか?勉強不足ですみません。
0460デフォルトの名無しさん
2015/05/27(水) 16:38:01.80ID:jmeRjzK/0461デフォルトの名無しさん
2015/05/27(水) 17:51:53.06ID:dJYLVBc0次からはちゃんと「具体的に書いて下さいお願いします」って言わせなきゃダメだよ
0462デフォルトの名無しさん
2015/05/27(水) 18:34:50.13ID:kMgatPrwWS_EX_NOACTIVATEウィンドウでWM_TOUCHが来ないのが問題だったけど、WM_POINTERDOWN関連なら来るから解決しました。
なのか?
別に具体的に細かく説明しろって言ってんじゃなくて、要点を説明して欲しいだけなんだけどな。
0463434
2015/05/27(水) 19:19:31.11ID:cNWj5KEM要点としては、WS_EX_NOACTIVATE前提でプログラムをWM_TOUCHのメッセージをスパイでみると、
指でタッチした場合、WM_TOUCHの後に、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUPなどが勝手に走ります。
WM_POINTERDOWNのみで処理した場合、WM_MOUSEMOVE、WM_LBUTTONDOWN、WM_LBUTTONUPは走りません。
この特性があるみたいです。
今回の不具合の現象は、上記の特性を見ると、WM_TOUCH経由は、マウスメッセージ連動されているので、
他のアプリで、ポップアップメニューが開いている場合、自分のウインド(WS_EX_NOACTIVATE)をタッチしたら、
マウスがポップアップメニュではない、どこかの座標をクリックしたと認識して、
ポップアップメニューが閉じちゃう現象が起きていたと思われます。
0464デフォルトの名無しさん
2015/05/28(木) 17:00:30.45ID:lhfHDjjOCreateWindowで異なるアプリケーションのウインド上に、子ウインドは作成できるのでしょうか?
0465デフォルトの名無しさん
2015/05/28(木) 17:04:17.89ID:BPOchcgZ作れる。スクリーンセーバーのプレビューみたいに
0466デフォルトの名無しさん
2015/05/28(木) 17:07:43.26ID:06Vv4FJt0467デフォルトの名無しさん
2015/05/28(木) 17:36:24.01ID:lhfHDjjO他のウインドに自分の子ウィンドを貼り付けられました。
不具合が出ました。
ターゲットとなる実行名 ChildTest1 ウインド名のクラス名 ChildTest1 子ウインドのクラス名 MyChild
[ChildTest1]
+--- MyChild
があったとします。
自分の子を貼り付けたい子ウインドのクラス名 MyChildEx
hTarget = FindWindow(L"ChildTest1",NULL);
hChild=CreateWindow(L"MyChildEx",L"MyChildEx",WS_CHILD | WS_OVERLAPPEDWINDOW | WS_VISIBLE,0,0,200,200,hTarget,0,hInst,0);
[ChildTest1]
+--- MyChild
+--- MyChildEx
と表示はできたのですが、MyChildExまたはMyChildのウインドウを動かすとMyChildなどの画面が崩れたりします。
これは、異なるスレッドが原因なのでしょうか?
それとも、ウインドスタイルのオプションが足りないということでしょうか?
0468デフォルトの名無しさん
2015/05/28(木) 17:46:06.79ID:9DjcQz3vhttps://github.com/andanteyk/ElectronicObserver/blob/master/ElectronicObserver/Window/Integrate/FormIntegrated.cs#L303
0469デフォルトの名無しさん
2015/05/28(木) 17:51:33.44ID:BPOchcgZ組み合わせが間違えてる。ウィンドウスタイルの勉強からやり直し。
0470デフォルトの名無しさん
2015/05/28(木) 17:59:08.51ID:Dc/ggFvR今のままじゃ、#define UNICODE 外したらコケるぞ
0471デフォルトの名無しさん
2015/05/28(木) 18:04:16.41ID:lhfHDjjOあ、そうですね。手抜きコードしてたらそのようでした。
0472デフォルトの名無しさん
2015/05/28(木) 18:33:07.81ID:nbjUOWor0473デフォルトの名無しさん
2015/05/28(木) 19:57:37.48ID:s/u4gtlI0474デフォルトの名無しさん
2015/05/28(木) 20:06:02.00ID:Dc/ggFvR0475デフォルトの名無しさん
2015/05/28(木) 23:08:49.45ID:N7liwE7G0476デフォルトの名無しさん
2015/05/29(金) 03:04:11.67ID:YObp/eEXWM_なんだろう?
0477デフォルトの名無しさん
2015/05/29(金) 05:29:37.46ID:YObp/eEXhttps://social.msdn.microsoft.com/Forums/ja-JP/21fde3c7-30a5-4b38-8711-5086c591694c/windows81-win32-?forum=windowsgeneraldevelopmentissuesja
0478デフォルトの名無しさん
2015/05/29(金) 12:27:23.52ID:cPU9CNQ0ユーザが何してようがしったこっちゃない
0479デフォルトの名無しさん
2015/05/29(金) 12:31:46.95ID:cPU9CNQ00480デフォルトの名無しさん
2015/05/29(金) 13:14:52.12ID:41ckpjjx0481デフォルトの名無しさん
2015/05/29(金) 13:52:33.02ID:cPU9CNQ0自分のソフトなら、そっちでやればよい
IMEなら、そっちの仕組みを使えばよい
WMSIZEが飛んでこないだろ
0482デフォルトの名無しさん
2015/05/30(土) 17:41:29.50ID:AsLlcQ98(""で括ったりスペースを~で置き換えたりしてもダメでした) こういう場合はどうすれば良いんですかね・・・
HANDLE hFind;
WIN32_FIND_DATA win32fd;
char m_cFind[MAX_PATH];
int bank_max = 0;
string bank_name[99];
::strcpy_s(m_cFind, MAX_PATH, "D:\\\"Program Files\""); //D:\\test なら問題なく取得できた
::strcat_s(m_cFind, MAX_PATH, "\\");
::strcat_s(m_cFind, MAX_PATH, "*");
hFind = FindFirstFile(m_cFind, &win32fd);
do {
if (hFind != INVALID_HANDLE_VALUE) {
if (strcmp(win32fd.cFileName, ".") && strcmp(win32fd.cFileName, "..")){
if (win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
bank_name[bank_max] = win32fd.cFileName;
bank_max++;
}
}
}
} while (FindNextFile(hFind, &win32fd));
FindClose(hFind);
0483デフォルトの名無しさん
2015/05/30(土) 17:53:27.81ID:j4YY/rva探そうとするファイルは「D:\"Program Files"」にあるの?
0484デフォルトの名無しさん
2015/05/30(土) 18:08:52.77ID:AsLlcQ98最初は「D:\\Program Files」でやったんですけど、ダメだったんで「D:\\Program~Files」とか「D:\\\"Program Files\"」とか
色々試してみたんです
0485デフォルトの名無しさん
2015/05/30(土) 18:12:59.70ID:Cqishw4w0486デフォルトの名無しさん
2015/05/30(土) 18:18:48.75ID:MWyagaYkじゃないのか
0487デフォルトの名無しさん
2015/05/30(土) 18:36:56.59ID:AsLlcQ98Dドライブに自分で作ったProgram Filesだからそれは無いはづ・・・
\"D:\\Program Files\"でもダメですなぁ。別の関数じゃないとアカンのだろうか
0488デフォルトの名無しさん
2015/05/30(土) 18:41:08.39ID:j4YY/rva0489デフォルトの名無しさん
2015/05/30(土) 18:55:11.66ID:AsLlcQ98エクスプローラからちゃんとコピペしてもダメですねぇ・・
スペース無いパスで""入れてみたんだけどアクセスできなくなった。""が対応してないって事かなぁ
アクセスできる D:\\LTspice
アクセスできない \"D:\\LTspice\"
0490デフォルトの名無しさん
2015/05/30(土) 18:55:53.77ID:YkyYlSQNそもそも:strcpyもstrcatもただの文字列操作だぞ
::strcpy_s(m_cFind, MAX_PATH, "D:\\\"Program Files\""); //D:\\test なら問題なく取得できた
::strcat_s(m_cFind, MAX_PATH, "\\");
::strcat_s(m_cFind, MAX_PATH, "*");
実行した結果の
D:\"Program Files"\*
こんなディレクトリ名ありえんだろ
自作フォルダなら実際のフォルダ名が半角じゃなくて全角になっているとか気づきにくいミスをしている可能性があるから
手入力じゃなくてコピペするようにするとかしてみたらどうだ?
0491デフォルトの名無しさん
2015/05/30(土) 19:06:27.28ID:YkyYlSQN"" が必要になるのはコマンドラインなどのように、空白で文字列の分割が行われてしまう場合だけ。
例えばCreateProcessのlpszImageNameかlpszCommandLinのいずれかでコマンドラインを指定する場合など。
とりあえず試したが(_s付きのほうは試してなくて_s無しのほうで)
空白ありでもちゃんとディレクトリ内のフォルダ名を取得できる。
ちなみにUAC効いてるProgram FilesとProgram Files (x86)で、だ。
0492デフォルトの名無しさん
2015/05/30(土) 19:11:52.43ID:gEFTPVJNLTspice仲間発見!
0493デフォルトの名無しさん
2015/05/30(土) 19:18:47.35ID:j4YY/rva自分のやっていることをちゃんと理解できていないご様子。
:: FindFirstFile() が INVALID_HANDLE_VALUE を返すなら、::GetLastError() でもしたほうがまだ賢い。
0494デフォルトの名無しさん
2015/05/30(土) 19:21:05.30ID:AsLlcQ98これでバッチリいけたわありがとナス!やっぱネットのソースコピペだけじゃ嵌るね・・
::strcpy(m_cFind, "D:\\Program Files");
::strcat(m_cFind, "\\");
::strcat(m_cFind, "*");
hFind = FindFirstFile(m_cFind, &win32fd);
>>492
アナログ回路屋さん乙
0495デフォルトの名無しさん
2015/05/30(土) 19:29:42.57ID:YkyYlSQNってことは_s付きの関数に問題があったってことでね?
::strcpy_s(m_cFind, MAX_PATH, "D:\\Program Files");
::strcat_s(m_cFind, MAX_PATH, "\\");
::strcat_s(m_cFind, MAX_PATH, "*");
これ実行後の m_cFind はどうなっているんだ?
可能性としては MAX_PATH の定義がおかしくなっているためすべてをコピーしきれないとか。
0496デフォルトの名無しさん
2015/05/30(土) 19:31:52.41ID:j4YY/rva0497デフォルトの名無しさん
2015/05/30(土) 19:49:30.64ID:AsLlcQ98やり直してみたら全く一緒や・・ なんかもっと分からんくなってきたw
::strcpy(m_cFind, "D:\\Program Files");
::strcat(m_cFind, "\\");
::strcat(m_cFind, "*");
::strcpy_s(m_cFind2, MAX_PATH, "D:\\Program Files");
::strcat_s(m_cFind2, MAX_PATH, "\\");
::strcat_s(m_cFind2, MAX_PATH, "*");
ofstream OUTOOO("aaa.txt");
OUTOOO << m_cFind << endl << m_cFind2 << endl;
OUTOOO.close();
結果
D:\Program Files\*
D:\Program Files\*
0498デフォルトの名無しさん
2015/05/31(日) 07:25:39.10ID:EvgAS0zwなんだ
ただの嘘つきか
0499デフォルトの名無しさん
2015/05/31(日) 17:43:49.58ID:JnLugUH00500デフォルトの名無しさん
2015/05/31(日) 18:08:10.82ID:t8jPrrOm最新版のVisual Studioをインストールしろ。
printfでHello, worldを表示する次のようなプログラムhello.cppを作れ。
#include <stdio.h>
int main(void) {
printf("Hello, world\n");
return 0;
}
できたら、MessageBoxでHello, worldを表示するプログラムにしろ。
0501デフォルトの名無しさん
2015/05/31(日) 18:25:50.43ID:AQY7I4dQ0502デフォルトの名無しさん
2015/05/31(日) 18:46:44.54ID:t8jPrrOmキャッチに反応しなくてもいいとはおかしい。
ロボットに変なこと教えるなよ。
helloもhelp meもキャッチコピーだ。
0503デフォルトの名無しさん
2015/05/31(日) 18:59:10.57ID:t8jPrrOm0504デフォルトの名無しさん
2015/05/31(日) 19:38:43.33ID:HdJipRY30505デフォルトの名無しさん
2015/05/31(日) 20:25:38.58ID:JnLugUH0日本語で質問できるん?
0506デフォルトの名無しさん
2015/05/31(日) 21:31:40.03ID:aHKj8Hug0507デフォルトの名無しさん
2015/05/31(日) 23:03:10.09ID:jHkPthzb0508デフォルトの名無しさん
2015/06/01(月) 10:15:47.22ID:/nRdew/3矛盾している気がするのですがどういうことですか?
0509デフォルトの名無しさん
2015/06/01(月) 10:17:05.15ID:/nRdew/3typedef int BOOL
って見つけました
失礼しました
0510デフォルトの名無しさん
2015/06/01(月) 10:55:26.91ID:hih5o8Kt(b == TRUE) と書いてやられるのは誰もが通る道
0511デフォルトの名無しさん
2015/06/01(月) 11:00:24.48ID:H7Yr0w9Vb != FALSE
にすべし
0512デフォルトの名無しさん
2015/06/01(月) 11:04:54.39ID:Q3ianLBAb != FALSE なら b でいいし
b == FALSE なら !b でいいだろ?
0513デフォルトの名無しさん
2015/06/01(月) 11:13:04.14ID:H7Yr0w9VTRUE == or FALSE == と明示的に書きたいんだろうしって事ね
0514デフォルトの名無しさん
2015/06/01(月) 11:23:30.93ID:Q3ianLBABOOLは比較する必要ないだろ
0515デフォルトの名無しさん
2015/06/01(月) 12:08:18.51ID:gkan/OPI9xの頃もこうだったか?
0516デフォルトの名無しさん
2015/06/01(月) 12:13:04.93ID:Lw3ov3gq0517デフォルトの名無しさん
2015/06/01(月) 12:25:21.88ID:H7Yr0w9V必要かどうかを言ってるんじゃないんだが
0518デフォルトの名無しさん
2015/06/01(月) 14:38:57.15ID:hih5o8Kt多分その頃は BOOL とか型名そのものをみんな無視してたんじゃないかな
他言語から逆輸入・再発見された感がある
0519デフォルトの名無しさん
2015/06/01(月) 14:43:08.35ID:s3ZcdtNuなんでintにしなかったんだろう。
0520デフォルトの名無しさん
2015/06/01(月) 14:57:00.38ID:Lw3ov3gq>BOOLなのに0、1以外を返すこともある
「0、1以外」ではなく「0, 0以外」
「1以外」なんて考えてると、510 の書いているように (b == TRUE) なんてコトを平気でやっちゃうぞ
0521デフォルトの名無しさん
2015/06/01(月) 16:23:37.99ID:s3ZcdtNuBOOLには0、1以外入れちゃダメだろ。
「Cでは非0が真だから、BOOLに2入れちゃお」ってどんな判断だよ。
そんなの、BOOLは実はintだから-1返しても良いよね!っていう、
件のMSの発想と同じじゃねーか。わざわざそんないたずらする意味あるか?
BOOLの真に1を使うのはそれなりの根拠があるよ。
まず、TRUEが1に定義されていること。でもこれはMSが勝手にやっていることでしかないんだがな。
それでもWin32APIを使う上ではMSの流儀にあわせるべきだよね。
つぎに、Cは比較や論理演算の結果が真になった場合、1を返すと規格で決まっている。
また、C++のboolをintにキャストすると0、1になる。
これらをふまえると、BOOLに2や3を入れようという発想は生まれないはずだ。
>でもBOOLなのに0、1以外を返すこともあるって・・・
なるほど、問題ない文章じゃないか。
0522デフォルトの名無しさん
2015/06/01(月) 16:29:06.59ID:TGyjCQFp日本語勉強してからまた来い
0523デフォルトの名無しさん
2015/06/01(月) 16:29:28.74ID:s3ZcdtNuその上で戻り値がBOOLのAPIで真に1以外が使われたりしたら、
もうやっていることが無茶苦茶だよね。何がしたいんだと。
戻り値がBOOLなのに0、1以外が返ったら、批判してよい。
0524デフォルトの名無しさん
2015/06/01(月) 16:30:17.37ID:TGyjCQFp>BOOLには0、1以外入れちゃダメだろ。
入れてもいい
>>520 の言うように
BOOL に許される値は 0 と 0以外の任意の数 の二通り
0525デフォルトの名無しさん
2015/06/01(月) 16:37:23.84ID:0D/a6YpkBOOLなのにTRUEかFALSE以外が入ってる
のはあんまりよくないんじゃないかなとは思うけど
0526デフォルトの名無しさん
2015/06/01(月) 16:40:04.79ID:Lw3ov3gqどっか日本語ヘンだった?
0527デフォルトの名無しさん
2015/06/01(月) 16:57:05.84ID:TGyjCQFpきみの読解力
0528デフォルトの名無しさん
2015/06/01(月) 16:57:45.60ID:TGyjCQFpBOOLなら-1はTRUEだよ
0529デフォルトの名無しさん
2015/06/01(月) 17:19:42.51ID:Lw3ov3gq0530デフォルトの名無しさん
2015/06/01(月) 17:55:03.05ID:o6FjTESKTRUE == 1 なんだからそれはおかしくね?
BOOL型の値にどんなビット表現があっても別に問題ないっしょ?
BOOLなら-1は真だよ は正しいと思うけど
0531デフォルトの名無しさん
2015/06/01(月) 18:33:23.14ID:5bGybq2H>Cは比較や論理演算の結果が真になった場合、1を返すと規格で決まっている。
でも入力は零か非零でみるんだよね‥
0532デフォルトの名無しさん
2015/06/01(月) 19:31:09.47ID:IvVhkElPまたやってんのお前ら。
0533デフォルトの名無しさん
2015/06/01(月) 19:34:41.03ID:4i959FGz0534デフォルトの名無しさん
2015/06/01(月) 19:54:53.91ID:s3ZcdtNuBOOLはintだから0、1以外の何が入ってるか分からんから、
そういう場合にも対応した安全なコード書けって観点だろ。
でも俺はそんなこと一言も言及してねーんだよ。
俺は戻り値がBOOLのAPIで、0、1以外が返るのは糞だ、と言ってるだけ。
こんなことは当たり前で、荒れる要素は全くない。
APIを設計する側のMSに文句を言っているだけで、
それを使うお前らに文句を言っているわけではない。
真の値にあえて1以外が使われる意味はあるか?
MS「今日は2にしてみよう。明日は3にしてみよう。」 おかしいだろ。
MSは自らTRUEを1に定義してるんだよ。だったら真の値に1を使うのは当たり前だろ。
あえて他の値を使う必要性もないから、当然だよな。
どこに反論の余地があるの?
0535デフォルトの名無しさん
2015/06/01(月) 20:18:56.34ID:s3ZcdtNu真の値に1以外を使って欲しいのか?何の目的で?
別に1で構わないなら、俺の発言に文句ないはずだよな。
それに世の中にはif( ret == TRUE )とかいう糞みたいなコードだって散らばってるわけ。
TRUEを1と定義したのはMSなので、これはMSの責任でもあるわけ。
MSはこういった糞コードでもプログラムがクラッシュしないようにAPIの仕様を定めなければならない立場。
今回のケースでは、単に真の値に1を使うようにするというだけのことなので、そうするのは当たり前。
他の値を使う意味が全くないからな。2や3じゃなく、1を使えばそれで済む話。ノーコスト。
この場面で、あえて他の値を使ったとしたら、糞だろ。
そういう消極的な観点からも、戻り値がBOOLのAPIで0、1以外を返すのは
糞仕様なわけ。お前らがif( ret == TRUE )と書かないのと全く同じ理由で、
逆にMS側はif( ret == TRUE )と書かれている糞コードでもクラッシュしないように勤めるの。
可能な限り無意味なトラブルを避けるのは、使う側もMSも同じ。
0536デフォルトの名無しさん
2015/06/01(月) 20:21:09.10ID:4i959FGz0537デフォルトの名無しさん
2015/06/01(月) 23:10:00.30ID:cqscK3va0538デフォルトの名無しさん
2015/06/02(火) 00:48:43.31ID:opKMSndu糞仕様の関数書く奴をどうにかしてくれ。
0539デフォルトの名無しさん
2015/06/02(火) 03:23:52.68ID:B/m18j7i一番下のよくわからない2行がないとダイアログが出ないんですけどそういうモンなんですかね・・・
普通に動いているからまぁ良いんだけど謎すぎて・・
char InBuf[256];
OPENFILENAME ofn;
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = (HWND)frame->getSystemWindow();
ofn.lpstrFilter = "Preset File {*.aaa}\0*.aaa\0\0\0";
ofn.lpstrFile = InBuf;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = MAX_PATH;
ofn.lpstrDefExt = "aaa";
ofn.lpstrInitialDir = (char *)((VstPlugin*)effect)->preset_dir.c_str();
ofn.Flags = OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn)) ((VstPlugin*)effect)->export_preset(InBuf);
char buf[256]; //なぜかこれが無いとダイアログが出ない
sprintf(buf, "%s", ofn.lpstrFile); //なぜかこれが無いとダイアログが出ない
0540デフォルトの名無しさん
2015/06/02(火) 04:27:05.27ID:GiY1la32>lpstrFile
>「ファイル名」エディットコントロールを初期化するのに使用されるファイル名を格納したバッファのアドレスを指定します。初期化が必要ない場合には、バッファの先頭にヌル文字を格納しておきます。
これに従ってInBufを初期化してください
あとMAX_PATHは260バイトなのでInBufをその分確保してください
0541デフォルトの名無しさん
2015/06/02(火) 04:54:10.97ID:B/m18j7iおおほんとだ。char InBuf[256]; → char InBuf[MAX_PATH] = { NULL }; に変えたら最後の2行消してもダイアログ出たw
これで安心して使えるよありがとう
0542デフォルトの名無しさん
2015/06/02(火) 07:37:04.28ID:3K9K5nvj0543デフォルトの名無しさん
2015/06/02(火) 07:57:16.19ID:grfnvhLc0544デフォルトの名無しさん
2015/06/02(火) 08:13:50.44ID:a3qlL/7f0545デフォルトの名無しさん
2015/06/02(火) 08:16:29.73ID:a3qlL/7fstrcmp
0546デフォルトの名無しさん
2015/06/02(火) 08:17:37.90ID:a3qlL/7fmain もあったわ
0547デフォルトの名無しさん
2015/06/02(火) 08:18:11.25ID:23FH/Mb/いつから素人が駆け出しを叩くスレになったんだ
0548デフォルトの名無しさん
2015/06/02(火) 08:34:51.25ID:grfnvhLcPart90あたりからPart110くらいまでは
「知らないならレスしないでください。ウザイだけです」
に代表される、煽りと罵倒のスレでしたよ
0549デフォルトの名無しさん
2015/06/02(火) 10:33:03.90ID:c7PbY7Ns0550デフォルトの名無しさん
2015/06/02(火) 10:49:58.79ID:qFTxEdTq0551デフォルトの名無しさん
2015/06/02(火) 10:51:25.21ID:QEt0ogBL0552デフォルトの名無しさん
2015/06/02(火) 11:25:48.48ID:4AmpqNUq0553デフォルトの名無しさん
2015/06/02(火) 12:17:09.92ID:O9gETs5A一致が成功って決まってる訳じゃなかろ
0554デフォルトの名無しさん
2015/06/02(火) 12:21:29.62ID:Y5fGC49j0555デフォルトの名無しさん
2015/06/02(火) 12:26:28.11ID:4q1LDLUC負論理だとFalseが成功ってこともある罠
0556デフォルトの名無しさん
2015/06/02(火) 17:20:53.79ID:d2/EM2sAつhttp://ir9.jp/prog/ayu/win32err.htm
0557デフォルトの名無しさん
2015/06/02(火) 18:40:52.51ID:csi1IGCv返すなら
0 成功
1 失敗
でいいんじゃないか?
失敗の場合の色んな情報を返すなら
0〜FFFFまで自分で好きなようにエラーコードを割り当てればいいんじゃないか?
0558デフォルトの名無しさん
2015/06/02(火) 18:45:05.41ID:eq8fi9nB0559デフォルトの名無しさん
2015/06/02(火) 18:48:01.13ID:csi1IGCv成功は0だろ。
0560デフォルトの名無しさん
2015/06/02(火) 19:17:58.20ID:grfnvhLc0561デフォルトの名無しさん
2015/06/02(火) 19:20:11.22ID:d2/EM2sA戻り値にしてたから成功は0、失敗はエラーコードとかよくやってた
0562デフォルトの名無しさん
2015/06/02(火) 20:18:08.17ID:w3C6933l0563デフォルトの名無しさん
2015/06/03(水) 09:32:03.99ID:fBuP9Jsx天才 ktkr
0564デフォルトの名無しさん
2015/06/03(水) 09:32:48.88ID:fBuP9Jsxその通り
成功に理由はいらない
0565デフォルトの名無しさん
2015/06/03(水) 09:49:05.70ID:Q+LF6TWf0566デフォルトの名無しさん
2015/06/03(水) 10:05:48.60ID:4f4dm0TI0567デフォルトの名無しさん
2015/06/03(水) 10:11:25.13ID:Mg6w8zFx色々勉強になったわ
ありがとう
http://seiko-forever.seesaa.net/article/406028395.html
https://www.youtube.com/watch?v=KJa9ViwcLtc
0568デフォルトの名無しさん
2015/06/03(水) 10:16:58.19ID:Mg6w8zFx0569デフォルトの名無しさん
2015/06/03(水) 14:01:43.28ID:oCZofESShttp://uchidak.cocolog-nifty.com/blog/2011/04/post-f092.html
0570デフォルトの名無しさん
2015/06/03(水) 14:16:15.93ID:u1dB80rd2個めもゴミだろがハゲ
0571デフォルトの名無しさん
2015/06/03(水) 14:28:37.02ID:oCZofESS0572デフォルトの名無しさん
2015/06/05(金) 15:36:47.82ID:Cf1vS3sG0573デフォルトの名無しさん
2015/06/06(土) 02:46:17.61ID:GYjDajMQhttp://geoserver.sak ura.ne.jp/blog/c%e8%a8%80%e8%aa%9e/c%e8%a8%80%e8%aa%9ewin32api%e3%81%a0%e3%81%91%e3%81%a7%e4%b9%b1%e6%95%b0/
これを使って短時間で乱数量産するとエラーで止まるから、プログラムの最初で初期化
CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
して、プログラムの最後で解放
CryptReleaseContext(hProv, NULL);
しようと思ったんですが、こういうのって初期化〜解放の間隔が何日何週間とかになっても大丈夫なんですかね
0574デフォルトの名無しさん
2015/06/06(土) 10:21:43.72ID:selLq9/m特定の範囲に収まるフォントサイズを逆算するAPIってありますか?
あるならその関数名称を教えていただきたいですが…
うまく探しきれなくて、申し訳ありません。
0575デフォルトの名無しさん
2015/06/06(土) 10:51:01.18ID:DXSt7rl70576デフォルトの名無しさん
2015/06/06(土) 10:57:49.54ID:0CBA8Axe高さはすぐに計算できるけど、可変ピッチなフォントだと同じフォントでも文字の幅が違うから、
DT_CALCRECTをつけたDrawText()をフォントサイズ変えてforなりwhileでぶんまわして、
特定の範囲(RECT)に収まるかどうかチェックすれば?
0577デフォルトの名無しさん
2015/06/06(土) 11:06:52.77ID:selLq9/mありがとうございます。
やはり、範囲内に収まるかチェックするんですね…
0578デフォルトの名無しさん
2015/06/06(土) 11:24:04.60ID:selLq9/m皆様ありがとう
https://support.microsoft.com/en-us/kb/200262
0579デフォルトの名無しさん
2015/06/06(土) 11:32:09.11ID:9TAyXKx2というか毎回hProvを初期化しなければ止まらなくなるの?
もしそうならエントロピープールをシードにしか使ってないんだろうか…
Crypt系関数って詳しい仕様をぜんぜん公開してないから疑わしく見えて仕方がない
ちなみに俺の環境だと256bitで4000万回実行しても止まらなかったので再現は諦めた
Win7 x64
0580デフォルトの名無しさん
2015/06/06(土) 11:55:27.98ID:xKO3x+L2最初に与えられた事実は真実と錯覚していないか?
俺もこの現象に遭遇したことがないな
0581デフォルトの名無しさん
2015/06/06(土) 14:56:55.03ID:GYjDajMQコメントアウトしてたのを戻してもっかいやってみたら今度は再現しませんでした
何かの偶然だったという事にしようと思います・・・
仕様が公開されてないなら判断しようが無いですね。。
0582デフォルトの名無しさん
2015/06/08(月) 23:35:39.81ID:DpcdWlc7Windows8とかだとスケーリングとか任意で設定できるっぽいので、スケーリングの値など、関連する情報を取得できる方法が知りたいです。
0583デフォルトの名無しさん
2015/06/08(月) 23:42:21.16ID:nfC7C2fa0584デフォルトの名無しさん
2015/06/09(火) 00:24:50.62ID:jnEs2kjXこっちで書いてあった。
https://social.msdn.microsoft.com/Forums/ja-JP/97b142ce-f394-4c4b-ae8b-28dc9b547520?forum=vcgeneralja
Windows8.1API
GetDPIForMonitor
0585デフォルトの名無しさん
2015/06/09(火) 00:36:54.36ID:BYQG69VH0586デフォルトの名無しさん
2015/06/09(火) 08:36:21.58ID:yWuzViB0よく見かけるな
0587デフォルトの名無しさん
2015/06/09(火) 20:05:19.25ID:L65shhvtコールバック関数が FALSE を返さずに全トップレベルウィンドウの列挙を終えるという意味でしょうか?
0588デフォルトの名無しさん
2015/06/09(火) 20:17:50.75ID:BYQG69VH0589デフォルトの名無しさん
2015/06/09(火) 20:22:30.18ID:M4GdbwfJその場合はSetLastErrorで理由を示しなさいだって
大抵は自分自身でEnumWindowsProc書いてるだろうから不要な気がするがなあ
0590デフォルトの名無しさん
2015/06/09(火) 20:32:16.40ID:D/MCT83AそれはEnumWindowsの呼び出し側とEnumWindowsProcは違うから、
EnumWindowsProcでの列挙の中止をEnumWindows 呼び出し側に伝えるためのものでしょ。
自分で実装するならエラー(列挙の中止)の理由ぐらい分かるだろってのは分かるけど。
0591587
2015/06/09(火) 20:44:33.10ID:L65shhvtありがとうございます
確かに英語版の方がもう少し踏み込んで書いてましたね
読んだつもりだったのですが・・・
EnumWindows でウィンドウを探して、
見付けたらコールバック関数で FALSE を返して打ち切ってたんですが、
見付けた場合に戻り値が FALSE になってて、小一時間悩んでました
「列挙する関数だから、途中で終了したら失敗」
って言われたら納得はできるんですが、いまいち曖昧ですね・・・
0592デフォルトの名無しさん
2015/06/09(火) 21:03:00.42ID:D/MCT83AEnumWindowsProcが0を返す以外では EnumWindows は 0 を返さない(失敗とならない)っていうなら別だけど。
おそらくEnumWindowsProcが0を返す以外にも EnumWindows が失敗することはあるはずだから。
で、0が返ってきた原因として、関数が失敗したのかユーザコードによって中止されたのかは GetLastError で判断してねって。
0593デフォルトの名無しさん
2015/06/11(木) 00:31:56.40ID:9SjF1U/3タイマーなどでデスクトップのウインドサイズの変化を常に監視する以外のやり方が知りたいです。
通知メッセージってなにかあるのでしょうか?
0594デフォルトの名無しさん
2015/06/11(木) 00:39:09.69ID:b7rcev9jLPARAMに解像度
0595デフォルトの名無しさん
2015/06/11(木) 01:47:20.43ID:9SjF1U/3感謝です。
0596デフォルトの名無しさん
2015/06/11(木) 08:44:41.69ID:tkWwvfmcメッセージ名が分かれば探せるが、目的からの逆引きは、辞書から言葉を探す行為
全ページ読んでも無かったりする
0597デフォルトの名無しさん
2015/06/12(金) 00:23:50.34ID:vn7j7Ubu0598デフォルトの名無しさん
2015/06/12(金) 00:31:00.20ID:VFN7XLRpSetWindowPosで、HWND_TOPかHWND_TOPMOSTを設定
必要なら、CreateWindowEx(WS_EX_TOPMOSTとかじゃね?
0599デフォルトの名無しさん
2015/06/12(金) 00:34:21.62ID:p+jKebynそのふたつのウィンドウが親子なら子は親の前面に表示されるが、そういう話かな?
それとも SetWindowPos( hWnd, HWND_TOPMOST,...) という話かな?
0600デフォルトの名無しさん
2015/06/12(金) 04:54:29.01ID:w5GunMY632bit環境でコンパイルすれば32bitで、64bit環境でコンパイルすると64bitなん?
0601デフォルトの名無しさん
2015/06/12(金) 05:10:18.42ID:Qvm3BcbJ64bit 0x0000000000000000 - 0xFFFFFFFFFFFFFFFF
0602デフォルトの名無しさん
2015/06/12(金) 05:13:57.92ID:XoMzVDAf0603デフォルトの名無しさん
2015/06/12(金) 05:59:12.68ID:w5GunMY60604デフォルトの名無しさん
2015/06/12(金) 06:05:05.04ID:Qvm3BcbJ64bit環境でも32bitアプリケーションは作成も実行も可能
0605デフォルトの名無しさん
2015/06/12(金) 06:09:52.20ID:w5GunMY6よく32bitと64bitのソフトって分かれてるんで、プログラミング上では何を変えてるんだろうと疑問に思っただけっす
0606デフォルトの名無しさん
2015/06/12(金) 07:32:10.86ID:Qvm3BcbJなら>>601-602
0607デフォルトの名無しさん
2015/06/12(金) 10:15:18.76ID:/09Ghvah0608デフォルトの名無しさん
2015/06/12(金) 12:36:31.37ID:p+jKebynプログラミング上における、32bitと64bitのソフトの差異の一例
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR, int)
{
return ::DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, DialogProc);
}
上記コードは、64bitでビルドすると ワーニング C4244 になる。
理由:DialogBox() の戻り値である INT_PTR の定義が32bitと64bitで異なるため。
0609デフォルトの名無しさん
2015/06/13(土) 09:32:43.61ID:jqTzSEplポインタのビット数を無理やり増やしただけ
プロセスあたり4GBを超える必要性は皆無に近いし
物理メモリの4GB超えは32bitでもPAEでできる
x64の本質はクロック信仰と同じ
営業呼称上の数値が増えれば高級感がつくというだけ
それと「32bitではできない(嘘)」8GB以上のメモリを
売りつける口実で、案の定、情弱漁でニシン御殿みたいになった
0610デフォルトの名無しさん
2015/06/13(土) 11:00:36.74ID:xw9tZLHx0611デフォルトの名無しさん
2015/06/13(土) 11:06:14.20ID:aSPFED4zせめて、今の動画や音声は24ビットが基本でそれ以上幅を広げても再生できる装置もないし、再現しても人の知覚を越えてしまい意味がない!
とか、尤もらしい嘘を交えろ
0612デフォルトの名無しさん
2015/06/13(土) 11:13:11.55ID:FQeTzdta0613デフォルトの名無しさん
2015/06/13(土) 11:16:47.70ID:AmgidL1kRHEL(CentOS)は既に32bit捨てたんだっけ
0614デフォルトの名無しさん
2015/06/13(土) 11:17:48.55ID:AmgidL1k一番身近なはずのそれを忘れてたわ
そろそろボケ始めてるな
0615デフォルトの名無しさん
2015/06/13(土) 11:20:20.10ID:aSPFED4z0616デフォルトの名無しさん
2015/06/13(土) 11:35:27.68ID:NUKk6CPY0617デフォルトの名無しさん
2015/06/13(土) 13:22:28.61ID:vX+O9mW68GB以上と言うあたりに風刺が効いてるなw
0618デフォルトの名無しさん
2015/06/13(土) 15:20:18.97ID:P6q2Jefiまあ、いまや64bitが普通で32bitは貧乏人の乗り物と認定された軽自動車ほどの
価値もないけどね?(´・ω・`)
0619デフォルトの名無しさん
2015/06/13(土) 16:05:23.44ID:KSn5zbP7今は過渡期の終盤にさしかかってるけど
32/64bit両対応のコストと比較して,32bitだけで行くという結論もまだもちろんアリ
0620デフォルトの名無しさん
2015/06/15(月) 06:00:07.52ID:/ZXirDuWhttp://www7a.biglobe.ne.jp/~tsuneoka/win32tech/11.html
>また,GUIDを何回取得しても Data4 は変化しないため Data4 はマシンを特定するため のIDと推測されます.
>このため,ネットワークアダプタを持たないマシンでも GUIDのData4メンバを利用 すれば,マシンを一意に特定するIDを得ることができるようになると思われます.
実際に下記コードで取得してみたのですが、やるたびにData4の値が変わるんですけど、どっちが正しいんですかね・・
GUID guid;
::CoCreateGuid(&guid);
ofstream OUF("a.txt");
OUF << guid.Data4 << endl;
OUF.close();
0621デフォルトの名無しさん
2015/06/15(月) 06:57:40.21ID:shu87EmeHDDのGUIDとかを特定条件にするのはどーだろうか?と思ったので、ちょっと調べてみたらこんなのでたよ。
http://www.hsp.tv/play//pforum.php?mode=pastwch&amp;num=57169
0622621
2015/06/15(月) 07:03:02.20ID:shu87Eme追記:GetVolumeNameForVolumeMountPoint を使えばいいっぽい?
参照:http://www.wabiapp.com/WabiSampleSource/windows/get_volume_name_for_volume_mount_point.html
0623デフォルトの名無しさん
2015/06/15(月) 07:19:37.93ID:vOuaGBoohttp://www.hsp.tv/play/pforum.php?mode=pastwch&amp;num=57169
0624デフォルトの名無しさん
2015/06/15(月) 07:25:19.80ID:/ZXirDuWおーなんかできたっぽい!
無いボリュームはNULLになるんですね。あざす!
A:\
B:\
C:\
\\?\Volume{97487739-fbd7-11e0-b5b0-806e6f6e6963}\
D:\
\\?\Volume{fe2da690-fbe2-11e0-9107-f0bf97d827ff}\
E:\
\\?\Volume{9748773c-fbd7-11e0-b5b0-806e6f6e6963}\
F:\
\\?\Volume{9748773c-fbd7-11e0-b5b0-806e6f6e6963}\
(以下略)
0625デフォルトの名無しさん
2015/06/15(月) 07:28:00.88ID:vOuaGBoohttp://www.hsp.tv/play/pforum.php?mode=pastwch&num=57169
0626デフォルトの名無しさん
2015/06/15(月) 07:34:27.25ID:/ZXirDuWこっちの方が加工しやすいかも
A:\
0
B:\
0
C:\
3094313688
D:\
173317027
E:\
3658528371
F:\
3658528371
0627621
2015/06/15(月) 08:14:03.21ID:shu87EmeDWORDのみでマシン特定が足りるなら問題なしw
後々、鯖に登録して判定とか考えるなら、GUID型のがいいかも?そのときはMACアドレス取ればいいかw
0628デフォルトの名無しさん
2015/06/15(月) 08:32:52.69ID:/ZXirDuWそっか被る恐れもあるのか
それでいきますわw
0629621
2015/06/16(火) 04:02:04.42ID:2xa4wOmHアプリ内の設定ファイルを保存する場合、どこのフォルダー又はレジストリー?に保存するのいいのでしょうか?
UACがよくわかっていないのですが、書き込み制限?とか回避できる方法などが知りたいです。
現在、実行しているフォルダーで、WritePrivateProfileStringとかでiniファイル作ってますが、
そのうちインストーラー経由で、Program Filesなどの保存先を考えています。
たぶんUACとかの問題に直面すると思うのです。
管理者権限?とかあまり気にしないで処理できませんか?
ユーザーに権限を上げてもらうっていうのは最後の手かなーと思ってます。
0630デフォルトの名無しさん
2015/06/16(火) 04:06:01.72ID:lLEFDpN40631デフォルトの名無しさん
2015/06/16(火) 07:32:35.24ID:2xa4wOmH有難うございます。
0632デフォルトの名無しさん
2015/06/16(火) 08:18:45.96ID:UOlL6/Es0633デフォルトの名無しさん
2015/06/16(火) 08:29:57.46ID:24vrHag80634デフォルトの名無しさん
2015/06/16(火) 08:33:42.99ID:550Q7INi0635デフォルトの名無しさん
2015/06/16(火) 12:37:13.13ID:g0IXFg/40636デフォルトの名無しさん
2015/06/16(火) 14:02:14.26ID:6j6Aca1F0637デフォルトの名無しさん
2015/06/16(火) 14:28:59.73ID:VgG0Ipqw0638デフォルトの名無しさん
2015/06/16(火) 16:33:15.01ID:VSSCDRv80639デフォルトの名無しさん
2015/06/16(火) 16:37:32.96ID:c0G3gdyl0640デフォルトの名無しさん
2015/06/16(火) 19:52:06.79ID:UOlL6/Esプログラムやろうって人が分からないのは……しかもWin32スレに書き込んだりして……
ま、あんま気にすんなよ
0641デフォルトの名無しさん
2015/06/16(火) 22:44:24.03ID:2xa4wOmH0642デフォルトの名無しさん
2015/06/16(火) 23:29:37.34ID:2xa4wOmHwParam..18hって数値着てますが、なにかマクロあるのだろうか・・?
0643デフォルトの名無しさん
2015/06/16(火) 23:59:16.13ID:c0G3gdyl一週間ほど前にここに書いた
タブレッドを回転しても届く
0644デフォルトの名無しさん
2015/06/17(水) 00:08:14.39ID:suyL5/S90645デフォルトの名無しさん
2015/06/17(水) 00:10:18.59ID:5vGZBvAI0646デフォルトの名無しさん
2015/06/17(水) 05:08:36.70ID:dvJyZHFBそもそも管理者アカウントでログインしてんだから確認なんていらないだろってのと
昇格が必要なら管理者アカウントじゃなければ実行できなくすればいいだけじゃね?
0647デフォルトの名無しさん
2015/06/17(水) 05:16:27.55ID:jg0++sTsそういう動作にしたいんだったらオフにすればいいだけじゃん。何言ってんの?
0648デフォルトの名無しさん
2015/06/17(水) 05:28:23.84ID:dvJyZHFB論点はそこじゃないんだが何言ってんの?
0649デフォルトの名無しさん
2015/06/17(水) 05:39:27.81ID:7KhQ6AFD0650デフォルトの名無しさん
2015/06/17(水) 05:41:18.62ID:jg0++sTsお前がアンカしてるレスはAlt+Yについてなんだが何が言いたいのかさっぱり意味不明
0651デフォルトの名無しさん
2015/06/17(水) 05:42:03.89ID:8hoNHvZR解像度変更と、縦・横変更を、printfで両方出力して試しました。
WM_DISPLAYCHANGEと、WM_SETTINGCHANGE両方のメッセージが届きますね。
メッセージは、WM_DISPLAYCHANGE → WM_SETTINGCHANGE の順で着てるみたいです。
WM_DISPLAYCHANGE使えばいいみたいですね。
ありがとう。
0652デフォルトの名無しさん
2015/06/17(水) 12:15:01.49ID:8E4BKlvEVista以降は管理者アカウントは昇格する権利を有するアカウントのこと
普段は一般ユーザーと考えれば良い
管理専門アカウントが欲しければUAC切ったアカウント作れ
0653デフォルトの名無しさん
2015/06/17(水) 12:23:57.77ID:r8wPWfB20654デフォルトの名無しさん
2015/06/17(水) 12:32:26.76ID:7KhQ6AFD0655デフォルトの名無しさん
2015/06/17(水) 14:43:37.84ID:bzhJxhFFシステムを荒らす要因にもなっていた開発者への牽制の意味もあるけどな
0656デフォルトの名無しさん
2015/06/17(水) 16:04:28.54ID:suyL5/S9毎度やるのが面倒だとUACを切ることもできてしまうあたり
本質的なセキュリティ対策にはなっていないあたり、
コンビニレベルと言わざるを得ない。
0657デフォルトの名無しさん
2015/06/17(水) 17:41:30.52ID:JyK9RGRBセコムしていても、家主には「施錠しない自由」があるんだよ?
オートロック機能つきのマンションでもオートロック機能を解除することもできるんだよ?
管理者がセキュリティなんて不要だと判断したのならそれは管理者の問題なんだよ?
0658デフォルトの名無しさん
2015/06/17(水) 17:56:45.67ID:jg0++sTs自分が起動してるプログラムが何かすら判断できないようなユーザにセキュリティとか求めても無駄
UACがなかったらいちいち別ユーザに切り替えるのにパスワード入力してたんだから、
それがクリック一発になって楽になっただろ
どんなアプリも管理者権で立ち上げるのに抵抗がないようなセキュリティ意識の欠けたやつには
無駄に見えるかもしれないがな
まぁ本来不要なのに管理者権を求めてくるお行儀の悪いプログラムがあるのは問題だが、
それは開発者側の問題。つまりここにいるお前らの問題でOSの問題ではない
0659デフォルトの名無しさん
2015/06/17(水) 18:40:19.66ID:8hoNHvZR個人に管理者権限やら、マルチユーザーなどの概念を押し付けて売ってるのが間違い。
個人向け、一台のパソコンに一人を前提であれば、アカウント1つのみでそういうエディションで売ればいいのにな。
ユーザー切り替え無くなったら、横暴だ!とか大騒ぎしそうだがw
現状は、UACのルールに従うしかない。
0660デフォルトの名無しさん
2015/06/17(水) 18:52:06.36ID:bzhJxhFF0661デフォルトの名無しさん
2015/06/17(水) 19:53:04.95ID:0ZkWpzGyDOS でも使ってろよ
0662デフォルトの名無しさん
2015/06/17(水) 21:10:01.47ID:suyL5/S9論点つーか立場が違うんだよな。
玄関に鍵と鍵穴付きのドア付けてるのに、これの意味を理解していない原始人が多すぎる
この世の中において、意味をなしてないって言ってるわけ。
サポートの仕事もしてたらよく分かる。
電話かけてくる奴漏れなくUACの意味が分かってない。分かってる奴にお目見えした例しがない。
こういう奴ほど管理者権限を与えちゃいけないし「はいいいえ」の選択肢も与えちゃイカンわ。
まあPCも与えちゃイカンのだがな。
0663デフォルトの名無しさん
2015/06/17(水) 21:36:12.20ID:jPcAGT100664デフォルトの名無しさん
2015/06/17(水) 21:50:46.75ID:3PxLF6klそんな事よりさ、今さっきNEWSAYSに行ったんだけどさ、
レジで東京駅100周年記念Suicaを出したらバイトの店員が慌てて
「これは東京駅100周年記念Suica!しょ、少々お待ちください!只今オーナーを呼び付けます!」
って電話をかけだしたんだよ。すると5分もしない内にオーナーと店長とエリアマネージャーが駆けつけるなり俺の目の前にひれ伏して
「高い地位と身分を証明するステータスカードである東京駅100周年記念Suicaをお持ちのお客様に御来店頂けるとは光栄です」
って汚い床に額を擦りつけてもてなされたよ。
店内の他の客も
「マジかよ!東京駅100周年記念Suicaなんて凄いよな!」
って大騒ぎ。俺の後ろで自慢気に東京ルネッサンス記念Suicaを出して並んでたオヤジも顔を赤くして恥ずかしそうに財布にコッソリ戻してたよ。
店の奥に通されて高級ブランデーまで出された。
高級菓子の詰まった菓子折り持たされて帰りはリムジンで家まで送ってくて最高だったよ。
改めて東京駅100周年記念Suicaのステータスを実感したよ。
ホントどえらいカードだよ。
0665デフォルトの名無しさん
2015/06/17(水) 21:57:51.15ID:bzhJxhFF突然画面暗転して是非を問われたら「なんかやべえな」くらいの注意を払ってる人は意外と居る印象だったな
結果、メーカー製PCによく入ってるJavaやAdobeの更新をまったく実行してないこともザラだが
ちゅーか電話でジジババの相手は駄目だ、言ってることと理解してることと見てることと実行してることが全部違う
0666デフォルトの名無しさん
2015/06/17(水) 21:59:55.31ID:4yO7Si260667デフォルトの名無しさん
2015/06/17(水) 22:11:07.14ID:F5lqhd8J0668デフォルトの名無しさん
2015/06/17(水) 22:37:24.20ID:07HUceCZUACの存在自体がまず正しくて、理解していないことが絶対悪なわけか
0669デフォルトの名無しさん
2015/06/17(水) 22:54:25.86ID:JyK9RGRB>玄関に鍵と鍵穴付きのドア付けてるのに、これの意味を理解していない原始人が多すぎる
住人が意味を理解していないのはセコムが悪いと?
というかさ、理解している人間がサポートに頼ったりすると思うのか?
分かっている人は自力で解決する。
自力で解決できないからサポートを頼るんだろ?
立場が違うと、誰の立場で言っているのかが良く分からないがw
とりあえずサポートの立場であるなら、UACの意味が分かってない原始人がいるからお仕事になるんじゃねーの?w
0670デフォルトの名無しさん
2015/06/17(水) 22:56:14.67ID:5vGZBvAI正しいとか正しくないとか、善とか悪とかは、そのルールを変えろという話なので、また別のお話。
というわけでここは「Win32API質問箱」というスレなので、UACの話は他でやれ。それがルール。
0671デフォルトの名無しさん
2015/06/18(木) 05:43:45.06ID:4nFQxAQO使用してるAPI?
ttp://image.itmedia.co.jp/ait/articles/0703/09/wi-859scr01.png
ttp://furi-sofuto.com/uac.png
0672デフォルトの名無しさん
2015/06/18(木) 07:57:59.11ID:MLPf1LVb0673デフォルトの名無しさん
2015/06/18(木) 08:01:28.05ID:aPbhwQoO0674デフォルトの名無しさん
2015/06/18(木) 11:14:59.51ID:59fiPw7nドヤ語ってるところ悪いが、おまえUAC理解してない原始人並みだな。
そりゃ原始人が闊歩してるのもうなずけるわ。
0675デフォルトの名無しさん
2015/06/18(木) 11:39:18.83ID:MLPf1LVbスレ違いだ
よそでやれよペキネンシス君
0676デフォルトの名無しさん
2015/06/18(木) 12:11:46.85ID:EqdgCPQw0677デフォルトの名無しさん
2015/06/18(木) 12:18:17.88ID:yshh0B6q7はUACが必要最低限だしな。笊にも見える。
サイト毎にコード署名が貼付出来るようになれば、有り難みがわかるさ
今は判子屋がコード署名で儲けるため、如何にユーザによるコード署名を技術的に潰すかが必死に検討されているフェーズ
0678デフォルトの名無しさん
2015/06/18(木) 16:07:36.67ID:jZrPxUY1http://www.dotup.org/uploda/www.dotup.org374222.gif
0679デフォルトの名無しさん
2015/06/18(木) 16:32:29.29ID:Werb1Cdz0680デフォルトの名無しさん
2015/06/18(木) 16:38:38.30ID:0BafisnI0681デフォルトの名無しさん
2015/06/18(木) 17:15:11.13ID:T2+a71RKそれは>>680のような状態である。
0682デフォルトの名無しさん
2015/06/18(木) 17:30:25.95ID:0BafisnI0683デフォルトの名無しさん
2015/06/18(木) 17:42:01.10ID:i9Z3PO5v+1
0684デフォルトの名無しさん
2015/06/18(木) 17:49:38.79ID:T2+a71RKそれも考えたんだけど、やめといた。
0685デフォルトの名無しさん
2015/06/18(木) 20:55:43.32ID:2mZuV/5h0686デフォルトの名無しさん
2015/06/18(木) 22:44:00.80ID:MWSLdAtQ確かにアホだな
サル用OSのくせにサル語で書かれていない
さすがサル嫌いなサル飼育員をサポセンに飼ってる会社だ
0687デフォルトの名無しさん
2015/06/18(木) 23:12:49.11ID:IMENc0gC何でAPIだと思ったん?
0688デフォルトの名無しさん
2015/06/19(金) 06:56:14.88ID:P4SCySD/Crypt系でダイアログだすやつあるからかな?
0689デフォルトの名無しさん
2015/06/19(金) 14:07:52.43ID:+wRSfm4C面白いと思ったの?なんでそう思った?
0690デフォルトの名無しさん
2015/06/19(金) 14:11:07.17ID:r/oYBuQO0691デフォルトの名無しさん
2015/06/19(金) 15:01:04.52ID:9hebRpBD0692デフォルトの名無しさん
2015/06/19(金) 20:23:18.93ID:9HLt/WoYおまえサルか? それともサル飼育員か? どっちだ?
0693デフォルトの名無しさん
2015/06/19(金) 21:35:35.88ID:n/vW9NWY面白いと思ったの?なんでそう思った?
0694デフォルトの名無しさん
2015/06/19(金) 21:41:08.25ID:9HLt/WoY次もまた同じこと言うよな、サル未満のジャンク野郎
0695デフォルトの名無しさん
2015/06/19(金) 21:51:36.96ID:gqE3zcth○壊れた蓄音機
0696デフォルトの名無しさん
2015/06/19(金) 22:01:51.41ID:PbyfPj3OすすんでIDをNGしましょう
0697デフォルトの名無しさん
2015/06/19(金) 23:10:41.59ID:n/vW9NWY0698デフォルトの名無しさん
2015/06/19(金) 23:25:12.36ID:7Jz9enLPレコードの傷でなるんだから、壊れたレコードが正解
0699デフォルトの名無しさん
2015/06/19(金) 23:27:37.97ID:8yXOnJ5mさすがです!なんといってもIDがLPなのには感服致しました!
0700デフォルトの名無しさん
2015/06/20(土) 00:03:33.34ID:YoMZLH3/0701デフォルトの名無しさん
2015/06/20(土) 00:33:36.82ID:m/GPi3MC×壊れたMDプレイヤー
×壊れたMP3プレイヤー
×壊れたiTunes
×壊れたiPod
○プレイヤーは良く壊れる
0702デフォルトの名無しさん
2015/06/20(土) 00:49:27.08ID:kFeRRq5I権限を必要とするAPI等を使う実行ファイルの入手経路の違いじゃねーの
0703デフォルトの名無しさん
2015/06/20(土) 00:52:36.99ID:RdU0NHX60704デフォルトの名無しさん
2015/06/20(土) 09:03:10.72ID:xDd8VCyDコードサイニング署名の話?
0705デフォルトの名無しさん
2015/06/21(日) 08:48:02.96ID:s2U9J1utWin32APIでOpenTypeフォントを使う場合どうすればいいのでしょうか?
CreateFontで作れるのでしょうか?GDI+使う感じなのでしょうか?
なにかサンプルコードなどないですか?
0706デフォルトの名無しさん
2015/06/21(日) 10:57:56.35ID:RGV/Ctvq0707デフォルトの名無しさん
2015/06/21(日) 11:22:27.99ID:PrHd//Rt0708デフォルトの名無しさん
2015/06/21(日) 11:27:11.38ID:6MCS1TVm0709デフォルトの名無しさん
2015/06/21(日) 12:43:22.07ID:qOkHT/Po0710デフォルトの名無しさん
2015/06/21(日) 14:26:01.26ID:s2U9J1utCreateFontIndirectExっていうAPI見つけてみたのですが、使用例が見つからなくて困ってます。
DirectWrite使うべきか?
0711デフォルトの名無しさん
2015/06/21(日) 14:47:07.73ID:18zFj96O0712デフォルトの名無しさん
2015/06/21(日) 15:07:00.68ID:toO9zloq0713デフォルトの名無しさん
2015/06/21(日) 15:16:11.12ID:s2U9J1utコンパネのディスプレイ設定、150%などのスケーリングだと、
HDC screen = GetDC(0);
dpiScaleX_ = GetDeviceCaps(screen, LOGPIXELSX) / 96.0f;
dpiScaleY_ = GetDeviceCaps(screen, LOGPIXELSY) / 96.0f;
とか計算して、フォントサイズ調整すればいいと思うんだけど、
フォントの描画をきれいにしたい場合はどうすればよい?
上記通りにDirectWriteつかうってこと?
DirectWrite使わずに、Win32APIでなんとかならないかなぁ。
0714片山博文MZ ◆T6xkBnTXz7B0
2015/06/21(日) 15:24:15.94ID:szDYpocA0715デフォルトの名無しさん
2015/06/21(日) 21:51:49.65ID:s2U9J1utDirectWriteとANTIALIASED_QUALITY 見比べたのですが、ディスプレイ150%だと
DirectWriteのほうがきれいに見えましたorz
手軽さはANTIALIASED_QUALITYのほうがありますよねぇ。。
0716デフォルトの名無しさん
2015/06/21(日) 22:05:19.51ID:mTVvjbYS4kモニタで見ないとキレイかどうかは分からんよ
0717デフォルトの名無しさん
2015/06/21(日) 22:44:41.86ID:iA5cm4E7素直にDirectWrite使っておけ
0718デフォルトの名無しさん
2015/06/22(月) 07:53:59.38ID:Jo3Uu3lvhttp://ggsoku.com/2015/06/windows-insider-program/
0719デフォルトの名無しさん
2015/06/22(月) 08:43:07.31ID:wPKyeAMT0720デフォルトの名無しさん
2015/06/22(月) 09:38:27.63ID:4zqB2xFWそれはないだろう
0721デフォルトの名無しさん
2015/06/22(月) 09:51:06.35ID:Jo3Uu3lv次も騙されるのはほぼ確実なのに
どうして手が出てしまうのは何故?
0722デフォルトの名無しさん
2015/06/22(月) 09:56:55.51ID:QXqLXD7b0723デフォルトの名無しさん
2015/06/22(月) 11:26:51.83ID:kJni3XZOttp://www.winbeta.org/news/microsoft-backtracks-free-windows-10-insiders-again
0724デフォルトの名無しさん
2015/06/22(月) 14:40:54.58ID:NZ6EkxzL一旦撤回ってことかい
0725デフォルトの名無しさん
2015/06/22(月) 15:21:03.30ID:kJni3XZO追記されたなω
0726デフォルトの名無しさん
2015/06/23(火) 09:02:11.36ID:LQs/3Np00727デフォルトの名無しさん
2015/06/25(木) 01:51:12.41ID:YKv+aflv0728デフォルトの名無しさん
2015/06/25(木) 05:04:32.91ID:/j6tmhxB0729デフォルトの名無しさん
2015/06/25(木) 07:54:52.07ID:tqVIvEYY0730デフォルトの名無しさん
2015/06/25(木) 10:55:11.76ID:duzWPGDShttps://msdn.microsoft.com/ja-jp/library/xcb2z8hs.aspx
こんなのが見つかったのですがなぜAPI化しないのでしょうか?
0731デフォルトの名無しさん
2015/06/25(木) 12:10:03.56ID:ni30MNzk作者の心情を答えなさいって国語の教師かお前
本人に聞けよ
Connectにいるだろ
0732デフォルトの名無しさん
2015/06/25(木) 13:32:38.12ID:WAzNpY4B0733デフォルトの名無しさん
2015/06/25(木) 14:13:35.00ID:LgsbVB/f操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Win32Api2ch>
0734デフォルトの名無しさん
2015/06/25(木) 14:53:12.19ID:/OYmKyKQ0735デフォルトの名無しさん
2015/06/25(木) 20:25:48.55ID:gnR3qgHj0736デフォルトの名無しさん
2015/06/25(木) 20:34:41.26ID:LOTicnb/0737デフォルトの名無しさん
2015/06/25(木) 20:45:36.18ID:DA6pej+Tコンパイルエラー
0738デフォルトの名無しさん
2015/06/25(木) 20:48:44.72ID:b0Ef420MWarning:ループを脱出しません。breakが抜けていませんか?
0739デフォルトの名無しさん
2015/06/25(木) 20:52:48.83ID:2iFFcEMcそのAPIとDNAから将来の顔を予想するAPIが完成したら
生まれる前に殺処分されまくりだろ
0740デフォルトの名無しさん
2015/06/25(木) 20:57:20.27ID:DA6pej+T0741デフォルトの名無しさん
2015/06/25(木) 21:02:16.75ID:LOTicnb/(しまった3,4引数抜けてるやんけ)
0742デフォルトの名無しさん
2015/06/25(木) 21:34:15.42ID:LgsbVB/f0743デフォルトの名無しさん
2015/06/25(木) 22:21:02.54ID:DA6pej+T0744デフォルトの名無しさん
2015/06/25(木) 23:33:13.02ID:LgsbVB/f0745デフォルトの名無しさん
2015/06/25(木) 23:39:19.36ID:L8cWAkwK0746デフォルトの名無しさん
2015/06/26(金) 01:08:26.72ID:k6ZmRQxF0747デフォルトの名無しさん
2015/06/26(金) 03:45:07.92ID:FoKgBXHj0748デフォルトの名無しさん
2015/06/26(金) 20:24:10.87ID:yrtFON1m座布団一枚
0749デフォルトの名無しさん
2015/06/26(金) 22:30:59.10ID:O5RxHheG0750デフォルトの名無しさん
2015/06/26(金) 23:27:11.85ID:Dyy+uFg30751デフォルトの名無しさん
2015/06/27(土) 04:58:01.24ID:8NDoKwy7驚いーた
0752デフォルトの名無しさん
2015/06/27(土) 11:47:26.62ID:ZCoIcdRWインターフェース設計がいまいちだな
ヒューマンハンドルと部位列挙子が必須だろ
構造体を複雑にするとバカが変数に未初期化与えてくる
0753デフォルトの名無しさん
2015/06/27(土) 11:53:19.61ID:iDD3CLpVツマンネ
0754デフォルトの名無しさん
2015/06/27(土) 12:04:48.58ID:ZCoIcdRW飛沫ぷしだからな
0755デフォルトの名無しさん
2015/06/27(土) 14:40:59.99ID:f57Tnoer0756デフォルトの名無しさん
2015/06/27(土) 15:05:17.65ID:32dsCv8Vゴミが喜んだという結果がすべてだ
ゴミに餌を与えるな
0757デフォルトの名無しさん
2015/06/27(土) 18:30:37.69ID:tjNOYrXg0758デフォルトの名無しさん
2015/06/27(土) 18:45:20.15ID:waGkIkkD0759デフォルトの名無しさん
2015/06/27(土) 18:47:12.03ID:NGa5WpI/0760デフォルトの名無しさん
2015/06/27(土) 21:58:12.79ID:ogdHqDPf0761デフォルトの名無しさん
2015/06/27(土) 22:34:35.43ID:RP+B0MK90762デフォルトの名無しさん
2015/06/28(日) 18:56:15.64ID:TzgnuxBg0763デフォルトの名無しさん
2015/06/28(日) 20:26:25.68ID:0jIFNkRO0764デフォルトの名無しさん
2015/06/29(月) 00:24:28.74ID:QHv2z3oI0765デフォルトの名無しさん
2015/06/29(月) 00:34:22.40ID:ETSNtk0o>>758
マジレスすると最強のAPIは・・・o_ _)o ドテッ
0766片山博文MZ ◆T6xkBnTXz7B0
2015/06/29(月) 00:42:00.21ID:w5c3Mch/0767デフォルトの名無しさん
2015/06/29(月) 10:55:12.11ID:RBuJiewECoCreateInstance
0768デフォルトの名無しさん
2015/06/29(月) 13:44:50.13ID:ZS1C/3ACどのあたりが強いんですか?
0769デフォルトの名無しさん
2015/06/29(月) 16:17:16.84ID:RBuJiewE0770デフォルトの名無しさん
2015/06/29(月) 16:42:18.29ID:k+90EXgh>>767 は
GetProcAddressはアドレス固定とかexe作成時に色々確定しちゃうけど
COMは実質なんでもありになる
って言いたいんだろうけど
>>786 は GetProcAddress はおそらくフックの意味で言ってるから
>>767 の意見は微妙に的を外してる
0771デフォルトの名無しさん
2015/06/29(月) 17:04:27.25ID:2tX/Gwc00772デフォルトの名無しさん
2015/06/29(月) 17:59:42.87ID:kT4YJ0UX0773デフォルトの名無しさん
2015/06/29(月) 18:39:46.51ID:QHv2z3oI0774デフォルトの名無しさん
2015/06/29(月) 19:12:00.54ID:ETSNtk0o0775デフォルトの名無しさん
2015/06/29(月) 23:34:04.50ID:QHv2z3oIExitWindowsExさんには、EWX_FORCE という強制力の強いオプションがあるので、このフラグを付けておけば、たぶん妨害できないだろう。
知らんけど。
0776デフォルトの名無しさん
2015/06/30(火) 06:10:10.98ID:HavR6+Ou0777777
2015/06/30(火) 06:10:38.86ID:HavR6+Ou0778デフォルトの名無しさん
2015/06/30(火) 08:52:35.10ID:joix9/cZ0779デフォルトの名無しさん
2015/07/01(水) 01:04:39.82ID:n8YBgiaB0780デフォルトの名無しさん
2015/07/01(水) 02:08:24.73ID:zEAl+94d構造化例外を使うとか
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/seh.html
0781デフォルトの名無しさん
2015/07/01(水) 15:28:40.09ID:WR8QWr5f舐めんなカス
0782デフォルトの名無しさん
2015/07/01(水) 15:31:47.45ID:UI7Zb7Dpなら氏ね
0783デフォルトの名無しさん
2015/07/01(水) 16:02:57.25ID:WrSpGcQO0784デフォルトの名無しさん
2015/07/01(水) 18:31:44.53ID:8R1ww0k20785デフォルトの名無しさん
2015/07/01(水) 23:01:56.90ID:n8YBgiaBその方法だとtryでブロック内でのことしか知ることはできませんよね
発生する箇所が特定できているのであれば、その理由を修正すればいい
0786デフォルトの名無しさん
2015/07/02(木) 18:28:52.20ID:nNjASfin0787デフォルトの名無しさん
2015/07/02(木) 21:35:29.72ID:+04Fwkxzメモリー周りのバグ持ちだろ?ポインタの操作ミスや、開放済みのヒープにアクセスとか原因じゃねーの?
さっさと、デバッガーで、原因なる箇所を特定してプログラム修正したほうが幸せになれるよ?
0788デフォルトの名無しさん
2015/07/02(木) 21:36:47.65ID:RvX8MGmG0789デフォルトの名無しさん
2015/07/02(木) 21:48:00.03ID:+04Fwkxzhttps://msdn.microsoft.com/ja-jp/library/1deeycx5.aspx
こんな例外使ったことないで、知らんけど。
0790デフォルトの名無しさん
2015/07/02(木) 21:49:52.96ID:Hn8L5g/m0791デフォルトの名無しさん
2015/07/02(木) 22:02:46.27ID:VH1uyxJY仮想記憶も使わないんだな。修行僧みたいな奴。
0792デフォルトの名無しさん
2015/07/02(木) 22:33:36.25ID:XpxJdW9h__exceptのフィルタ式は例外発生時に呼ばれるから目的は達成
0793デフォルトの名無しさん
2015/07/02(木) 22:39:40.65ID:XpxJdW9h使ったことないのか、お前の方が無能だな
デバッガアタッチするのが面倒もしくは不可能な場合はこれ便利だから使い方を覚えたほうがいいぞ
0794デフォルトの名無しさん
2015/07/02(木) 22:55:27.52ID:+04Fwkxz優秀すぎてごめんな。
0795デフォルトの名無しさん
2015/07/02(木) 23:14:50.48ID:XpxJdW9hwwwwwwwwww
0796デフォルトの名無しさん
2015/07/03(金) 00:55:16.12ID:ryU5iGHB0797デフォルトの名無しさん
2015/07/03(金) 08:43:02.38ID:OZHQEleK0798デフォルトの名無しさん
2015/07/03(金) 08:47:08.74ID:jZs8Gwbi0799デフォルトの名無しさん
2015/07/03(金) 10:37:05.05ID:K0nlnxJc0800デフォルトの名無しさん
2015/07/03(金) 10:42:35.05ID:OZHQEleKこういうドジロボットはWindowsCEでコントロールされているのか?
http://www.cnn.co.jp/business/35066855.html
http://www.bbc.co.uk/newsbeat/article/33359005/man-crushed-to-death-by-robot-at-car-factory
0801デフォルトの名無しさん
2015/07/04(土) 15:06:15.48ID:WvwJxr100802デフォルトの名無しさん
2015/07/05(日) 03:01:25.79ID:18u325sL↑ ↑ ↑ ↑ ↑ ↑
0803デフォルトの名無しさん
2015/07/06(月) 02:47:46.17ID:9XDhx0xw0804デフォルトの名無しさん
2015/07/06(月) 07:25:29.60ID:MZduqVAI0805デフォルトの名無しさん
2015/07/06(月) 08:37:54.20ID:fhp0P+BJAPI 要らん
0806デフォルトの名無しさん
2015/07/06(月) 08:51:00.97ID:PmLO0F5+__exceptのフィルタ式は例外発生時に呼ばれるから目的は達成
0807デフォルトの名無しさん
2015/07/06(月) 10:37:34.67ID:2AmbnSO30808デフォルトの名無しさん
2015/07/06(月) 18:28:45.25ID:aMdG5cmXint mokon=0;
*hage=mokon;
0809デフォルトの名無しさん
2015/07/08(水) 03:45:19.45ID:YPGA1F9aアクセスバイオレーションが発生するポンコツなプログラム書いたことないんだ
優秀すぎてごめんな
0810デフォルトの名無しさん
2015/07/08(水) 07:30:14.50ID:9UDndsjQ0811デフォルトの名無しさん
2015/07/08(水) 07:44:00.09ID:rW6o/Qq/0812デフォルトの名無しさん
2015/07/08(水) 09:08:16.60ID:2QulqvWg{
char str[128];
cout << "名前を入力してください>";
cin >> str;
cout << "ようこそ " << str << " さん";
}
0813デフォルトの名無しさん
2015/07/08(水) 09:12:42.39ID:Ln73JLk20814デフォルトの名無しさん
2015/07/08(水) 09:24:10.20ID:9UDndsjQ0815デフォルトの名無しさん
2015/07/08(水) 10:58:19.34ID:U80w5CD7VB6 しか使えないロートルは早く絶滅しろよ
0816デフォルトの名無しさん
2015/07/08(水) 18:31:53.70ID:TD6H53ox0817デフォルトの名無しさん
2015/07/08(水) 20:15:23.74ID:PAkk6Hqa今時そんな人いるんですか?
VB6なんて売ってないでしょ?
0818デフォルトの名無しさん
2015/07/08(水) 20:28:45.36ID:t0H2tWbIMSDN でダウンロードできる
0819デフォルトの名無しさん
2015/07/08(水) 21:22:45.68ID:K3Unqfxiまだ現役でもおかしくあるめえ
0820片山博文MZ ◆T6xkBnTXz7B0
2015/07/08(水) 21:41:19.88ID:73Ug3Wex0821デフォルトの名無しさん
2015/07/08(水) 23:09:10.75ID:z3zUBBg10822デフォルトの名無しさん
2015/07/08(水) 23:11:07.71ID:Fvcu1Ghj言語問わずアクセスバイオレーションが発生するポンコツなプログラム書いたことないんだ
優秀すぎてごめんな
0823デフォルトの名無しさん
2015/07/08(水) 23:25:58.93ID:B+dWeTkM0824デフォルトの名無しさん
2015/07/08(水) 23:36:27.81ID:K3Unqfxi0825デフォルトの名無しさん
2015/07/09(木) 00:21:29.50ID:5bcW9mp8某コンパイラはVC6で開発してるな。
あまりにも巨大すぎて移行できないんだろう。
0826デフォルトの名無しさん
2015/07/09(木) 01:53:20.78ID:g6fEFdH+頭悪いやつ馬鹿にしてごめんな
0827デフォルトの名無しさん
2015/07/09(木) 07:02:04.30ID:yvZx6GXvどのコンパイラですか?
0828デフォルトの名無しさん
2015/07/09(木) 12:07:18.75ID:p7UoE0Xe0829デフォルトの名無しさん
2015/07/09(木) 12:11:44.20ID:7g9w6aL60830デフォルトの名無しさん
2015/07/09(木) 17:47:18.76ID:c0tzkZ6m0831デフォルトの名無しさん
2015/07/09(木) 17:50:42.34ID:7g9w6aL6マイクロソフトは「スマホ」から撤退するのか -製造販売部門の大リストラを発表-
http://toyokeizai.net/articles/-/76331
0832デフォルトの名無しさん
2015/07/09(木) 19:56:26.49ID:n0IdOdTN保守とかならいるかも
でも C++ はバージョンアップ重ねてるから大抵の Visual Studio に移行してると思う
VB6 はいきなり切られたから、VB.NET/C# についていけない >>822 みたいなロートルが泣きながら仕事しているらしい w
0833デフォルトの名無しさん
2015/07/09(木) 19:56:55.97ID:yvZx6GXv何でvs2013使わないんですか?タダなのに。
0834デフォルトの名無しさん
2015/07/09(木) 20:16:09.51ID:vgLfGCMi最新のを使っても利点を生かせなければクソ重いだけ
0835デフォルトの名無しさん
2015/07/09(木) 20:19:49.88ID:yvZx6GXvなるほど。
ちなみにですが、主にどんなアプリ作っているんですか?
0836デフォルトの名無しさん
2015/07/09(木) 20:24:14.04ID:f3titK1c20年前のマシン使ってんならそうだろうが
現行のマシンなら重いとかなくね
0837デフォルトの名無しさん
2015/07/09(木) 20:27:35.85ID:aXzlg7or突然ルートディレクトリに大量にファイル作りやがる
0838デフォルトの名無しさん
2015/07/09(木) 23:45:09.30ID:iEWXCywy%TMP%くらい満足に使いこなして欲しいな
0839デフォルトの名無しさん
2015/07/10(金) 18:08:59.61ID:LUw9Kp5I女が寄って来てうざい
0840デフォルトの名無しさん
2015/07/10(金) 18:42:14.59ID:Yv19xyy00841デフォルトの名無しさん
2015/07/10(金) 19:25:51.10ID:k4W3SF840842デフォルトの名無しさん
2015/07/10(金) 19:30:08.09ID:DCa/3nZ30843デフォルトの名無しさん
2015/07/11(土) 14:56:24.84ID:jgnuth+z0844デフォルトの名無しさん
2015/07/11(土) 15:45:07.97ID:wDiLgvvw0845デフォルトの名無しさん
2015/07/11(土) 16:29:04.41ID:Vyaa6yc00846デフォルトの名無しさん
2015/07/11(土) 16:44:46.30ID:uKki+Yew0847デフォルトの名無しさん
2015/07/11(土) 16:53:35.40ID:jgnuth+z0848デフォルトの名無しさん
2015/07/11(土) 19:30:31.76ID:SvdcMd320849デフォルトの名無しさん
2015/07/11(土) 20:17:46.31ID:coKbQ2xfhehe(^^);
0850デフォルトの名無しさん
2015/07/12(日) 00:47:29.54ID:ijGXRf9p0851デフォルトの名無しさん
2015/07/12(日) 01:14:26.18ID:FRFJl4lk0852デフォルトの名無しさん
2015/07/12(日) 01:58:25.70ID:bNKEejS10853デフォルトの名無しさん
2015/07/13(月) 09:21:30.26ID:JZVSQPVKhttp://www.unchi-time.com/variety
0854デフォルトの名無しさん
2015/07/13(月) 14:45:24.72ID:vELytWdSINVALID_HANDLE_VALUEを返すものとNULLを返すものがあって
分かりづらいのでどちらかに統一して欲しいのですが。
0855デフォルトの名無しさん
2015/07/13(月) 16:14:06.02ID:VD4KavgGもう手遅れです
0856デフォルトの名無しさん
2015/07/13(月) 17:38:08.57ID:UxTEJ+9t0857デフォルトの名無しさん
2015/07/13(月) 18:19:23.97ID:FYGRXR4u0858デフォルトの名無しさん
2015/07/13(月) 20:02:07.71ID:A8Ot3jfM0859デフォルトの名無しさん
2015/07/13(月) 21:43:44.20ID:c4ofviqJNULL なんて返す奴あったっけ?
そもそもポインタじゃないし
まあ、MS のやることだからあっても不思議はないか w
0860デフォルトの名無しさん
2015/07/13(月) 22:04:33.05ID:009JjLRI0861デフォルトの名無しさん
2015/07/13(月) 22:45:48.63ID:oy7UoxZDSetLastError()
0862デフォルトの名無しさん
2015/07/13(月) 23:11:16.60ID:cxTds9wUAPIフック
0863デフォルトの名無しさん
2015/07/14(火) 03:29:01.99ID:/TaTU2Zl確かあったな、メモリマップトファイルとかじゃなかったか?
0864デフォルトの名無しさん
2015/07/14(火) 03:29:10.64ID:myrBvFFHそれな
0865デフォルトの名無しさん
2015/07/14(火) 10:02:05.35ID:aQ7CHF0E0866片山博文MZ ◆T6xkBnTXz7B0
2015/07/14(火) 18:13:59.16ID:2KYZ+h7+0867デフォルトの名無しさん
2015/07/14(火) 22:13:11.77ID:HOS5JxSeおお、ほんとだ
CreateFileMapping( ) とかは NULL を返すんだな
しかも第一引数も HANDLE 型で INVALID_HANDLE_VALUE 云々とか...
何をどう考えたらこんな設計になるんだろう?
0868デフォルトの名無しさん
2015/07/15(水) 08:52:22.07ID:RUlladwohttp://blogs.msdn.com/b/oldnewthing/archive/2004/03/02/82639.aspx
0869デフォルトの名無しさん
2015/07/15(水) 12:43:05.08ID:87IId9CTmallocに合わせたんじゃね
0870デフォルトの名無しさん
2015/07/15(水) 19:06:29.05ID:TqiY1lgM0871デフォルトの名無しさん
2015/07/15(水) 20:31:28.97ID:GwyaNqFE0872デフォルトの名無しさん
2015/07/15(水) 20:37:32.89ID:KRGDXVVB0873デフォルトの名無しさん
2015/07/15(水) 21:29:18.71ID:2t4VwR8Umalloc( ) が返すのはポインタだからねぇ
0874デフォルトの名無しさん
2015/07/15(水) 21:40:45.35ID:GwyaNqFE0875デフォルトの名無しさん
2015/07/21(火) 10:02:35.99ID:tCWoA/Ex0876デフォルトの名無しさん
2015/07/21(火) 11:04:01.49ID:CRPPOL9n0877片山博文MZ ◆T6xkBnTXz7B0
2015/07/21(火) 16:40:23.46ID:PRXZAEwH2バイト整数で小さい数を選んだだけとちゃう?
実際、その位置にあったら見えないし
0878デフォルトの名無しさん
2015/07/21(火) 21:18:04.44ID:MZjkxTxwメインディスプレイの左側に配置したらどうなるんだろうね。
最小化したはずのウィンドウが、-32000に集まって表示されてたら笑えるんだが。
というかその前に4Kディスプレイを横に10枚並べると、
short int の範囲を超えるわけだが、Windows的にはどうなるんだろう。
0879デフォルトの名無しさん
2015/07/22(水) 02:37:38.64ID:wwLVthBaそういえば、bitmapのファイルフォーマットとかも縦横のサイズが2バイトしかとられてなかったな
0880デフォルトの名無しさん
2015/07/22(水) 04:20:59.50ID:drU6njtJAPIを使う側でマジックナンバーとして用いられる物ではないので
変えようと思えばいつでも変えられる数字だ
またビットマップのサイズはLONGだ
0881デフォルトの名無しさん
2015/07/22(水) 07:20:55.54ID:gO2ya5VL0882デフォルトの名無しさん
2015/07/22(水) 09:51:46.52ID:FCe8t7wtWindows 9xは最小化時に3000,3000に配置されるので最小化されたウィンドウが見えたりする
http://blogs.msdn.com/b/oldnewthing/archive/2004/10/28/249044.aspx
メッセージとかでサイズや座標を16ビットで扱ってるところがいっぱいあるから問題になるとすればそっちだが
0883デフォルトの名無しさん
2015/07/22(水) 16:52:16.53ID:DzvVxqVcGET_X_LPARAMとかの引数のlParamは32bitで、
これを二つに分けて使っているので、16bit幅しかない。
0884デフォルトの名無しさん
2015/07/22(水) 18:10:35.27ID:gO2ya5VL0885デフォルトの名無しさん
2015/07/26(日) 23:34:20.25ID:m4Er4LcOdropしようとしても、カーソルが進入禁止のままってなんでですか?
ほかになにか必要ですか?
0886デフォルトの名無しさん
2015/07/26(日) 23:40:25.43ID:gM3hZclCない
0887デフォルトの名無しさん
2015/07/26(日) 23:42:53.64ID:kbQtFiQ+0888デフォルトの名無しさん
2015/07/26(日) 23:49:49.06ID:nMu2ki+q>>887だけでWS_EX_ACCEPTFILEXいらんで
0889デフォルトの名無しさん
2015/07/28(火) 11:48:08.72ID:+s6a8TfC0890デフォルトの名無しさん
2015/07/28(火) 20:58:01.70ID:+BTdJW4uhttp://www.geocities.jp/midorinopage/Beginner/beginner24.html
case WM_CREATE:
DragAcceptFiles(hWnd,TRUE); // D&D を許可する
0891デフォルトの名無しさん
2015/07/28(火) 21:26:09.25ID:sFAhL5HY至高のRegisterDragDrop様に跪くべきだよね?
0892デフォルトの名無しさん
2015/07/28(火) 22:03:28.60ID:iGgxwEKdまあIDropTarget実装しないとドラッグイメージすら描けないけど
0893デフォルトの名無しさん
2015/07/28(火) 23:02:51.80ID:dCM9/1ijRevokeDragDrop呼んでも、参照カウンタが-1されないんだが。
鬱陶しいんで、強制的にdeleteしている。
0894デフォルトの名無しさん
2015/07/29(水) 02:56:54.02ID:m35CSydP0895デフォルトの名無しさん
2015/07/29(水) 06:10:32.63ID:ozMfiNSe0896デフォルトの名無しさん
2015/07/29(水) 08:37:39.33ID:yPzqCl4KWS_EX_ACCEPTFILESを指定すればDragAcceptFilesの呼び出しは不要
逆にDragAcceptFilesを呼ぶならWS_EX_ACCEPTFILESは不要
つまりそのサイトの記述は間違い
0897デフォルトの名無しさん
2015/07/29(水) 09:00:30.59ID:yPzqCl4K> TCHAR szDropFile[MAX_PATH + 1];
MAX_PATHに+1してるのもおかしいし
> if((lstrcmp(PathFindExtension(szDropFile),TEXT(".bmp")) == 0) ||
> (lstrcmp(PathFindExtension(szDropFile),TEXT(".BMP")) == 0))
なぜlstrcmpiを使わないのか…
.Bmpとかだったらどうなるのかと
0898デフォルトの名無しさん
2015/07/29(水) 09:41:27.14ID:2NWQ7kCA0899デフォルトの名無しさん
2015/07/29(水) 10:23:44.49ID:c3o2n8R7+1するといけないのか?
0900デフォルトの名無しさん
2015/07/29(水) 10:39:41.59ID:r60oeVP/0901デフォルトの名無しさん
2015/07/29(水) 11:11:35.12ID:GXftD+7W0902デフォルトの名無しさん
2015/07/29(水) 11:17:29.49ID:5YdTwoj1パスの頭に\\?\か何か付け加えると、32000文字までOKとか言うのもあるし。
MAX_PATHを超えるパスを持つファイルは、コマンドラインとかからだと作れるし。
でも、そういうファイルはエクスプローラだとバグるんで、やっぱり気にする必要ないんですかね。
0903デフォルトの名無しさん
2015/07/29(水) 11:18:48.72ID:RzPhPosx0904デフォルトの名無しさん
2015/07/29(水) 11:24:29.52ID:RzPhPosxhttps://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
0905デフォルトの名無しさん
2015/07/29(水) 11:31:46.27ID:5YdTwoj1MAX_PATHでは不十分ってこと?
0906デフォルトの名無しさん
2015/07/29(水) 13:42:05.84ID:c3o2n8R7俺は用心深いのでパス格納用の領域は毎回mallocで必要サイズを確保するぞ。
0907デフォルトの名無しさん
2015/07/29(水) 14:55:59.27ID:xy7GgrmF大文字小文字を考慮してるのにもかかわらず全ての可能性までは考慮していないクソコード
>>906
用心深いと言う事は
p = malloc()
if(p == NULL)
と毎回やってるのか確保用関数でも作ってんのか
0908デフォルトの名無しさん
2015/07/29(水) 14:57:19.72ID:c3o2n8R7>p = malloc()
>if(p == NULL)
>と毎回やってるの
はい。
0909デフォルトの名無しさん
2015/07/29(水) 14:57:28.73ID:xy7GgrmFTCHAR, TEXT("")使ってんのにlstrcmpもおかしいよな
_tcscmpにしろと
0910デフォルトの名無しさん
2015/07/29(水) 15:00:49.43ID:xy7GgrmFそんなあなたに
try {
p1 = NULL
p2 = NULL
p1 = new
p2 = new
p3 = new
}
catch(const std::bad_alloc &) {
// 失敗時の処理
delete p2;
delete p1;
}
0911デフォルトの名無しさん
2015/07/29(水) 15:04:45.93ID:c3o2n8R7俺だったらdeleteしたあとNULL代入するよ。
0912デフォルトの名無しさん
2015/07/29(水) 15:06:23.98ID:RzPhPosxVS2013以降ならstd::stringもバッファとして使用できる
0913デフォルトの名無しさん
2015/07/29(水) 15:20:39.60ID:xy7GgrmFdeleteを重複させるような事になるならそうだな
0914デフォルトの名無しさん
2015/07/29(水) 15:28:15.78ID:eAAheHcV昨日今日C++を知ったのか?
0915デフォルトの名無しさん
2015/07/29(水) 15:31:21.63ID:c3o2n8R7じゃあ高レベルなネタを頼む。退屈なんで。
0916デフォルトの名無しさん
2015/07/29(水) 15:34:08.72ID:KIQD62Zp0917デフォルトの名無しさん
2015/07/29(水) 16:57:48.19ID:1zEW+9y+このスレでやることじゃない
0918片山博文MZ ◆T6xkBnTXz7B0
2015/07/29(水) 17:24:26.11ID:8zhTwlQ7こっちだよ
【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止]・2ch.net
http://peace.2ch.net/test/read.cgi/tech/1418438785/
0919デフォルトの名無しさん
2015/07/29(水) 19:38:49.56ID:5YdTwoj1結果を返してもらうためのバッファってどれぐらい必要なんですかね。
やっぱ32000?それともMAX_PATHで十分?
0920デフォルトの名無しさん
2015/07/29(水) 19:48:44.80ID:7PHxXKam最低256文字、上限は不定だ
嫌ならWindowsでプログラム書くのやめろ
0921片山博文MZ ◆T6xkBnTXz7B0
2015/07/29(水) 19:58:16.70ID:8zhTwlQ7いっぺんに100個のファイルを開くユーザーも居るだろうし。
0922片山博文MZ ◆T6xkBnTXz7B0
2015/07/29(水) 20:02:43.21ID:8zhTwlQ7OS側が動的に確保するのが理想的。
0923デフォルトの名無しさん
2015/07/29(水) 20:09:20.43ID:ozMfiNSe石器時代かよ
IShellItemArrayとかで返すんだろ
0924片山博文MZ ◆T6xkBnTXz7B0
2015/07/29(水) 20:37:50.03ID:8zhTwlQ7http://www.codeproject.com/Articles/16678/Vista-Goodies-in-C-Using-the-New-Vista-File-Dialog
0925デフォルトの名無しさん
2015/07/29(水) 20:56:41.63ID:7PHxXKam0926デフォルトの名無しさん
2015/07/29(水) 23:12:05.83ID:CRqVMe5R256ではとても足りない
SUSIEとか古いアプリがパス長すぎると死ぬるのが辛い
0927片山博文MZ ◆T6xkBnTXz7B0
2015/07/29(水) 23:20:24.49ID:8zhTwlQ7いい加減代わりのものを誰かが新しく作り直さないと。
0928デフォルトの名無しさん
2015/07/29(水) 23:27:16.85ID:eAAheHcV死ぬほど対応形式多いぞ
0929片山博文MZ ◆T6xkBnTXz7B0
2015/07/29(水) 23:44:49.69ID:8zhTwlQ70930デフォルトの名無しさん
2015/07/30(木) 23:04:49.15ID:3aeaJx+C0931デフォルトの名無しさん
2015/07/31(金) 16:20:53.11ID:Dkg4afbGパス名とか固定長データ型扱うAPIは仕方ないんじゃないかな
0932デフォルトの名無しさん
2015/07/31(金) 20:36:22.17ID:ueomFH8Yエラーになるもんな。
0933デフォルトの名無しさん
2015/07/31(金) 20:46:29.01ID:fRz1WIXAAPIは「〜Ex」で建て増しだらけなわけだが...
0934デフォルトの名無しさん
2015/07/31(金) 21:21:12.37ID:D+nD3a7OIFoo
IFoo2
IFoo3
...
とかあるもんな
拡張してるなーとか思ってたらあっさり新OSでサポートなくなるかもよー?とか警告されたり
実際にサポートぶち切られるのはあんまり聞かないけど
0935デフォルトの名無しさん
2015/07/31(金) 21:22:00.27ID:D+nD3a7OE_NOTIMPLが帰ってきたりはするか
0936デフォルトの名無しさん
2015/08/01(土) 09:44:31.69ID:406fNIXp0937デフォルトの名無しさん
2015/08/01(土) 10:17:58.43ID:ofIED9A/0938デフォルトの名無しさん
2015/08/01(土) 11:08:26.38ID:ejRhEGfZ0939デフォルトの名無しさん
2015/08/01(土) 13:20:33.78ID:/YTF1HLDその手のCOMは、必要十分なメソッドがなかったりするからな
少し外れたことをやるには、結局ネイティブAPIに落とすことになる。
パワーシェルを使うシステム担当が使うもので、真面目にソフトウェアを開発するから、ネイティブを使った方がテストが楽で、保証できる品質も最低限までは向上できる。
使い捨てのソフトウェア用
0940デフォルトの名無しさん
2015/08/01(土) 14:00:35.06ID:oNQPgTQjAPIの作り方を教えろ
0941デフォルトの名無しさん
2015/08/01(土) 14:14:02.06ID:N1liDq/U0942デフォルトの名無しさん
2015/08/01(土) 15:49:52.69ID:4mrxGYsr0943片山博文MZ ◆T6xkBnTXz7B0
2015/08/01(土) 16:09:14.50ID:EYue673y0944デフォルトの名無しさん
2015/08/01(土) 16:32:09.71ID:4mrxGYsr余計なもん学んでる暇はない
俺は最短コースでAPIを作る必要迫られてる
0945片山博文MZ ◆T6xkBnTXz7B0
2015/08/01(土) 16:52:17.88ID:/RIOF0J6Web API作りたいならJavaScriptを勉強しろ。
0946デフォルトの名無しさん
2015/08/01(土) 19:45:44.71ID:waGA91Tw0947デフォルトの名無しさん
2015/08/01(土) 19:48:30.36ID:4mrxGYsr学ぶ気にならんな
0948デフォルトの名無しさん
2015/08/01(土) 19:50:05.26ID:4FytA4pZ0949デフォルトの名無しさん
2015/08/01(土) 20:27:07.14ID:aojbSuUF今頃どうなってるんだろうな
0950デフォルトの名無しさん
2015/08/01(土) 20:30:46.58ID:4mrxGYsr0951デフォルトの名無しさん
2015/08/02(日) 18:42:33.69ID:Q52Atkvt0952デフォルトの名無しさん
2015/08/02(日) 18:48:15.13ID:q/ikqjRAVerifyVersionInfo is deprecated for Windows 10
https://msdn.microsoft.com/en-us/library/windows/desktop/ms725492(v=vs.85).aspx
0953デフォルトの名無しさん
2015/08/02(日) 19:07:18.07ID:dTRZmQiN0954デフォルトの名無しさん
2015/08/02(日) 19:36:54.84ID:USeAoY4932bit使ってる化石はしね
0955デフォルトの名無しさん
2015/08/02(日) 20:16:26.16ID:SLv/zRdd0956デフォルトの名無しさん
2015/08/02(日) 20:29:42.24ID:5wrdjVlgお前は口答えせず言われたことをやってりゃいいんだよ
0957デフォルトの名無しさん
2015/08/02(日) 21:06:23.41ID:ROYi8F/F音声のキャプチャに、サウンドカードのステレオミックスを使用しない方法って何かないでしょうか?
0958デフォルトの名無しさん
2015/08/02(日) 21:48:15.72ID:MF9TQU9s0959デフォルトの名無しさん
2015/08/02(日) 22:20:13.59ID:HOry/lASなったけど上位4バイトは空なんじゃなかったっけ
0960片山博文MZ ◆T6xkBnTXz7B0
2015/08/02(日) 23:14:37.59ID:/jG0U/Tz0961デフォルトの名無しさん
2015/08/03(月) 02:43:55.92ID:TVbEWMpV1.暗号復号のアルゴリズムがわかること
2.鍵がわかること
の両方が破られることが条件
AESは「1.をわざわざ公開してる」ということが問題
つまり鍵をしらみつぶしで総当たりすればいつかは解けることが保証される
本来の暗号のキモは「1.が不明であること」なんだよな
0962デフォルトの名無しさん
2015/08/03(月) 02:45:31.44ID:fJ/F2Qaa0963デフォルトの名無しさん
2015/08/03(月) 05:58:38.44ID:vbPvRk2A今まで考案されてきた暗号の中には,
暗号鍵がわからなくても簡単に解かれてしまう
場合があった.オレオレ似非暗号を排除するため
あえて暗号方法を公開して検証のフィルタを通している.
運用において AES をつかっているとか towfish, RC5 とか
そういうのを公開しないことは,ありだとうは思うが
まあそういうのを秘密にする努力を払う必要もない
鍵だけ秘密にすれば十分
0964デフォルトの名無しさん
2015/08/03(月) 08:58:18.55ID:j8uLMTyNなるほど、話が通じないわけだ
0965デフォルトの名無しさん
2015/08/03(月) 10:10:35.22ID:r+fa7m6A0966デフォルトの名無しさん
2015/08/03(月) 11:34:59.16ID:scYGV4Wn0967デフォルトの名無しさん
2015/08/03(月) 12:14:33.23ID:TzOErtto0968デフォルトの名無しさん
2015/08/03(月) 15:19:46.84ID:Q+4RHReL何かトラウマでもほじくられましたか?
0969片山博文MZ ◆T6xkBnTXz7B0
2015/08/03(月) 17:38:55.94ID:/P0N0OgPhttps://github.com/katahiromz/TypicalWindowsApp
よろしくね!!!
0970デフォルトの名無しさん
2015/08/03(月) 22:43:42.64ID:9Adfwx+a自分で排他制御しなきゃならんのでしょうか?
0971デフォルトの名無しさん
2015/08/03(月) 22:52:59.42ID:PIBA7Curんなアホな!
0972デフォルトの名無しさん
2015/08/03(月) 22:59:06.61ID:VaWxuZf6どう呼んだらどう出力されたかね
(スレッドセーフでないバッファ/ポインタを渡しちゃったりしてないかね)
0973デフォルトの名無しさん
2015/08/03(月) 23:43:45.56ID:9Adfwx+aOutputDebugStringを拡張して書式文字列版を自作してたのですが
そこで使ってる一時バッファが原因でした。
0974デフォルトの名無しさん
2015/08/03(月) 23:58:25.28ID:PIBA7Cur俺も昔同じ失敗したよ。
文字列長に応じてmallocする作戦で対応したわ。毎回malloc/freeって言うのもなんだけどなあ。
0975デフォルトの名無しさん
2015/08/04(火) 00:14:42.86ID:G/ht5QpM何を見てスレッドセーフでないと判断したんだ?
(まあ、だいたい想像できるけど w)
0976デフォルトの名無しさん
2015/08/04(火) 08:12:33.10ID:FXpRAemv何かトラウマでもほじくられましたか?
0977デフォルトの名無しさん
2015/08/04(火) 10:55:07.29ID:3xU88wGiってどうしてprintfと同じ可変引数関数にしなかったんだろう?
そっちのほうが使い易いと思う。
0978デフォルトの名無しさん
2015/08/04(火) 11:19:14.05ID:TW35b31Y0979デフォルトの名無しさん
2015/08/04(火) 14:58:01.68ID:U/H7c7WNMACアドレス(ネットワークアダプタ)は複数あるので、その中から有線LANアダプタを調べるべく
MIB_IFROW の各値から以下の条件で絞り込みました。
dwType == MIB_IF_TYPE_ETHERNET
dwMtu == 1500
dwSpeed == 10 で割り切れる値
おおよそ期待できる結果になったのですが、VMwareの仮想ネットワークアダプタも引っかかってしまいます。
何かいい方法はないでしょうか?
0980デフォルトの名無しさん
2015/08/04(火) 15:07:56.61ID:U/H7c7WNWin7以降(?)のネットワークと共有センターで表示される「ネットワーク」と
「識別されていないネットワーク」というのがありますが、この後者に
VMwareのアダプタが表示されていますので、意図した動作を得るためには
この情報が取れたらいいような気はしています。
先の書き込みでは有線LANアダプタとは書きましたが、それが存在しないで
他の手段でインターネットに接続しているケースもあるでしょうから、
なおさら先述の情報が取れた方がいいような気がします。
この情報はどこから取れるでしょうか?
0981デフォルトの名無しさん
2015/08/04(火) 18:20:31.80ID:wPc1LIE60982デフォルトの名無しさん
2015/08/04(火) 19:09:04.41ID:XYxgq3dxいいからはよ答えろ
0983デフォルトの名無しさん
2015/08/04(火) 19:49:12.54ID:U/H7c7WNええんです。今のところは。
>980の情報が取れたら MTU での判定は無くせそうかなと。
>>982
ハゲ
0984デフォルトの名無しさん
2015/08/04(火) 20:01:25.12ID:B++mZrPlWin16のPASCALのことをいいたいのか
そうだとしても、wsprintfはあったのだが
0985デフォルトの名無しさん
2015/08/04(火) 20:20:56.35ID:wPc1LIE60986デフォルトの名無しさん
2015/08/04(火) 20:22:48.18ID:TW35b31YOutputDebugStringはAPIでゲズ
0987デフォルトの名無しさん
2015/08/04(火) 20:26:49.69ID:mWLd8l1I0988デフォルトの名無しさん
2015/08/04(火) 20:47:15.53ID:U/H7c7WN最悪はそうしようかと思いますが、よりいい方法があれば。
0989デフォルトの名無しさん
2015/08/04(火) 21:07:11.36ID:g8Wyj7Bwお前980踏んどいて逃走かよ。はやく次スレ立てろ
0990デフォルトの名無しさん
2015/08/04(火) 22:33:26.18ID:U/H7c7WNWin32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build120
http://peace.2ch.net/test/read.cgi/tech/1428570962/
0991デフォルトの名無しさん
2015/08/04(火) 22:35:24.51ID:tKzV+rUuWin32API質問箱 Build121
http://peace.2ch.net/test/read.cgi/tech/1438695290/
0992デフォルトの名無しさん
2015/08/05(水) 07:11:26.39ID:8R5fikiq乙乙
0993デフォルトの名無しさん
2015/08/05(水) 09:45:04.30ID:nxXw/daG安易な発想だ
0994デフォルトの名無しさん
2015/08/05(水) 11:08:15.36ID:QXzoL0Tsよくやった。ほめてやろう
0995デフォルトの名無しさん
2015/08/05(水) 12:11:14.99ID:bXDjutxr次立てるとき覚えてたら直してや。
0996デフォルトの名無しさん
2015/08/06(木) 00:38:14.88ID:a5tvGPbj0997デフォルトの名無しさん
2015/08/06(木) 08:10:35.31ID:OUOpOK/l0998デフォルトの名無しさん
2015/08/06(木) 11:54:36.84ID:FEpHvzaw0999デフォルトの名無しさん
2015/08/06(木) 17:18:54.97ID:4xD13DN71000デフォルトの名無しさん
2015/08/06(木) 17:19:41.20ID:4xD13DN710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。