Win32API 質問箱 Build5
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGやさしいお兄さんたちが答えてくれるかも。
でも、最低限Web検索ぐらいはしてね。
前スレ
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
参考
MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang/index.html
0237デフォルトの名無しさん
NGNG図星でした。
0238デフォルトの名無しさん
NGNGお前さぁ、自分で考えて書いたんじゃなかったのか?なぜコンパイルできん?
また、
どこかで見つけたブラクラを書き込め!
系のこの板でもっとも頭の悪い部類に入るスレかよ・・・。
0239DELL
NGNGお前さぁとか偉そうなこといってねぇで、
そのまま実行できんかったらコードを
新規作成したファイルにコピーすればコンパイルできることに気づけよ。
まぁ確かに俺の書いたコードは下らないものかも知れないが、
別にここはプログラム技術板なんだからブラクラより
マシだと思うぞ。
0240デフォルトの名無しさん
NGNG(劇藁嘲笑
0241デフォルトの名無しさん
NGNG0242DELL
NGNGなるほど参考になりました。
0243デフォルトの名無しさん
NGNG0244DELL
NGNG必死だな(藁
0245デフォルトの名無しさん
NGNGうわああああ
dumpbinも知らん
mlも使えない
スーパーDQNだぁぁぁぁ
HNのとおりデリられるべき香具師だな
0246デフォルトの名無しさん
NGNGHDCについて教えてください。
hDC = GetDC( hWnd );
hDCMem = CreateCompatibleDC( hDC );
hBmp = CreateCompatibleBitmap( hDC, 64, 64 );
SelectObject( hDCMem, (HGDIOBJ)hBmp );
上のコードの後に、
GetDIBits( hDC, hBmp, … );
としても、
GetDIBits( hDCMem, hBmp, … );
としてもうまく動きます。これはどういうことなのでしょう?
HDCならなんでもいいのでしょうか?
(ちなみに、NULLだとうまく動きませんでした)
0247デフォルトの名無しさん
NGNGどういうことも何も、
hDCMemはCreateCompatibleDCで作ったんだから、
hDCと互換性があるに決まってる。
試したことないけど、
やっぱ、プリンタのHDCとか使ったら駄目じゃない?
0248246
NGNG動作に互換性があるのはわかるのですが、
>SelectObject( hDCMem, (HGDIOBJ)hBmp );
としているわけですから、
GetDIBits( hDC, hBmp, … );
でうまくいくのが不思議に思いまして。
GetDIBItsやSetDIBitsの場合、デバイスコンテキストに
設定した値(SelectObjectで指定したオブジェクトなど)は
全く影響なしということでいいのでしょうか?
0249247
NGNGhttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_getdibits.asp
によると、
「hbmp パラメータが示すビットマップが
デバイスコンテキストで選択されている場合、
この関数を呼び出さないでください」とあるんだが。
疑問の解消にはならないかも知れないが、
そういうことはしてはいけないらしい(逃
0250デフォルトの名無しさん
NGNGCreateDIBSection() と同じで、DIB_RGB_COLORS である限りは HDC は
まったく参照されないんじゃなかったっけ? (HDC は NULL でいい)
0251デフォルトの名無しさん
NGNGリストボックスに、文字を追加して行きたいと思い下記のようなコードを打ちました
SendDlgItemMessage( hWnd, IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)Buff );
たしかに、文字はリストボックスに追加されたのですが、どんどん追加していくと
スクロールバーができ、入力している文字がリストボックスから見えない位置に
いってしまいます。
最後に出力した文字が、常に見える状態にするにはどうすればよいのでしょうか?
MFCだと、SetCurSel( m_ctl.GetCount()-1 );
でいいみたいなんですが、apiだとどうして良いのか、分かりません・・
0252デフォルトの名無しさん
NGNGそこまでわかっているならGoogleで
SendDlgItemMessage SetCurSel
で見つかる予感 ->
ttp://n76cd-01p05.ppp11.odn.ad.jp/old/a6050.html
これでいいんじゃないでしょうか。
0253デフォルトの名無しさん
NGNGerror C2065: 'CreateJobObject' : 定義されていない識別子です。
っていわれちゃう。
なんでだよヽ(`Д´)ノウワァァァァン
#include <windows.h>
#include <winbase.h>
#pragma comment(lib,"kernel32.lib")
int main(int argc, char* argv[])
{
HANDLE hJob = (HANDLE)CreateJobObject(NULL, "testjob");
return 0;
}
0254デフォルトの名無しさん
NGNGCreateJobObject は Windows 2000 以降の API だけど、
ちゃんとそれに対応した新しい Platform SDK 使ってるかね。
0255デフォルトの名無しさん
NGNGヘルプに
>対応情報
> Windows NT: バージョン 5.0 以降を使います。
って書いてあるよね。
実行環境のWindowsのバージョンに依存するときは、
_WIN32_WINDOWSや_WIN32_WINNTというマクロが必要だよ。
↑
をヘルプで引いてごらん。
#define _WIN32_WINNT 0x0500
とか、
>Visual C++ 6.0: To specify compiler options,
>go to the Projects menu and click Settings,
>then select the C/C++ tab.
とか、することになってるよね。
0256デフォルトの名無しさん
NGNG>「hbmp パラメータが示すビットマップが
>デバイスコンテキストで選択されている場合、
>この関数を呼び出さないでください」とあるんだが。
あ、本当だ。見落としてました。(^^;
>>250
>CreateDIBSection() と同じで、DIB_RGB_COLORS である限りは HDC は
>まったく参照されないんじゃなかったっけ? (HDC は NULL でいい)
なるほど、HDCはパレットの情報を得るのに使っているんですね。
調べてみると、SetDIBitsのところにも、NULLでいいと書いてありました。
ところが、実際にNULLを指定すると、なぜかエラー(戻り値=0)が
返ってきます。他のパラメータが間違っているのかな???
GetDIBits・SetDIBitsの前後を調べてみることにします。
とりあえず、ありがとうございました。>>247 >>249 >>250
0257デフォルトの名無しさん
NGNGよく読め
>>246はNULLだとダメだったとちゃんと言ってるぞ
GDI関数で第一引数にHDCを取るものは
どのドライバを呼び出すか決めるためにHDCを使うんだから
この場合ディスプレイドライバが作ったHDCならなんでもいいけど
NULLはダメ
0258256
NGNG>調べてみると、SetDIBitsのところにも、NULLでいいと書いてありました。
正確には、「無視されます」とあり、
「NULLでもいい」と書かれてあったわけではありませんでした。
失礼。
0259デフォルトの名無しさん
NGNGWin32APIだけで組めばプログラムのファイルサイズがかなり小さくなると
思ったのですが、実際にダイアログリソースを表示するだけの簡単なプログラムを
作ってみるとMFCで共通DLLを使ったものよりも大きくなってしまいました。
MFC(共通DLL使用)→28KB
Win32API→44KB
こんな具合です。
もうちょっと(せめてMFC版よりも)サイズを小さくするにはどうしたらよいのでしょうか?
0260デフォルトの名無しさん
NGNG必要な処理をDLLに持っていって本体はWinMain()のみにする。
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGサイズの比較になってねーぞ
MFC(共通DLL使用)→28KB + sizeof MFC42.DLL
0263デフォルトの名無しさん
NGNG#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
keybd_event(VK_SNAPSHOT,0,0,0);
return 0;
}
昨日も聞いたんだけどサー,これでデスクトップのショットが取れないのはなぜ?
アクティブウィンドウしか取れない. alt 押してないのに.
証拠画面もうぷするか?
0264デフォルトの名無しさん
NGNGそんなことせんでもGetDC(0)したのをBitBltすれば良かろう。
つぅか誰にそのキーイベント送ってるのさ?
0265デフォルトの名無しさん
NGNGupx --best --crp-ms=100000 filename
とかどうよ?
0266デフォルトの名無しさん
NGNGその通りなんですけど,キーコードがちゃんと送れてないのがげせない.
>誰にそのキーイベント送ってるのさ
OSにです.ペイントで貼り付けると一部しか取れてないんです.
そのときのアクティブだけってことは
alt + Pscrn が送られてることになる.
げせねぇ
keybd_eventのヘルプの下の方は読んだか?
0268デフォルトの名無しさん
NGNGそんなこと言い出したらwin32apiだけだってdll使うっつーの
アフォですか? 比較するならmsvcrt.dllを使ったものと
比較すべきと言っているんだろ。
0270デフォルトの名無しさん
NGNGkeybd_event(VK_SNAPSHOT,1,0,0);
keybd_event(VK_SNAPSHOT,1KEYEVENT_KEYUP,0);
0271270
NGNG0272デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/msdnmag/issues/01/01/hood/hood0101.asp
簡単にサイズを小さくできるっていうライブラリ。
0273keybd_event
NGNGおさわがせしました
0275サービスしてね
NGNGレジストリの項目でServiceってのがあったので値を見てみたのですが特に変わってなかったです。
0276デフォルトの名無しさん
NGNGOpenSCManager, OpenService, ControlService, QueryServiceStatus
あたり。
0278デフォルトの名無しさん
NGNGアセンブラで書け
8kBぐらいにはなるだろ
0279デフォルトの名無しさん
NGNGなんせリンクするだけだから。
楽して小さくするならLIBCTINY。これ常識。
0280デフォルトの名無しさん
NGNGFDにぎっしりつめるつもりなのかしら。
0281デフォルトの名無しさん
NGNG高サイズはウイルスにとって致命傷ですから。
0282デフォルトの名無しさん
NGNGそっちか(^_^;)
0283デフォルトの名無しさん
NGNGでメニューハンドルの取得に失敗するんですが理由がわかりません。
どなたか教えてください。
0284デフォルトの名無しさん
NGNGMFC使うより小さくなるんか?
0285デフォルトの名無しさん
NGNGMAKEINTRESOURCE(IDR_PopMenu)でやってみたら?
0286デフォルトの名無しさん
NGNGサブキーを持つキーを一度で削除しようとしたところ
できませんでした。
ヘルプを見るとNT/2000では
サブキーを持つきーを指定することはできないと書いてありました。
2000でサブキーごとキーを削除するには
どうすればいいでしょうか?
サブキーを検索していってひとつずつ
削除するのが賢いやり方ですか?
それとも他に代用できる関数があるのでしょうか?
よろしくお願いします。
0287デフォルトの名無しさん
NGNGもちろんモノによるが、なる。
0288初心者です!
NGNG時々コマンドを実行しようとすると、VDDの形式が無効ですってエラーメッセージが出るのですがなんか関係あるのでしょうか?
原因がまったくわかりません!誰か教えてください!
0289デフォルトの名無しさん
NGNG>サブキーを検索していってひとつずつ
>削除するのが賢いやり方ですか?
いや、愚かなやり方です。
毎回そんなことを考えずに済むように
しておくのが賢いやり方です。
どうすべきか、わかりますね?
0290286
NGNGわかりません。
もうすこし具体的に言ってもらえませんか?
>毎回そんなことを考えずに
自分でサブキーを検索して消していく
関数を作っておけということですか?
0292デフォルトの名無しさん
NGNG消すキーの中にサブキーをデータとして入れちゃえ
とか言ってみるテスト
0293286
NGNG結論としてはWin2kでサブキーごとキーを削除するには
サブキーを検索していってひとつずつ
削除する、という流れで、
代用できる関数は用意されていないので
自作すべし。
ということで落ち着きました。
ありがとうございました。
0294292
NGNGサブキー名をデータとして
テスト失敗
0296デフォルトの名無しさん
NGNG実はリソースのヘッダをインクルードしてないとか...
外してる可能性大
0297283
NGNG285さん296さんありがとうございました。
お騒がせしました。m(_ _)m
0298デフォルトの名無しさん
NGNGipconfig /release で開放。
ipconfig /renew で再取得
をしたく、ipconfigと同様なAPIを、検索で頑張って探してみたのですが
結局わかりませんでした。
WindowsCEならあるようなのですが。。。
どなたかご存知の方、教えてください。
0299デフォルトの名無しさん
NGNGSHDeleteKey?
0300286
NGNGありがとうございます、
大当たりです。
試してみましたが無事一発で消えました。
実は自分でSHDeleteKey関数と
同じようなの自作してる途中でしたw
ありがとうございました。
教訓
サブキーごとレジストリのキーを削除する場合は
SHDeleteKey関数を使用する。
以下のコードをa.cとa.rcというファイル名で保存して、
rc a.rc, cl a.c a.res でコンパイルすれば2048バイトになる。
9x系で動作しなくていいなら、cl /O2 a.c a.res /link /align:16
で1056バイトになる。
#include <windows.h>
#define IDD_DIALOG 1
#ifdef RC_INVOKED
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
#pragma code_page(932)
IDD_DIALOG DIALOGEX 0, 0, 87, 79
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
DEFPUSHBUTTON "OK",IDOK,27,53,50,14,NOT WS_TABSTOP
END
#else
BOOL CALLBACK DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg){
case WM_INITDIALOG:
return 1;
case WM_COMMAND:
if (wParam == MAKEWPARAM(IDOK, BN_CLICKED))
EndDialog(hWnd, IDOK);
return TRUE;
default:
return FALSE;
}
}
void Startup(){
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_DIALOG), NULL, DlgProc);
ExitProcess(0);
}
#pragma comment(linker, "/subsystem:windows /entry:Startup /merge:.rdata=.text")
#pragma comment(lib, "kernel32.lib")
#pragma comment(lib, "user32.lib")
#endif
0302デフォルトの名無しさん
NGNG教訓は2chでのレスは鵜呑みにしないってこった
0303デフォルトの名無しさん
NGNGキタ━━━━━━━(゚∀゚)━━━━━━━ !!!!!
0304デフォルトの名無しさん
NGNGただしIE3だか4だかが入ってないWin95では動作しない罠
Win95をサポート範囲外にするならどうでもいいかも
0305286
NGNGIE4.0以降の環境が必要みたいです。
ご報告。
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGタイミング(VSのSP○でインストールされるとかWindows98では標準でインストールされてるとか)
を知るにはMSDNのどこを見ればよいのでしょうか?
またはそれらが書いてあるサイトはあるでしょうか?
MSDNやgoogleで探してみたんだけど見つかりませんでした。
0308デフォルトの名無しさん
NGNGでもここ3年ぐらいはDLL問題を聞かないなあ。
みんなstatic linkにしちゃったのかな。
0309デフォルトの名無しさん
NGNG強制的にファイルをぶっ壊す事が出来ないかと思ってます。
普通にエディタとかでファイルを開いて内容を変更して
保存しようとしても、他のプロセスが使用中とか
いわれちゃうんですが、APIでどうにかなったりしませんか?
#実運用時に突然DBが壊れた状況を作り出したいのです
0310デフォルトの名無しさん
NGNGあなた神ですよね。
0311デフォルトの名無しさん
NGNG何かモジュールやライブラリがいるのでしょうか?
MFCでAppWizardを使うやり方はなんとなくわかったのですが、SDKでやる方法
がわかりません。どなたか教えてください。
0312デフォルトの名無しさん
NGNG使用するデータベースと、接続法法によるけど。ADO 使うなら msdao15.dll あたり
を #import して使う。
\\.\PhysicalDriveNをRaw I/Oすればできそうな気もするが、
それより安いハードディスクを買ってきて物理的にぶっ壊す
ほうが安上がりかも。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNGSDKで複数ページ印刷は難しいんですかね?
と言うか、総ページ数の取得ってできないものなんですか?
0316デフォルトの名無しさん
NGNG0317質問
NGNGPlaySound()ではムリなようだから
なにかほかのAPIがあれば教えていただきたいんですけど。
WinMEで。←絶対条件
0318デフォルトの名無しさん
NGNGMEが絶対条件とか言ってるようだと何も知らないみたいね・・・
0319デフォルトの名無しさん
NGNG起こってしまうんちゃうか。
システム的には正常で、アプリからは壊れているように見えることが
試験には必要なんでないの。
0320298
NGNGsystemかjavaでやることにします。
質問の仕方まずかったのかなぁ。
0321デフォルトの名無しさん
NGNG画面一番下にあるタスクバーの領域がとれません
CWnd *pDeskTop = CWnd::GetDesktopWindow();
CRect m_rect;
pDeskTop->GetWindowRect(&m_rect);
タスクバーの部分も含めて取るにはどうすればいいですか
GetSystemMetrics(SM_CXSCREEN)
GetSystemMetrics(SM_CYSCREEN)
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG>>322で完璧な答えが出ているのにお前がしゃべる必要があるのか?
0325デフォルトの名無しさん
NGNGビープ音を鳴らしたいのですが(スピーカーから出すのじゃなく)どうすればいいのですか?
0326デフォルトの名無しさん
NGNGじゃあ一体どこから・・・。
0327デフォルトの名無しさん
NGNGフォントをフィルタリングするにはどうすればよいのでしょうか?
フォント名文字列の先頭に @ が付いてるかどうかを調べるしかないですか?
フラグでもあるのかなーと思って質問してみますた。
0328デフォルトの名無しさん
NGNGWM_MOUSEMOVEの処理で、カーソル位置の情報を調べて、LoadCursorで変更し
ようと思ってます。
カーソル位置が、キャレットであるとか、ビットマップであるとか調べる方法が
わからないです。
0329デフォルトの名無しさん
NGNGBeep()なAPIでどうだ? 漏れは使ったこと無いが。
>>326
マザーから鳴るのを知らないのか?
(厳密にはマザーじゃないかも知れんが。)
とんだ坊やだな。
0330デフォルトの名無しさん
NGNGマザーボードに搭載されてる「スピーカ」からな。
とんだ赤ん坊だね。
0331デフォルトの名無しさん
NGNGM/Bに搭載されているブザーじゃねーのか?
ブザーとスピーカじゃ物が違うのだが、知ってるか?
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNGそれってスピーカでは?
0336デフォルトの名無しさん
NGNG1.「スピーカー以外」と指定した質問者である>>325
2.つっこんだ>>326
3.よく知らないのにとりあえずマザー説を唱えて煽った>>329
4.おもしろがってる俺
■ このスレッドは過去ログ倉庫に格納されています