トップページ⇒tech
245コメント74KB

CでWin32APIを駆使してプログラミングするスレ

■ このスレッドは過去ログ倉庫に格納されています
0001ヽ(`Д´)ノ ◆pUjXxfDMqY NGNG
題名のまんまです。
関連リンクは>>2->>10くらいまで。
よろすく

0002デフォルトの名無しさんNGNG
http://black.sakura.ne.jp/~third/system/winapi/win.html
0003デフォルトの名無しさんNGNG
検索しないやしはプログラミングする資格なし
ttp://www.google.com/

基本ですよー
ttp://www.kumei.ne.jp/c_lang/

C でもオブジェクト指向でプログラミングは可能なわけで
ttp://www.sage-p.com/index1.html
0004デフォルトの名無しさんNGNG
窓プログラミング / tip とか
ttp://hp.vector.co.jp/authors/VA016117/index.html

Win32サブルーチンズ / 人が pdf が公開してる香具師がいるな
ttp://www.cisnet.or.jp/home/tsuneoka/

Winsock Programmer's FAQ 日本語訳
ttp://www.kt.rim.or.jp/~ksk/wskfaq-ja/
0005デフォルトの名無しさんNGNG
糞スレ立てるやしはプログラミングする資格なし
http://qb.2ch.net/test/read.cgi/saku/1027372992/
0006デフォルトの名無しさんNGNG
半荘のプログラマ向けペイジにようこそ。
WinNT の「サービス」や「パイプ」など,情報を入手し難い API の使い方
ttp://www02.so-net.ne.jp/~handa/

Belution.com / tip とフォーラム
ttp://www.belution.com/

wotsit's format / 各種ファイルフォーマットを網羅
ttp://www.wotsit.org/

CodeGuru - ほぼ MFC 専用になってるけど,でも参考になりますよ?
ttp://codeguru.com/
0007デフォルトの名無しさんNGNG
ていうか >>1 どこぉ? (;´Д`)
一人で関連リンク貼り付けてる自分がものすごーくマヌケなんですけど
削除依頼,出す?
0008ヽ(`Д´)ノ ◆wSaCDPDEl2 NGNG
ttp://black.sakura.ne.jp/~third/system/winapi/win.html
すみません。すれ立ての依頼出してすぐに塾に言ってました。
工房バレバレですね。すみません。ヽ(´ー`)ノ
0009デフォルトの名無しさんNGNG
駆使するも何も、大して目新しい点はないが。。。
0010デフォルトの名無しさんNGNG
うんこ
0011デフォルトの名無しさんNGNG
こういうスレ前も立ってなかった?
0012デフォルトの名無しさんNGNG
>>1
どう差をつけていく気だ?

Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645/
0013デフォルトの名無しさんNGNG
なあ
cとwinAPIだけでプログラムつくれるか?
0014デフォルトの名無しさんNGNG
cだけで(明示的にAPIを呼ばずに)プログラム作れますよ。
0015デフォルトの名無しさんNGNG
Win32APIがよく分かりません。
文字色とかってどう変えるんですか?
検索も一応してみましたが・・・。
「はろー」って青で表示させてみてもらえませんか?
0016デフォルトの名無しさんNGNG
http://www.kumei.ne.jp/c_lang/sdk/sdk_05.htm
0017デフォルトの名無しさんNGNG
いや、そこも一応見てみたのですが。
よく分かりませんでした。
0018デフォルトの名無しさんNGNG
>>17
んじゃ次
http://black.sakura.ne.jp/~third/system/winapi/win18.html
0019デフォルトの名無しさんNGNG
すみません。見てもどこが色を指定しているとか、
どこが変数だとか分かりません。
「はろー」のプログラムを書いてコピペしてもらえませんか。
すみません
0020デフォルトの名無しさんNGNG
すみません。見てもどこが色を指定しているとか、
どこが変数だとか分かりません。
「はろー」のプログラムを書いてコピペしてもらえませんか。
002119NGNG
ガーソ。
2重スマソ
0022デフォルトの名無しさんNGNG
>>15
#include <stdio.h>
#include <windows.h>
int main(void)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),(WORD)0x01);
puts("はろー");
return 0;
}
0023デフォルトの名無しさんNGNG
>>22
なんで0x01をWORDにキャストしているの?
002414歳NGNG
VCとCのちがいてなに?Cに出来てVCに出来ないことって何?
その逆って何?
0025デフォルトの名無しさんNGNG
>>23
EXCELにはキャストできないから
0026デフォルトの名無しさんNGNG
>>23
引数がWORDだから。別にintのままでも警告にならないが。
>>24
VCはコンパイラ(C言語のコードをexeファイルに変換するもの)の事。
他にGCC、ボーランド等がある。
Cは言語の事。他にJava、Perl等がある。
できる出来ないは、比べるLVが違うからなんとも言えない。
>>25
?
0027デフォルトの名無しさんNGNG
>>24
Cは1バイトのキャラクタコードで表現することができるが、
VCは無理。2バイト必要。
0028デフォルトの名無しさんNGNG
>>27
冗談は・・・

>>24
Cは言語仕様、VCはコンパイラの製品でよく処理系とかいわれるものです。
ほとんどの処理系はCの言語仕様を包含します。さらにその処理系独自の仕様
を追加(拡張機能)しているところがほとんどです。
将来その処理系以外でCのコードでかかれたプログラムをコンパイルしよう
というときは、処理系独自の拡張機能は使わないほうがよいです。
また逆に、Cの言語仕様をフルに実装していない処理系もあります。これは、
かなりローカルな製品ですけど。

VCの拡張機能といえば、あの void PASCAL func1(); のPASCALがこれに
あたります。
0029デフォルトの名無しさんNGNG
BCBの拡張機能はかなりひどい。
一番ひどいのがclosure。
C++に無い上に、使わなきゃRADが使えない。
0030デフォルトの名無しさんNGNG
SDKでプログラムするときにbad_alloc例外、ちゃんと処理してる?
0031あぼーんNGNG
あぼーん
0032デフォルトの名無しさんNGNG
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな人が pdf が公開してる香具師がいるな
0033デフォルトの名無しさんNGNG
ツールバーやステータスバーなどの上下に張り付くウィンドウを差し引いた
クライアント領域を自動で取得する関数ってつくれまつか?
ステータスバー等の有無も自動で認識してくれるといいんですが。
まじおながいします。
0034デフォルトの名無しさんNGNG
ツールバーやステータスバーなどの上下に張り付くウィンドウを差し引いた
クライアント領域を自動で取得する関数ってつくれまつか?
ステータスバー等の有無も自動で認識してくれるといいんですが。
まじでおながいします。
0035デフォルトの名無しさんNGNG
getcliantrectじゃだめなん?
0036デフォルトの名無しさんNGNG
>>34
そういう計算をする関数を作ればいいだけでは?
0037デフォルトの名無しさんNGNG
>>34
>関数ってつくれまつか?
そんなんおまえ次第だろ
0038デフォルトの名無しさんNGNG
>>29
同じような機能(J++のdelegate)でもMSがやると
ないほうが叩かれるこの不思議
0039デフォルトの名無しさんNGNG
>>34
AdjustWindowRectで検索。
0040デフォルトの名無しさんNGNG
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow){

int button;
button = MessageBox(NULL,TEXT(">>1はカッコ良いですか?"),
TEXT("アンケート"),MB_YESNO | MB_ICONQUESTION);

if(button ==IDYES){
MessageBox(NULL,TEXT("冗談はほどほどにしてね♪"),
TEXT("マジっすか!?"),MB_OK);
}

else{
MessageBox(NULL,TEXT("やっぱりね〜"),
TEXT("さすがっ!"),MB_OK);
}
return 0;
}

どこかおかしいとこはありますか?
0041デフォルトの名無しさんNGNG
>>40
あなたの質問に対する態度。
0042山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0043デフォルトの名無しさんNGNG
http://jbbs.shitaraba.com/computer/7345/
とにかく宣伝
0044ああああNGNG
#include <windows.h>
#include <stdlib.h>
int WINAPI WinMain(
HINSTANCE hInstanc,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow)
{
FreeConsole();
MessageBox (NULL,"これにて終了","shutdown",MB_OK);
system ("shutdown -f -s -t 99 -c \"バーカ! もうおしまいだよ。ご苦労さん。");
retrun 0;
}
0045デフォルトの名無しさんNGNG
 ______
 |ヽ(`Д´)ノ| <寝るぞ、ゴルァ!
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎拓
0046ああああNGNG
#include <windows.h>
#include <stdlib.h>
int WINAPI WinMain(
HINSTANCE hInstanc,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow)
{
FreeConsole();
MessageBox (NULL,"GOOD NIGHT!","sleep",MB_OK);
system ("shutdown -f -s -t 99 -c \"お休みなさいませ");
retrun 0;
}
0047ああああNGNG
#include <windows.h>
#include <stdlib.h>
int WINAPI WinMain(
HINSTANCE hInstanc,
HINSTANCE hPrevInstance,
OSTR lpCmdLine,
int nCmdShow)
{
//FreeConsole(); ←コンソールけす必要なかったよ。
MessageBox (NULL,"これにて終了","shutdown",MB_OK);
system ("shutdown -f -s -t 99 -c \"バーカ! もうおしまいだよ。ご苦労さん。");
retrun 0;
}
0048デフォルトの名無しさんNGNG

     ♪  
   ♪     __    ウホ ッホ
      ヽ/´∀`ヽノ   ウホ ッホ
        |  /::へ|     ウッホ ウッホ
        (_(`^´     ホォ〜
0049山崎 渉NGNG
(^^)
0050山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0051デフォルトの名無しさんNGNG
age
0052デフォルトの名無しさんNGNG
>>47
 Windowsシャットダウンプログラムらしいが、
ビルドしようとすると、「line 6: 型名が必要」とエラーが出たよ。
0053デフォルトの名無しさんNGNG
age
0054デフォルトの名無しさんNGNG
よろしければヒントをお願いします。
たとえばファイル処理のコード記述時に
WinAPIのOpenFile()やReadFile()で行う場合
<stdio.h>のfopen()やfread()でで行う場合
それぞれに一長一短あると思いますが
使い分けのコツみたいなのがあれば教えてください。
0055デフォルトの名無しさんNGNG
とりあえず名前が紛らわしいですがOpenFileはWin16との
互換性のためだけに存在しているもので、普通はファイル
のオープンもAPIを使うならCreateFileでやります
0056デフォルトの名無しさんNGNG
透明なテキスト入力ボックスって作れるんでしょうか?
ゲームなどで使われている独自文字入力欄[日本語対応]を作りたいのですが、、
どうやって実現してるのか謎です。DirectXでできるのかな?
SetDlgItemText周りを見るのかな?
誰か情報お持ちの方、些細なことでもけっこうですので教えて下さい。
0057デフォルトの名無しさんNGNG
>54
<stdio.h>のを使うとサイズが大きくなる。
気にするほどじゃないが。
0058デフォルトの名無しさんNGNG
モノにもよるが、DLL作るときは標準ライブラリなど使わん。
0059デフォルトの名無しさんNGNG
CreateRectRgn()等で作成したリージョンをファイルに保存するにはどうしたらいいですか?
0060デフォルトの名無しさんNGNG
>>54
Petzold本には慣れてる方を使えと書いてある。

>>59
GetRegionData() ExtCreateRegion()
http://www.psn.ne.jp/~nagayama/program/0056.html
0061592NGNG
>>60
thx
0062デフォルトの名無しさんNGNG
WM_KEYDOWNのlParamの30ビットみて、1なら捨てる処理ってどうかけばいいですか?
0063デフォルトの名無しさんNGNG
それはwinapi以前の問題
0064高校生NGNG
捨てるというのが良く分からないんですが、
とりあえず練習のために書いてみました。
でも、ひょっとしてネタ?

  if(lParam & 0x40000000){
    //30ビット目が立っている。
  }else{
    //30ビット目が立っていない。
  }
0065デフォルトの名無しさんNGNG
lParamの30ビット目はメッセージが送られる前にキーが押されていた場合は 1 、離されていた場合は 0 ということだから
キーリピートを無効にしたいんじゃないの?
006662NGNG
まさにその通りです(つД⊂)
プログラミングの知識ははっきり言って全くないんですが、
どうしてもやらなければならなくて・・みなさんレスありがとです 
0067デフォルトの名無しさんNGNG
>>62=>>66
マルチポストするなよ
006862NGNG
>>67
すんません、反省してます
0069デフォルトの名無しさんNGNG
switc(mes)
{
case WM_KEYDOWN:
if(lParam & 0x20000000){
break;}
else{
return DefWindowProc(hwnd,mes,wParam,lParam);}


これではキーリピート無効にはならないでしょうか。
よろしければアドバイスおねがいします。
0070高校生NGNG
あのぅ……。
WM_KEYDOWNのLPARAMの29ビット目って、MSDNによると――。

>Specifies the context code. The value is always 0 for a WM_KEYDOWN message.
コンテキストコードである。この値は、WM_KEYDOWNメッセージでは常にゼロとなる。

>>69のコードでは、常にDefWindowProcが呼ばれる予感。

やりたいことって言うのは、
キーが押されたときに、何度も反応するのではなくて、
一回反応し、その後キーが離されるまでは反応しない、
という事がやりたいのかい?
とりあえず、WM_KEYUPを使うという方法ではダメかい?
どうしてもWM_KEYDOWNでやりたいというのなら、こんな感じかな、学校からだから試していないけど。

case WM_KEYDOWN:
  if(lParam &40000000){
    //このメッセージが来る前にも、キーは押されていた。
    break;//ハネる。
  }else{
    //このメッセージで初めて、キーが押された。
    //必要な処理
  }
  break;
007169NGNG
レスありがとうございます。
30bit目が1の時を調べるのを0x20000000と間違えてました。
でも0x40000000に上記のコードを直してもやはりキーリピートしてしまいます。
他にも悪いところがあるでしょうか・・・ちなみに都合によりOSは98、VC++6.0です。
0072デフォルトの名無しさんNGNG
キー押しっぱなしで文字が連続入力されるのを防ぎたいのか?
WM_CHARでも同じようにしてみ。
0073高校生NGNG
なんでWM_KEYUPじゃダメなのか理由キボンヌ
あるいは、以下のようにしてみる? 汚いけど。

  static bool RrepeatFlag[255] = { false };
//・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  case WM_KEYDONW:

    if(RepeatFlag[wParam])
      break;

    RepeatFlag[wParam] = true;
//必要な処理
    break;

  case WM_KEYUP:
    RepeatFlag[wParam] = false;
    break;

う〜ん、バカっぽい。
たぶん、キーを下げたままフォアグラウンドウインドウが変更されるとヤバい。
やはり、WM_KEYUPを使ったほうがいいのでは?
0074高校生NGNG
↑やはり忘れて忘れて
0075デフォルトの名無しさんNGNG
本当に高校生なら推敲という言葉を知っているよな
0076デフォルトの名無しさんNGNG
すいてき←(なぜか変換できない)ってなに?
0077デフォルトの名無しさんNGNG
>>72さん、WM_CHARでも同じようにしたらできました。ありがとうございます。
>>高校生さん、何度もレスありがとう。
WM_KEYUPでやらない理由は、
WM_KEYUP使うやり方すら思いつかないくらいのレベルだったからでした(´・ω・`)
色々ありがとうございました。感謝です
0078高校生NGNG
>>76は漏れではありませんよ。念のため。

そういえば、GetKeyStateとかGetAsyncKeyStateなんかは、9x系でうまく動かないな。
NT系だとうまくいくんだけど。

Win32API質問箱Build16
ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/l50

でDQNな質問しまくっている厨房が漏れだけど。
0079デフォルトの名無しさんNGNG
それはおまいのことか?
0080デフォルトの名無しさんNGNG
BCCでGDI+使うにはどうすればいいですか?
0081デフォルトの名無しさんNGNG
>>81
無理
0082デフォルトの名無しさんNGNG
>>81
そうですか・・・。
VC買うしかないか。
0083デフォルトの名無しさんNGNG
>>84
無理
0084デフォルトの名無しさんNGNG
なんでよ?
0085デフォルトの名無しさんNGNG
GDI+は.NET Framework SDKに含まれていて、BCCからこれを使う手段は無い
008681NGNG
っていうか、GDI+ がクラスライブラリというのが無理な理由。
名前マングリングの問題で、 implib などのツールが使えない。
0087デフォルトの名無しさんNGNG
マングリングってなんかエロいね
0088デフォルトの名無しさんNGNG
>>85
という事はVC++でも6では駄目で.net以降が必要、という事ですか?
0089デフォルトの名無しさんNGNG
age
0090デフォルトの名無しさんNGNG
>>88
VC++6.0からGDI+は使えるぞ
0091デフォルトの名無しさんNGNG
あるフォントがWindowsで使えるというか、あることを確認するには、
どんなAPIを使いますか?
0092デフォルトの名無しさんNGNG
多国語で使えるフォントと設定方法も知りたいでつ。
0093デフォルトの名無しさんNGNG
Cに限った話じゃないから、Win32質問箱スレッドで聞いたら?

つーか、このスレッドいらないだろ…
0094デフォルトの名無しさんNGNG
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, PSTR pszCmdLine, int nCmdShow)
{
  if (!CreateWindowEx(
    0,
    (PCTSTR)RegisterClassEx(&(WNDCLASSEX) {
        .cbSize = sizeof (WNDCLASSEX),
        .lpfnWndProc = WndProc,
        .hInstance = hInstance,
        .lpszClassName = TEXT("XMore Window Class"),
        .hCursor = LoadCursor(NULL, IDC_ARROW);
      }),
    TEXT("Window Title"), WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
    NULL, NULL, hInstance, NULL)
  )
    return 0;
なんてC99を駆使したプログラミングならやってみたいな……。
0095デフォルトの名無しさんNGNG
>>94
わかりにくくなるだけ。
自分でそのコードわかりにくいと思わないか?
0096デフォルトの名無しさんNGNG
普段インライン可能な言語(LISPやJavaScriptなど)使ってる奴なら逆に読みやすいよ
この形式は変数を追う必要がなくなるのが利点。
あと手続きの順序が一意に決まるところ。
例外対策がきちんと取られていればこの形式が理想。
0097デフォルトの名無しさんNGNG
Java厨みたいでキモイ
0098ほんたまNGNG
おみゃ〜らよ、Win32APIでRECT構造体を使う関数ってよくあるだろ?
あれは、別にRECT構造体でなくてもいいんだぞ。
自分でKINTAMA構造体をつくって、そのメンバをOMANKO1、OMANKO2,OMANKO3,OMANKO4という4つのint型にして、
rect.left、rect.right、rect.top、rect.bottomのかわりに、
KANTAMA.OMANKO1、KANTAMA.OMANKO2、KANTAMA.OMANKO3、KANTAMA.OMANKO4をつかってもまったく問題ないぞ!!!
0099ほんたまNGNG
おみゃ〜らよ、RECT構造体ばかりではないぞ!
WINで定義されている構造体は全部そうだ。
おみゃ〜らよ、WINで定義されている構造体を使う必要はまったくない。
メンバの型と数さえ同じなら、自分で好き勝手な構造体を作って、それを使ってもまったく問題ない!!!
おみゃ〜らよ、知らなかったろ?
0100デフォルトの名無しさんNGNG
ヴぁか?
0101デフォルトの名無しさんNGNG
メンバ単位でしか使えないなら、構造体やクラスにしなくていいだろ
0102デフォルトの名無しさんNGNG
>>99
http://pc5.2ch.net/test/read.cgi/tech/1090324689/l50
0103デフォルトの名無しさんNGNG
あの、、自分の作ったプログラムをOS起動と同時に起動させたいのですが、どのように記述すれば良いかが分かりません。
ソースお願いします。。

レジストリに任意の値を書き込むRegSetValueExを使ってRunに値を書けば良いらしいという事はわかったのですが・・・。
とても初歩的な質問ですみません;;
0104デフォルトの名無しさんNGNG
(HKCU|HKCR)\Software\Microsoft\Windows\CurrentVersion\Run
キー名:好きな名前
タイプ:文字列
値:コマンドライン
0105デフォルトの名無しさんNGNG
>>104
×HKCU|HKCR
○HKCU|HKLM
0106デフォルトの名無しさんNGNG
>>104-105
それだとユーザがログインするまで起動されないんじゃない?
あてずっぽうだけど。
0107デフォルトの名無しさんNGNG
んじゃサービス作れ
0108デフォルトの名無しさんNGNG
RunじゃなくてRunServiceなら
ログオン前に実行されたような気が。
OSがNT系なら、>>107さんの言うとおり、
サービスがベストですかね。
でもちょっと敷居が高そう。
0109デフォルトの名無しさんNGNG
サービス非対応なアプリを無理やりサービスに飛ばしてくれるツールがあったはず。
0110デフォルトの名無しさんNGNG
すいません、ここに書く内容か分からないけど適当なスレを見つけられないので
ここで質問します。

WindowsXPにてVisualStudio.NET2003 VC++です。

処理中にOSをシャットダウンされると困る部分があるのでOnQueryEndSession
にて終了処理を受け取っていますが、ここで再起動を選択されたのか、それとも
シャットダウンを選択されたのか判別する方法ってありますか?

処理が終了したらシャットダウンまたは再起動と、ユーザーの選択したOSの
シャットダウンを行いたいのです・・・

「再起動 シャットダウン 判別」等、思いつく限りググったりもしてみたのですが
お手上げ・・・どなたかご存知の方教えてもらえないでしょうか。
0111110NGNG
ワラにもすがる思いでage
すいません、すいません・・・二度としないので、誰か・・・
0112デフォルトの名無しさんNGNG
ログオフかどうかなら lParam で分かりますが
求めているのはそれではないんですよね?

無理矢理ですが、DLL を他プロセスに注入して
ExitWindowsEx や InitiateSystemShutdownEx 等を
フックするというのはどうでしょうか?
実際に可能かどうかは分かりませんが。
0113110NGNG
OS自体は再起動、シャットダウンをちゃんと行うので、どこかに
情報があるはずと思っていたのですが、>>112さんの言うような
難しいことをしないと分からないのかなあ・・・
私には>>112さんの方法は難しくて実現できませんが、ありがとうございました。
自分でももっと調べまわってみます!
0114デフォルトの名無しさんNGNG
Windows XP Tipsとかそんな名前のサイトで見た気がするが、
再起動とシャットダウンは、レジストリのどっかに変化があるはず。
見つけたら報告よろ
0115110NGNG
調べれば調べるほど無理っぽい感じがしてきました・・・
>>114さんのレジストリをヒントに、OnQueryEndSession中でレジストリを
取得して保存しとけば差分で調査できるかもと思ったので
明日にでもOnQueryEndSession時にレジストリが変更されてないか
調査してみます。もし分かったら書き込みますね。
112さん、114さん、ありがとうございました。
0116112NGNG
>>114 さんの情報を読んだので
Windows 2000 ですが、実際にやって調べてみました。
HKCR\Software\Microsoft\Windows\CurrentVersion\Explorer
の Reason Setting と Shutdown Setting が変化するようです。
(どちらも DWORD 値)

シャットダウン
 Shutdown Setting=0x00000002
 Reason Setting=0x00000005
再起動
 Shutdown Setting=0x00000004
 Reason Setting=0x00000005
ログオフ
 Shutdown Setting=0x00000001
 Reason Setting=0x00000000

ちなみに、regmon という
レジストリ操作を監視するツールを使って調べました。
0117デフォルトの名無しさんNGNG
>>116
ためになるなぁ。
0118110NGNG
ようし!定時も終わったからレジストリを見るソフトを作るぞー!
と思ってここを覗きにきたら、すでに情報が!!
レジストリを監視するソフトは見たことがあったのにすっかり存在を忘れていました。
あせらずに落ち着かないとダメですね・・・

セッション終了要求が来たときに、そのレジストリの値を見て処理を振り分けて
みようと思います。
>>116さん、本当にありがとうございます。すごく助かりました。秀樹感激!
0119110NGNG
116さんの情報を元に調べていましたが、
HKCR\Software\Microsoft\Windows\CurrentVersion\Explorer
Shutdown SettingとReason Settingのキーは無いようです。

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
には存在していましたので、こちらで試しています。

OSのシャットダウン時の処理なので、ちゃんと動くまで再起動しまくって
いるので時間かかるー(笑)
0120116NGNG
>>119
CuRrent user だから CR だよな、
みたいな変な脳内変換をしてしまったみたいです。
すんません。orz
0121デフォルトの名無しさんNGNG
キーさえ分かればきっと情報があるはずだ、ということで検索してみた。
ttp://www.microsoft.com/windows2000/techinfo/reskit/en-us/regentry/36031.asp
これによると Shutdown Setting はあくまでダイアログでの選択値のようっす。
Reason Setting の方は見つからず。
0122120NGNG
つまりAPIで再起動するようなアプリには使えないと。
うーん、つらいですね。
>>114のレジストリってこれと同じですか?
0123ほんたまNGNG
おみゃ〜らよ、スリムドカンアップしたぞ。リソースエディタデバッグしたぞ。
だがまだバグはある。それにまだダイアログひとつしかつくれん。
2つ以上つくろうとすると、どっかデータがおかしくなっちゃうのだ!自分じわかるか?
だが、ダイアログひとつだけなら、ほぼ問題なくつくれるようにはなった。ほぼな…
おみゃ〜らよ、物事は何事も一歩一歩着実にだぞ!あせりは禁物だぞ!
現時点でここまで出来れば上出来すぎるぞ。おみゃ〜らよ!おりは神かもしれんな…♪
自分じわかる?
0124ほんたまNGNG
おみゃ〜らよ、スリムドカン1.1.9アップしたから見ちみれ?
おみゃ〜らよ、リソースエディタ2つ以上つくれるようになったぞ。不完全ではあるがな…
おみゃ〜らよ、サンプルのDaialog.asmをビルドすると、2つあるダイアログのうちのひとつが開き問題ないように見える。
だがこりはリソース内部ではデータ
がまだどっかおかしくなっているのだ。だからいろいろいじくるとボロが出てくる…
おみゃ〜らよ、もう少しデバッグしなけれなならんようだ…
だがここまでくるとおりはもはや神だな♪
だがおみゃ〜らよ、おりは次のメニューの作成に移ってもいいかな?どうじ?
メニューをつくりながら、ひまを見てはダイアログをあとちょっとデバッグするという路線でいこうと思うのよ。自分じどうか?
0125デフォルトの名無しさんNGNG
プロシージャのWM_PAINTで処理を行って0を返すと
CPU使用率が100%になるのですが、正しい処理ですか?
ちなみにメッセージループは
while(GetMessage(&msg, 0, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
というふうにしています。
0126125NGNG
sageたらあかんがな
0127デフォルトの名無しさんNGNG
>>125
WM_PAINT 時に BeginPaint と EndPaint してますか?
WM_PAINT 時に、子ウィンドウの移動等して再度 WM_PAINT を発生させていませんか?
0128125NGNG
>>127
BeginPaintとEndPaintをしていませんでしたorz
早いレスありがとうございました。
0129デフォルトの名無しさんNGNG
>>80-86
BCCで猫でも〜のサンプルは(警告が山ほど出たが)動いたけど
0130ほんたまNGNG
おみゃ〜ら〜、「スリムドカン」のダイアログエディタが完全になったぞ。吉報だ!
おみゃ〜ら〜、「スリムドカン」のダイアログエディタはひとつのダイアログばかりでなく、複数のダイアログを自在に編集し、しかもそれをメインウィンドウから別々に開くことができるまでに進化したぞ!わかるか?
つまりおりは神だってこと!!
おみゃ〜らよ、一応自己テストではバグは出なかったが、使っているうちにバグが見つかるかもしれんから、そのときは報告してくれ♪
おみゃ〜らよ、「スリムドカン」もいよいよ完全なダイアログエディタを備えるまでになったってことだ!!
おりは神だな♪
おみゃ〜らよ、次はいよいよメニューエディタの作成に取り掛かるぞ!
今年中にメニューエディタ、アイコンエディタまでは完成させときたいな♪どうよ?おみゃ〜ら〜?
おりは神だな♪
0131うさぎNGNG
>>130
スリムドカン って評価してみたけど、全然役に立たないものだって分かったよ。
あんまり宣伝しないほうがいいんでは。
0132デフォルトの名無しさんNGNG
あくまでもVC+WinAPIなんだが
VC7.0買ったほうがいい? MFCなり.net使用しないと
コントロール,GDI+等々で そろそろ無理?
0133デフォルトの名無しさんNGNG
>>132
どこかで試用してみてから判断したらどう?
0134デフォルトの名無しさんNGNG
>>133
いや つかう、つかわないなら 使うべきなんだろうが
.netが良いかどうかでなく WinAPIで どのへんまで
いけるか意見を聞きたかった

最後の喫煙者というか・・・・
0135デフォルトの名無しさんNGNG
http://www.speederxp.com/en/download.htm
と同じ物を作ってみたいのですが、どういう処理をしているのかさっぱりわかりません。
Win32APIをどのように使いまわせばこういうのができるようになるのでしょうか?
0136デフォルトの名無しさんNGNG
>>135
ほとんどはレジストリをいじってると思う。
環境に合わせてパラメータを設定してる。
そのへんのノウハウはWin32APIを知ってるだけではできない。
0137デフォルトの名無しさんNGNG
>>134
たぶんね (よく知らないんだけど)、VC6 でも .NET SDK (無料) 入れて、
C++ で .NET 使えば、VS.NET にこだわらなくてもいいんじゃないかと思う。
0138ほんたまNGNG
おみゃ〜らよ、system32フォルダにあるDLLの関数を呼び出すには、インポートセクションにDLL名と関数名を書き込んでいくだけで、呼び出せるんだが、
VC++で自分でつくったDLLの関数を同じ方法で呼び出そうとすると、「DLL何に○○のエントリーポイントが見つかりません」というメッセージが出て呼び出せないんだ…
おみゃ〜らよ、自分でつくったDLLとwindows付属のDLLとは、どっか構造が違うのかな?
windows付属のDLLと同じ構造のDLLを自分でつくるにはどうすればいいの?
教えてくだされ〜♪
0139デフォルトの名無しさんNGNG
↑マルチなのでレス不要
0140デフォルトの名無しさんNGNG
マルチというよりSPAMと言いたい
0141デフォルトの名無しさんNGNG
はじめまして
初心者系の方で聞こうかと思いましたけど、Win32APIについてなので、こちらに書き込ませてもらいました

現在RS232を使った通信プログラムを作ってるんですが、受信のところで突っかかってしまってます
仕様によるとPC側からデータを送信すると、30msec以内にデータを返してくるらしいのですが、そのデータの受信がどうにも上手くいかなくて困っています

ど素人らしく、単にWriteFile()の後にReadFileを置いてるだけなのですが、これではダメなのでしょうか
スレッド(でいいのかな?)を裏で働かせておきつつ送信するとかしないと、ダメなのでしょうか
0142デフォルトの名無しさんNGNG
>>141
端末エミュレータか何かで送受信できることを確認してからプログラミングしましょう。
つーか、相手がちゃんと受信して送信できてるかどうかは確認できてないの?
#まぁ、ハンドシェイクが巧く行ってないと思うが。
0143デフォルトの名無しさんNGNG
>>141
京都のあの大学の人?
もしかしたら偶然かもしれないけれど。
0144デフォルトの名無しさんNGNG
レスありがとうございます
>>142
送信は確認取れてます
モーター回す基板に命令送ってる感じです
送信するとモーターが動き出すので、送信は出来てます
ただ、その後返ってくるのが捕れないんです

端末エミュレータですか
まったく使ってませんでした(汗
Vectorあたりで探してみます
無料だといいな・・・

>>143
いいえ、私は「京都のあの大学の人」ではありませんよ
よくわからないけど、偶然だと思います^^
0145デフォルトの名無しさんNGNG
>>144
Windowsでシリアル通信ってどうやるの、と聞かれて同じことを教えた。
帰宅する直前に質問された内容と偶然同じだ。
ちょっとした用事があって急いでいたので質問には答えなかったのだけど。
0146デフォルトの名無しさんNGNG
>>144
TeraTermが最強。
簡単な制御ならTeraTermのマクロで何とかなるんじゃね?
0147デフォルトの名無しさんNGNG
>>141
1度のReadFileで先方が返してきたデータを全部取れる保証は全く無いので、
(適当なバッファに連結していくとかしながら)内容を確認しつつ最後まで取るよう
にする必要があるよ。

このとき先方が何も返してこないとき ReadFile で永遠に待たずに済むようにするには、
ReadFile で OVERLAPPED を渡してイベントが立つのをタイムアウト付きの
WaitForSingleObjectで待ったりするのが簡単。
0148141NGNG
レスありがとうございます

>>145
おぉ、確かに偶然内容が一致してます
そちらの方は解決できてるといいですね
私の方は・・・・(;´Д`)

>>146
なるほど〜..._〆(゚▽゚*)
試してみます

>>147
一度に全部とれないのですか
なかなかややこしい事になってるんですね・・・
「確認しつつ」とのことですが、
・ReadFile()をループさせておいて、受信データが存在しなくなったら抜ける
と、いった感じにすればいいのでしょうか
せっかくアドバイスいただいたのですが、どうにもイメージが上手くいかないです

今はOVERLAPPEDじゃなくてNULLを渡してます
指定のバイト数を受信するまで待っててねー、といった感じで使っているのですが、このイメージが根本的に間違えてるのかもしれない・・・_| ̄|○
0149デフォルトの名無しさんNGNG
>>148
バイト数わかってるならそれでOKです(通信障害は起きないと仮定して)。
フロー制御とか使ってるケーブルの結線とかも疑ってみては?
0150141NGNG
レスありがとうございます
>>149
なんとか受信できました
何とも情けない事にCOMの設定につかうDCBの変更を一カ所怠ってる事が分かりました
そこのところを直したら、あっさりと受信できてしまいました・・・

149氏の「フロー制御とか・・」という書き込みで、「あれ?」と気づけたので助かりました

最初にさせてもらいました質問はなんとか解決できました
レスをくださった皆様、ありがとうございました

さて、次は読み出したのをファイルに書き出すのを作らなくては・・・・(;´Д`)
0151デフォルトの名無しさんNGNG
>>150
もう読んでないかも知れませんが、古いNT系のOS (4.0 あたり?)ではBuildCommDCBがバグっていて、
lpDef に write access してくるので文字列リテラルを渡すとGPFっていうバグがありました。
商用ソフトなど書いていらっしゃるなら気をつけてください。
一旦TCHAR buff[...] にでもコピーしてから渡せばOK。
0152141NGNG
レスありがとうございます
>>150
バグが存在するのですか・・・
覚えておきます 〆(゚▽゚)
しかし、商用ではないですので、古い環境で使う事は無いかもしれないです
昔のOSに触れる機会があったら、参考にさせて頂きます(^^
0153141NGNG
しまった、番号間違えてる・・・
すみません、上は>>150ではなく>>151でした
0154デフォルトの名無しさんNGNG
age
0155デフォルトの名無しさんNGNG
Win9xでダメ文字対策したいんだけど、どうしたらいいんだろう?
0156デフォルトの名無しさんNGNG
9xでもIsDBCSLeadByteやCharPrevは使えるけど。
0157デフォルトの名無しさんNGNG
TextOut (hdc, (22 * cxCaps) + (40 * cxChar), cyChar * i,
szBuffer,
wsprintf (szBuffer, TEXT ("%5d"),GetSystemMetrics (sysmetrics[i].iIndex)));
というコードがあったのですが%5dってどういう言う意味なんでしょうか。
%dとの違いがよくわからず困ってます。
0158デフォルトの名無しさんNGNG
>>157
それは最低5桁にして数値化するという指示(右詰めで、空きは空白でパディングされる)。
これは元来Cライブラリの printf の書式指定方法で、wsprintfもそれに準じているわけですが、
Pascal等から入った人にはなじみが無いかも知れませんね。

0159デフォルトの名無しさんNGNG
>>158
ご丁寧でわかりやすい解説ありがとうございます。
C++からはじめてAPIによるプログラミングと来ているのでCの知識が薄いもので・・・
どうもありがとうございました。
0160デフォルトの名無しさんNGNG
マニュアルに載ってることを質問するな馬鹿
0161デフォルトの名無しさんNGNG
bcc/gcc/vcでDLLを作るときは__declspec(dllexport)/__declspec(dllimport)
を使った方がいいんですか?

使わなくても動くみたいですけど、vcはdllimportは付けた方が
若干速くなるとか聞いたことがあります。
0162デフォルトの名無しさんNGNG
?
0163デフォルトの名無しさんNGNG
>>161
エクスポート名でなく序数で解決されるからかもしれん。
漏れはVCもってないので知らんが検証してみては?
ただ、速度的な差を体感するのは無理。
0164デフォルトの名無しさんNGNG
DLL読み込み時に関数名を2分探索するか線形探索するかの違い
そして序数はかなりいいかげん
正確な場所はOSのバージョンによって違うし
体感なんて無理
0165デフォルトの名無しさんNGNG
>>161
http://homepage1.nifty.com/herumi/prog/prog17.html
0166161NGNG
int __stdcall hoge(int);

こんな関数をdefファイルを使ってエクスポートして試してみた結果、
gccはdllexport/dllimportを使わない方がわずかに速く(誤差?)、
vc6はdllimportを使わないと若干遅い気がしました。

w = clock();
for (i = 0; i < 10000000; i++) hoge(i);
w = clock() - w;
なループで何回かテストしたところ、

dllexport/dllimportを使わない
vc6 1300/gcc 470
dllexport/dllimportを使う
vc6 1170/gcc 490
dllimportのみ使う
vc6 1170/gcc 490

dllにはdllexportを使っても使わなくても変わらないみたいです。
0167デフォルトの名無しさんNGNG
postmessageで大文字を送ることができないと聞いたので、
keybd_eventでシフトを押して、postmessageして、
keybd_eventでシフトをクリアしているのですが、
全く大文字にすることができません。。どうしたらよいのでしょう・・・
0168デフォルトの名無しさんNGNG
>>167
PostMessageは一切使わず
keybd_eventだけでやるべきでは?
0169デフォルトの名無しさんNGNG
RGBマクロの説明に
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r) |\
            ((WORD)((BYTE)(g)) << 8 )) |\
            (((DWORD)(BYTE)(b) << 16)))
とあったのですが|\の意味がよくわかりません。
CでもC++でも見たことのない演算子のようですがどういう意味なのでしょうか。
0170デフォルトの名無しさんNGNG
>>169
それは|と\であって、ひとつの演算子ではない。
\は行の最後に書くと次の行とつなげる。
つまり一行でかくときには必要ない。

#define RGB(r,g,b) ((COLORREF)(((BYTE)(r) |((WORD)((BYTE)(g)) << 8 )) |(((DWORD)(BYTE)(b) << 16)))
と同じ。
0171170NGNG
補足。
\はマクロ演算子だからプリプロセスの段階で処理される。
0172デフォルトの名無しさんNGNG
見やすく改行しているだけなんですね。
ありがとうございました。
0173デフォルトの名無しさん05/01/23 13:49:45
質問なんですけどよろしくお願いします

GetOpenFileNameで複数ファイル選択可能にした場合、どのくらいバッファを確保すればいいですか?
お願いします
0174デフォルトの名無しさん05/01/23 17:19:40
>>173
人の多いWin32API質問箱へ行きな。
0175デフォルトの名無しさん05/01/23 19:11:41
>>174
はい、すみませんでした、いってきます orz
0176デフォルトの名無しさんNGNG
実際には Control キーを押下している状態だが、
押下していないようにアプリ側に見せかけるには
どうしたらようでしょうか?
0177デフォルトの名無しさんNGNG
>>176 自己レス
AttachThreadInput() と SetKeyboardState() でできそうかな。
0178デフォルトの名無しさん2005/04/02(土) 22:57:17
>>176
GetKeyState()とGetAsyncKeyState()の違いはわかる?
そのアプリがGetKeyState()などを使っている場合は、仮想的なキーの状態だから、
WM_KEYUP送ってやればうまくだませると思う。
でも、GetAsyncKeyState()なんかを使われている場合は、物理的なキーの状態だから難しいかも。
0179デフォルトの名無しさん2005/04/02(土) 22:59:48
あと、システムフックを使ってすべてのキーをフックしてしまう方法も。
0180デフォルトの名無しさん2005/04/03(日) 03:09:53
WM_KEYUPを送るよりは、
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
でいいんでない。
ウインドウがフォーカスしてれば使えたかと
0181デフォルトの名無しさん2005/04/27(水) 05:36:04
DirectXを使っているアプリケーションだと思うのですが、
これがウインドウのフォーカスやマウスのカーソルを抱え込んでしまって、
別のプログラムから
h = GetDesktopWindow();
ShowWindow(h, SW_RESTORE);
SetForegroundWindow(h);
みたいなことをやっても、フォーカスを取り戻せません。
こういう場合、どうしたらいいのでしょう?
Win32API ではなくて、DirectX のほうで調べるべきでしょうか?
0182デフォルトの名無しさん2005/04/27(水) 20:38:28
age
0183デフォルトの名無しさん2005/04/30(土) 16:25:24
ルートウィンドウなんて概念は無いに等しいから
EnumWindowで探して.
0184デフォルトの名無しさん2005/05/22(日) 06:53:36
 コントロールパネルを開く方法を教えてください
0185デフォルトの名無しさん2005/05/22(日) 18:28:55
>>184
ShellExecute(NULL, TEXT("open"), TEXT("control"), NULL, NULL, SW_SHOW);
0186デフォルトの名無しさん2005/05/29(日) 00:21:05
Win32APIをいつ頃学び始めたか、どのぐらいの期間で一人前のWindows
プログラマになれたのかを教えてほしい。
0187デフォルトの名無しさん2005/05/29(日) 00:26:16
>>186は誤爆です。スマソ。
0188デフォルトの名無しさん2005/05/30(月) 07:28:06
質問させてください。
FTPへアップロードするだけのアプリを作っているのですが、ダウンロード支援ソフトなどにある
リストビューの中にプログレスバー(?)を表示する部分で悩んでおります。ヘッダー部分をいじったり、
オーナードローにしたり、インターネットで検索したりと試行錯誤したのですがうまくいかないのです。
どなたか助言、または載っている書籍、HPなどの情報提供お願いします。

開発環境はVC++.NET、SDK、で作成しております。よろしくお願いします。
0189デフォルトの名無しさん2005/06/09(木) 14:15:53
ネットゲームにある、HPとか表示するウィンドウって子ウィンドウで作ってるのかな?
もしそうだったら、概観はどうやって変えてるんだろう。

そんな疑問に答えてほしい。


>186
一人前の基準がほしいところ。
0190デフォルトの名無しさん2005/06/21(火) 07:57:00
"Date: Fri, 11 Aug 2000 14:09:10 GMT"
の文字列をSYSTEMTIME構造体(FILETIMEでもよい)に変換したいのですが
簡単な方法は?
0191デフォルトの名無しさん2005/06/21(火) 08:15:00
>>188
PBM_SETPOS
#何がどううまくいかないのかぐらい書けよー
0192デフォルトの名無しさん2005/06/21(火) 08:16:07
>>189
リージョン
アルファブレンド
オーナードロー
0193デフォルトの名無しさん2005/06/23(木) 00:57:11
CでOfficeのCOMアドオン作ってる人いません?
0194デフォルトの名無しさん2005/06/23(木) 02:48:13
>>188

私の経験では。。C で DOS のプログラムが組めていた状態で;

(Windows 3.1 のころ)
1週間 プログラミングwindows をちゃんと手で打ち込んで勉強して
そこそこ Windows の仕組みがわかりました。。
0195デフォルトの名無しさん2005/06/23(木) 23:40:31
>>193
つくってるよん
0196デフォルトの名無しさん2005/06/25(土) 13:21:06
>>195様
作り方の初歩がでているサイトあったら教えてください・・・
0197デフォルトの名無しさん2005/06/25(土) 14:02:01
>>189
描画命令のみで自前のウィンドウシステムを書いている。
0198デフォルトの名無しさん2005/06/25(土) 14:22:17
ていうかなんでCOM開発でわざわざcなの?
C++使えば楽なのに。
0199デフォルトの名無しさん2005/06/25(土) 14:38:13
もしかしてCとC++のくべつがついていないだけだったりして
0200デフォルトの名無しさん2005/06/25(土) 14:58:50
CでもC++でも大して手間は変わらないと思うが
マクロを使うよりはテンプレートの方が良いかな
0201デフォルトの名無しさん2005/06/25(土) 15:38:24
WinAPIで、∪←こんな曲線を引ける関数ってありますか?
0202デフォルトの名無しさん2005/06/25(土) 16:03:07
>>201
PolyBezier
0203デフォルトの名無しさん2005/06/26(日) 11:38:56
>>200
テンプレートはどこにあったりしますか?
おしえてください
0204デフォルトの名無しさん2005/06/26(日) 13:49:28
>>203
C++の機能。
0205デフォルトの名無しさん2005/06/26(日) 21:11:11
もう少し具体的に教えてください
意地悪はしないで
0206デフォルトの名無しさん2005/06/26(日) 21:35:39
>>203
もう少し具体的に教えてください
意地悪はしないで
0207ゆみ2005/06/29(水) 01:05:55
>>203
もう少し具体的に教えてください
意地悪はしないで
0208デフォルトの名無しさん2005/06/29(水) 09:11:20
>>207
もう少し具体的に(プロフィール)教えてください
意地悪はしないで
0209デフォルトの名無しさん2005/06/29(水) 14:16:32
>>207
もう少し具体的に経験人数を教えてください
意地悪はしないで
0210デフォルトの名無しさんNGNG
お前らがそんなだから2ちゃんのイメージがイカ臭くなるんだよ。(´・ω・`)
0211ゆみ2005/07/02(土) 23:53:03
亀頭に唇をつけてあげますから
教えてください
0212デフォルトの名無しさん2005/07/12(火) 12:13:09
>>210
イメージではなく実際のニオイです。
0213デフォルトの名無しさん2005/08/28(日) 18:44:37
ここは厨が湧きすぎだな。
0214デフォルトの名無しさん2005/08/29(月) 12:14:30
ゆみ (;´Д`)ハァハァ
0215デフォルトの名無しさん2005/12/13(火) 22:41:40
MessageBox(NULL, "拡張子がcppなのに中身がただのCそのもの(´・ω・`)", NULL, 0);
0216デフォルトの名無しさん2006/01/02(月) 14:30:23
>>215
猫でも〜なんかがそんなことをしているな。
0217デフォルトの名無しさん2006/01/02(月) 16:14:48
クラスやテンプレートの構文はC++のものと分かってるが他のびみょーな構文は
C++とCのどちらか分からない人が大部分なのでとりあえず拡張子はCPPなのです。w
0218デフォルトの名無しさん2006/01/06(金) 08:42:56
うはw本物きた キタ━(゚∀゚)━!!!
0219デフォルトの名無しさん2006/01/09(月) 10:50:31
保守
0220デフォルトの名無しさん2006/01/09(月) 10:51:03
上げ忘れ
0221デフォルトの名無しさん2006/01/09(月) 14:41:07
>>220
sage でも保守になるから
0222デフォルトの名無しさん2006/01/09(月) 22:06:19
#include <windows.h>

WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"ぬるぽ",NULL,0);
return 0;
}
0223デフォルトの名無しさん2006/01/11(水) 00:03:45
>>222
#include<windows.h>

WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow){
int i=0;
TCHAR str[1024];
wsprintf( str, "%s", TEXT("") );

for(i=0;i<=5;i++){
wsprintf( str, "%s%s", str, TEXT("ガッ!") );
MessageBox( NULL, str, TEXT("( ・∀・) "), MB_OK );
}
return 0;
}
0224デフォルトの名無しさん2006/01/11(水) 02:06:34
どうでもいいことだが、
 for(i=0; i<5; i++)
か
 for(i=1; i<=5; i++)
じゃないと気持ち悪い
0225デフォルトの名無しさん2006/01/11(水) 21:35:18
>>223
wsprintf( str, "%s%s", str, TEXT("ガッ!") );

これ動作として安全か?
0226デフォルトの名無しさん2006/01/12(木) 02:59:52
>>225
大抵巧くいくけど未定義だね。
0227デフォルトの名無しさん2006/01/12(木) 13:38:12
つ lstrcat
0228デフォルトの名無しさん2006/01/12(木) 15:28:05
ラージストロングキャット
0229デフォルトの名無しさん2006/01/14(土) 01:15:28
WinAPI知らなくて申し訳ないが、
sprintf(str, "%s%d", str, 123);
と同じことをしたいならstrcat()を使うまでもなく
sprintf(strchr(str, '\0'), "%d", 123);
でできるわけだが。
sprintf(str + strlen(str), "%d", 123);
でもいいね。
#って、だからなんだって話になりそうだw
0230デフォルトの名無しさん2006/01/14(土) 01:22:43
>>229
2番目3番目のほうがいいに決まっている。
1番目のやりかたでの結果は未定義だから。
0231デフォルトの名無しさん2006/01/14(土) 01:28:33
>>229
て言うか、いつの間に "%s%d" になってるんだよ。
"%s%s" なら、sprintf() 使うまでもなく
strcat() でいいんじゃないのか? って言う話じ
だったoと思うが。
02322292006/01/14(土) 02:09:07
いやぁ、このスレ的にはその辺はWinAPIでどう書くんだろうなぁと。
0233デフォルトの名無しさん2006/01/14(土) 02:10:36
wsprintf, lstrlen
0234デフォルトの名無しさん2006/02/25(土) 22:13:51
ある、キー入力を受け付けるソフトがあるのですが、それにソフト的に
入力を与えたいです。
たとえば、「K」を入力すると、10ms間隔で順番にA,B,Cとそのソフトに
入力するなどです。
Win32APIを駆使してこのようなプログラムを作成する場合、
どのような方針、アルゴリズムで進めていけば良いでしょうか??
02352342006/02/25(土) 22:16:03
すみません、過疎ってるみたいなんで、別スレで聞いてみます。
0236デフォルトの名無しさん2006/03/09(木) 19:20:08
Win32APIを駆使してlinuxプログラムを書くスレ
0237デフォルトの名無しさん2006/03/09(木) 21:43:11
>>236
Wine
0238デフォルトの名無しさん2006/03/21(火) 17:11:03
(´A`)保守
0239デフォルトの名無しさん2006/03/32(土) 20:48:50
オシュ
0240デフォルトの名無しさん2006/04/03(月) 18:48:12
Cとwin32apiはめんどくさい
0241デフォルトの名無しさん2006/04/04(火) 10:42:45
WTL
0242デフォルトの名無しさん2006/04/05(水) 00:14:08
メッセージクラッカーはCでも使える。
0243デフォルトの名無しさん2006/05/08(月) 17:25:37
まだまだ死なんぞ
0244デフォルトの名無しさん2006/06/21(水) 13:14:43
vc2005で
textout表示しようとしたらで文字化けするし、キャスト美味くできてないみたいで
散々調べた結果、原因はマルチバイトじゃなくてUNICODEを使用していたという
何とも肩の力が抜け落ちる結果でしたとさ。orz
0245デフォルトの名無しさん2006/06/26(月) 09:23:24
うにこーどのロケールを日本語に切り替えろよ
■ このスレッドは過去ログ倉庫に格納されています