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
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.おもしろがってる俺
0337デフォルトの名無しさん
NGNGスピーカーの原理ではあるがスピーカー機器ではないね。
だいたいそんなAPIがあるのか。
0339デフォルトの名無しさん
NGNG認識甘い。
君は車のクラクションがスピーカだと主張しているわけか。(藁
0340デフォルトの名無しさん
NGNGブザーは振動物に固体を当てて発音している。
それはともかく、Beep()ってのがあるのは確かだな。
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGブザー作って来い。
0344デフォルトの名無しさん
NGNGなんといやらしい。
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGハゲシクワラタ
ナイスネタ
てかネタだよな
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGマザーに直付けのちっこいブザーやら、リード線引いてきてちゃちいスピーカーを付けるパターンやらがあるから
とりあえずマザーと書いたんだが。
イメージ的にはあってると思うが、通じないかい?
漏れだけしか通じない罠なら逝ってきます。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNGHDC hdc2 = ::CreateDC(NULL, printernames[target], NULL, NULL);
DEVMODE dmMode = {0};
dmMode.dmSpecVersion = DM_SPECVERSION;
dmMode.dmSize = sizeof(DEVMODE);
dmMode.dmFields = (DM_PAPERSIZE | DM_ORIENTATION);
dmMode.dmPaperSize = DMPAPER_B5;
dmMode.dmOrientation = DMORIENT_PORTRAIT;
hdc = ResetDC(hdc2, &dmMode);
プリンタにB5横しか入ってないと、プリンタに「A4入れろやゴルァ」と出るんです。
90度傾けて印刷させるにはどうアプローチすればいいですか?
0352デフォルトの名無しさん
NGNGプリンタのプロパティで縦方向印刷に設定しる!
0353デフォルトの名無しさん
NGNGうーん確かにそれだと出るんですが・・・・
ユーザに設定させたり保存させたくないんですよぉ
0354デフォルトの名無しさん
NGNG正解!ダトオモウ...
>>328
各コントロールをサブクラス化してWM_MOUSEMOVEを引っかける
のが妥当かな。
どっちも地震無し。
0355デフォルトの名無しさん
NGNG用紙横=GetDeviceCaps(hdc2,VERTSIZE) * 100;
if(縦横のサイズ != B5サイズ){
MessageBox(hWnd,"B5にしてね(ハァト",NULL,MB_OK);
exit(1);
}
0356デフォルトの名無しさん
NGNGDEVMODEがどう変わるか調べて、
それに合わせてソースを書く(w
0357デフォルトの名無しさん
NGNG英語版には縦書きという概念がないから日本語化のとき
先頭に@があるかないかをフラグ代わりにしたの
>>328
WM_SETCURSORという専用のメッセージがあるからそっち使え
こんな感じか?
PRINTER_INFO_2 *GetDefaultDevMode(LPTSTR name){
PRINTER_INFO_2 *pinfo2 = NULL;
HANDLE hPrinter;
if (OpenPrinter(name, &hPrinter, NULL)){
DWORD size;
GetPrinter(hPrinter, 2, NULL, 0, &size);
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER){
pinfo2 = (PRINTER_INFO_2 *)malloc(size);
if (!GetPrinter(hPrinter, 2, (LPBYTE)pinfo2, size, &size)){
free(pinfo2);
pinfo2 = NULL;
}
}
ClosePrinter(hPrinter);
}
return pinfo2;
}
HDC CreatePrinterDC(LPTSTR name){
PRINTER_INFO_2 *pinfo2;
HDC hdc;
pinfo2 = GetDefaultDevMode(name);
if (!pinfo2)
return NULL;
pinfo2->pDevMode->dmFields |= DM_PAPERSIZE | DM_ORIENTATION;
pinfo2->pDevMode->dmPaperSize = DMPAPER_B5;
pinfo2->pDevMode->dmOrientation = DMORIENT_PORTRAIT;
hdc = CreateDC(pinfo2->pDriverName, pinfo2->pPrinterName, NULL, pinfo2->pDevMode);
free(pinfo2);
return hdc;
}
0359デフォルトの名無しさん
NGNGキャンセルを検知するのは、どーすんでしょうか?
0360デフォルトの名無しさん
NGNGフックすれば?
0361デフォルトの名無しさん
NGNGですね。
03623ヶ月目
NGNGMFCのときはCFileFindクラスを使いますか?
サンプル等探してもCFileFindクラスを使用した例があまり見当たりません。
使い勝手等何か問題あるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています