■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build34
751 名前:デフォルトの名無しさん :2005/08/27(土) 10:24:37
寿命短そうだな

752 名前:デフォルトの名無しさん :2005/08/27(土) 10:43:19
SpkQQ

753 名前:デフォルトの名無しさん :2005/08/27(土) 11:32:31
>>750
速くスイッチングするとカチカチじゃなく、ブーンからピーンと発信音がする罠。

754 名前:デフォルトの名無しさん :2005/08/27(土) 11:49:24
MessageVip()

755 名前:デフォルトの名無しさん :2005/08/27(土) 11:53:23
単発ジョークでふざけたい人は頭悪スレいってくれ

756 名前:デフォルトの名無しさん :2005/08/27(土) 15:12:45
>731
学生なら図書館行くとか
割と置いてあったりするし
なんなら図書館に仕入れてもらうとか

757 名前:デフォルトの名無しさん :2005/08/27(土) 18:52:49
親ウインドウのプロシージャでWM_CREATE時にしか実行されない子ウインドウを作成する関数(関数内にループもない)
がループして困っているのですが
WM_CREATEってCreateWindowしたとき以外発生しませんよね?

758 名前:デフォルトの名無しさん :2005/08/27(土) 19:04:57
>>757
関数内にループが無いんなら、その関数呼び出すとこがループになってんじゃねーのか?

759 名前:デフォルトの名無しさん :2005/08/27(土) 19:05:15
>>757
The WM_CREATE message is sent when an application requests that a window be created by calling the CreateWindowEx or CreateWindow function.

760 名前:デフォルトの名無しさん :2005/08/27(土) 19:07:09
>>757
メッセージループの書き方が悪いんじゃ?

761 名前:デフォルトの名無しさん :2005/08/27(土) 19:19:38
親ウィンドウと同じプロシージャ使ってるんじゃねぇの?


762 名前:プロシージャ :2005/08/27(土) 19:26:44
LRESULT CALLBACK WindowProc
(
HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
)
{
PAINTSTRUCT ps;
HDC hdc;
switch(uMsg)
{
case WM_DESTROY:
ResetInformationString();
PostQuitMessage(0);
return 0;
case WM_CREATE:
IniInformationString();
SetInformationStringMax(20);
CreateEditLine(hWnd,wParam,lParam); //ループしている関数
return 0;
                     略
              default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}



763 名前:ループしている関数 :2005/08/27(土) 19:29:08
void CreateEditLine(HWND hwnd, WPARAM wParam, LPARAM lParam)
{
       h_edit = CreateWindow
              (
APP_NAME ,NULL,
WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT,
16, 450, 560, 20,
hWnd,NULL, ((LPCREATESTRUCT)lParam)->hInstance , NULL
);
if(h_edit == NULL)
{
InsertInformationString("Editline create failed");
return;
}
edit_proc = (WNDPROC)SetWindowLong(h_edit,GWL_WNDPROC,(LPARAM)EditProc);
       InsertInformationString("Chatting editline create Success!");

}

764 名前:デフォルトの名無しさん :2005/08/27(土) 19:34:37
親ウインドウの作成関数の引数が激しく気になるなw
APP_NAMEが指定されてるんじゃなかろうか…

765 名前:デフォルトの名無しさん :2005/08/27(土) 19:34:39
>762が親ウインドウのプロシージャです。
>763が子ウインドウを作成する関数です。
SetWindowLongでプロシージャも専用のものに切り替えてるはずなんですが;

766 名前:デフォルトの名無しさん :2005/08/27(土) 19:37:24
ああっやっぱり…
WM_CREATE は SetWindowLong でプロシージャ切り替える前に送られるよ。

767 名前:デフォルトの名無しさん :2005/08/27(土) 19:38:12
>764
APP_NAMEになってました・・・・・・orz
修正したら正常に動作しました

>758-766お騒がせしてすみません;

768 名前:デフォルトの名無しさん :2005/08/27(土) 19:40:19
まぁ、知らないうちには良くやることじゃな

769 名前:デフォルトの名無しさん :2005/08/28(日) 14:53:20
単純なエディットコントロールを作成したんですが
キーボードから入力しても文字列が表示されなくて(aaaと打っても空白のまま)困っています。

CreateWindow("EDIT","",
WS_CHILD|WS_VISIBLE,
10,10,300,20,
hwnd,
(HMENU)1,
hInstance,
NULL);

落としたサンプルそのままで使ってるんですが、別のものが影響したりするんでしょうか?


770 名前:デフォルトの名無しさん :2005/08/28(日) 16:18:24
ウインドウの高さが小さくね?

771 名前:デフォルトの名無しさん :2005/08/28(日) 16:19:47
失礼、RECTと勘違いした。

772 名前:デフォルトの名無しさん :2005/08/28(日) 17:23:26
コンボボックスの中のエディットコントロールのハンドルを取得できますか?

773 名前:デフォルトの名無しさん :2005/08/28(日) 18:55:49
出来るよ。コンボだからエディットコントロールと
リストボックスの合体だな。spy++で覗くと良いだろう。

774 名前:デフォルトの名無しさん :2005/08/29(月) 01:49:32
フラットC#へもマルチさせて頂き恐縮ですが、どちらの掲示板にパピッポすればよいのか自信がありませんでした・・。

漢字入力を始めたときに飛んでくるWM_IME_STARTCOMPOSITIONなどを
監視して、以下のようなソフトを作りたいと思っています。
@ワード文書内において、
AIME入力、言い換えれば漢字入力を開始すると、
B入力された文字が確定されるまで、
C背景を薄いブルーにする、
というものです。

すでに私は、
ソリューションダイアログでWord.ObjectLibraryを参照するように設定することで、
@ワード文書に例えば文字列をinsertしたり、選択範囲を変更したりできるようになりました。
また、
自分のフォームに、テキストボックスから派生させたMyテキストボックスを
貼り付けて、そのMyテキストボックスに文字が入力されはじめたことを
ウィンドウメッセージとして取得できるようになりました。
具体的には、派生させたクラス(Myテキストボックス)のWndProcをOverrideして
m.MsgがWM_IME_STARTCOMPOSITIONかどうかを判定する機能を追加しました。

【質問】
しかしながら、Myテキストボックスでは「文字が入力されはじめたことを検知」する
機能を搭載することに成功したのですが、
ワード文書ではうまくいきません。とうかどうやるのかよくわかりません。
テキストボックスから、上記の機能を搭載したクラスを派生させるように、
例えば、Word.ApplicationやWord.Documentから派生クラスを用意して適宜同じように
WndProcをoverrideすればうまくいくでしょうか。
もっとも、Word.Applicationは、インターフェース型(?)ですが。

【質問2】
思いっきりすれ違いな予感もしますが、当方VisualC#2.0 beta2 , WindowsXPsp2,Word2000です。
よろしくお願いします。

775 名前:デフォルトの名無しさん :2005/08/29(月) 02:08:16
>フラットC#へもマルチさせて頂き恐縮ですが、どちらの掲示板にパピッポ
ここまで読んだ。そして、その後の文章を読む気力が無くなった。

776 名前:デフォルトの名無しさん :2005/08/29(月) 02:11:30
Word.DocumentClassやWord.ApplicationClassが一応はクラスですけど、
これらのクラスから派生クラスを作ってはみるものの、
WndProcなるメソッドをインテリコンボボックス(?)から
見つけ出すことはできませんでした。

777 名前:774 :2005/08/29(月) 02:12:37
>>775
丸rz。。。
そんなことおっしゃらずに、お願いします(T_T)

778 名前:デフォルトの名無しさん :2005/08/29(月) 07:00:59
いいから帰れ
スレ違いだ

779 名前:デフォルトの名無しさん :2005/08/29(月) 09:23:29
タスクバーに表示されている自分(アプリケーション)のタスクバーアイコンの
キャプションをウィンドウタイトルバーのキャプションとは違うものにする方法は
ないでしょうか。

googleで、タスクバー、アイコン、キャプション、タイトル、テキスト、操作、設定、api
などのキーワードで検索してみましたが見つかりませんでした。

780 名前:デフォルトの名無しさん :2005/08/29(月) 09:36:39
>>779
MSDN Libraryみてみたが無かった
ってか無理なんじゃね?その辺の制御はWindowsのシェルがやってる希ガス

781 名前:デフォルトの名無しさん :2005/08/29(月) 09:55:54
>>779
メインウィンドウを非表示にして、メインじゃないウィンドウのタイトルを
好きに変更汁。

782 名前:デフォルトの名無しさん :2005/08/29(月) 10:33:40
Win32APIをラップしたクラスを作ってるんですが、
クラス名としてどのようなものがよいでしょうか?

783 名前:デフォルトの名無しさん :2005/08/29(月) 10:35:02
知るか

784 名前:デフォルトの名無しさん :2005/08/29(月) 10:44:18
ひとまとめにするのはnamespaceだけにしとけ
ラップする機能単位にクラス化しろ

785 名前:デフォルトの名無しさん :2005/08/29(月) 11:06:19
>>780 >>781 さん
レスありがとうございます。

書き込みしてからさらに情報を探しているうちに、Delphiで作られたアプリが
>779で書いたようなことを実現していたことを思い出しました。

で"Delphi"もキーワードに加えて検索したところ、>781さんも書いている、
タスクバーアイコンを非表示にしたウィンドウとデスクトップ外に表示した
ウィンドウの2つのウィンドウを使って1つのウィンドウに見せかける(Delphi
ではこれがデフォルト?)、というやり方を見つけました。

ポイントとしてはSetWindowLongあたりでスタイルを変えるというめどは
つきましたが、使っている言語がHSPなのでうまくいくかどうか不安です。
ではとりあえず消えます。ありがとうございました。

786 名前:デフォルトの名無しさん :2005/08/29(月) 11:18:38
>>785
悪いこと言わんからDelphiなりVC#にでも開発環境変えれ。
HSPはHSPの提供してる機能以上のことやると他の環境以上に手間がかかる。

787 名前:デフォルトの名無しさん :2005/08/29(月) 11:32:56
お勧めはDelphi

788 名前:デフォルトの名無しさん :2005/08/29(月) 11:54:24
お勧めはBC++

789 名前:デフォルトの名無しさん :2005/08/29(月) 13:26:56
このスレで良いのかどうかわかりませんが...

windowsの起動時に「ctrl+alt+delキーを押して開始してください画面」から、
「ctrl+alt+del」→「任意のユーザー名、パスワード、ドメイン名にてログオン」
ということが、外部PCからの制御でしたいのですが、なかなか出来ません。
まずは簡単なサービスを作ってウィンドの挙列をして、
強引にプログラムから入力してみようとしてみましたが、
普通のウィンドウではないらしく、setwindowtextなど出来ませんでした。
いずれにしてもサービスで外部からのコマンド等を受信してからの
作業になると思いますが、どのように進めて行けば良いのでしょうか?
ご存じの方、よろしくお願いします。


790 名前:デフォルトの名無しさん :2005/08/29(月) 13:44:10
>>789
GINAでググれば糸口が掴めるやも

791 名前:デフォルトの名無しさん :2005/08/29(月) 13:52:57
>>790
実は以前GINAを調べていたのですが、
結構ハイリスクだったので諦めた経緯があります。
何か姑息な手段でも良いのですが他に方法なないでしょうか。
それともはやりGINA必須でしょうか。


792 名前:デフォルトの名無しさん :2005/08/29(月) 14:19:23
ハイリスクノータリーン

793 名前:デフォルトの名無しさん :2005/08/29(月) 14:47:57
ハイリスクノータリーン

794 名前:793 :2005/08/29(月) 14:48:33
って、既にその方向性だったのか orz

795 名前:デフォルトの名無しさん :2005/08/29(月) 14:57:22
ハイリスクタリラリラーン

796 名前:デフォルトの名無しさん :2005/08/29(月) 15:29:52
外部からログインするならGINAさわる必要ないだろ
>>789は外部から対話ログインしてその後どうするつもり?
全部SendMessageとかで他プログラム制御するのか?

797 名前:717 :2005/08/29(月) 16:00:20
スルーされてしまったようなのでもう一度。

798 名前:デフォルトの名無しさん :2005/08/29(月) 16:53:16
>>796
外部から対話ログインしたいのではなく、
外部からの制御でctrl+alt+del→ユーザー名パスワード、ドメイン名の入力を
済ませたいのです。
例えばカードリーダーや指紋認証等と232C等で通信して、
ログインするユーザーやドメインを変えたいということです。
「ctrl+alt+delキーを押して開始してください画面」
の状態のパソコンを上記の操作で自動的に任意のユーザーでログオンさせたいのです。
よろしくお願いします。


799 名前:デフォルトの名無しさん :2005/08/29(月) 17:02:39
スレッド毎に(スレッドローカルな)データを持たせたいのですが、
そういうAPIは用意されてますか?

今はグローバル変数の配列にtid毎にポインタを割り当てているのですが、
これだとアクセスする度に検索しなくてはならないので非常に遅くなります。

ご教示お願いします。

800 名前:デフォルトの名無しさん :2005/08/29(月) 17:11:45
>>799
TlsAlloc、TlsGetValue、TlsSetValue

この辺か?

801 名前:デフォルトの名無しさん :2005/08/29(月) 17:17:27
一瞬GAINかと思った・・

802 名前:デフォルトの名無しさん :2005/08/29(月) 17:31:41
>>800
ありがとうございました。まさにソレです。

803 名前:デフォルトの名無しさん :2005/08/29(月) 18:07:03
>>795
不覚にもツボに入った。

804 名前:デフォルトの名無しさん :2005/08/29(月) 20:03:32
>>798
スマートカード認証ならますます素直にGINAを使えって話になるが

805 名前:デフォルトの名無しさん :2005/08/29(月) 20:22:17
まさにそのための機能だしね。
まあThinkPadの指紋認証みたいなポカ作り込まないように気を付けてがんばれ。

806 名前:デフォルトの名無しさん :2005/08/29(月) 20:37:27
>>782
よーするに COM か?

807 名前:デフォルトの名無しさん :2005/08/29(月) 21:05:04
>>806
COMについて理解が足りてない予感。

808 名前:デフォルトの名無しさん :2005/08/29(月) 21:20:40
>>807
ドライバとのインターフェイスに限定して考えてるか?

809 名前:デフォルトの名無しさん :2005/08/29(月) 21:40:52
SetWindowsHookEx()でスレッドIDに0を指定して、インスタンスハンドルをちゃんと指定した場合、
現在のプロセス、かつ、現在のプロセスで作成された全てのスレッドに対してフックできますか?

810 名前:デフォルトの名無しさん :2005/08/29(月) 22:06:40
やってみりゃいいじゃなーい?

811 名前:デフォルトの名無しさん :2005/08/29(月) 23:16:07
GINAを調べてみましたが、GINAのdllは基本的に
何かの状態変化の時に呼び出されるコールバック関数の様なものの固まりに見えます。
実際、「ctrl+alt+delキーを押して開始してください画面」
の状態の時、外部(232C等)からの情報は何処で受け取って、
受け取ったあと、どのように処理すれば良いのかわかりません。
LogonUserとかでtokenを取得し、その後デスクトップの処理する事になるのかな。
それならGINAとかあまり関係なさそうだし。
どうGINAと絡めばいいのでしょう...
おわかりの方、よろしくお願いします。


812 名前:デフォルトの名無しさん :2005/08/30(火) 03:59:40
ctrl+alt+delキー押されたとき呼ばれる関数があるやろ
そこで「カードをかざせ」みたいなダイアログだして
シリアルポートからカード情報読んで
簡単なつくりにするなら、
カード情報と認証情報結び付けといて
その認証情報でLogonUser
でプロファイル読んだりしてシェル立ち上げておしまい

813 名前:デフォルトの名無しさん :2005/08/30(火) 05:27:31
馬鹿にしないでください。それでわかるくらいなら質問しません。

814 名前:デフォルトの名無しさん :2005/08/30(火) 08:21:13
ワロタ

815 名前:789 :2005/08/30(火) 08:51:15
>>812
情報、ありがとうございます。
>ctrl+alt+delキー押されたとき呼ばれる関数があるやろ
はい。ありますよね。
しかし、私が思っているのはその前の
「ctrl+alt+delキーを押して開始してください画面」
の時点、つまりパソコンの電源を入れて上記画面で止まっている状態から
外部機器からの操作でログイン→デスクトップ表示まで行きたいです。
ctrl+alt+delの操作を省きたいのです。(が、表示は普通に出しておきたい。)
そこで思ったのは、もしかすると私のやりたいことはGINAに直接関係なく、
少なくともWlxから始まる関数の処理はしないでも、
上記「ctrl+alt+delを押して...」の時点で、
サービスによりLogonUserでtokenを取得し、
812氏の仰る「プロファイル読んだりしてシェル立ち上げておしまい 」
なのではないかと思ったのですが、
「プロファイル読んだりしてシェル立ち上げておしまい 」
の方法が今のところわからず、試せずにいます。
なにか情報が有れば、引き続きよろしくお願いします。


816 名前:デフォルトの名無しさん :2005/08/30(火) 09:49:51
>>815
GINAやWinLogonのことはよく知らないけど横レス。

つまりWinLogon.exeの知らないところで自前のプロセスで
対話ログオンを行うというアイディア?
それでシェルが上がったとしてもちゃんと動くのかなー?
勉強で作りたいならいいけど動作保証が必要な仕事なら
その方法はキツいような臭いがする。
検討するにしても789の理解では難しいような気がするよ。

> プロファイル読んだり
LoadUserProfile

> シェル立ち上げて
HKLM¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥Winlogon
のShellに書いてるのを上げる。userinitが先かな。

デスクトップ作ったり(切り替えだけかも)しないとアカンような気もする。

817 名前:816 :2005/08/30(火) 09:57:32
自己レス。
>>816
> HKLM¥SOFTWARE¥Microsoft¥Windows NT¥CurrentVersion¥Winlogon
HKCUにもあったような気がした。

818 名前:789 :2005/08/30(火) 10:26:53
>>816
>WinLogon.exeの知らないところで
なるほど。
確かにOSが管理出来なくなる様な事になりそうではありますね。
う〜む。しかし、GINAとなるとどの時点で外部からの制御を処理すれば良いのか...
もう少し探ってみます。
よろしくお願いします。


819 名前:816 :2005/08/30(火) 12:17:17
>>818
> GINAとなるとどの時点で外部からの制御を処理すれば良いのか...

よくわからないので間違ってるかもしれないけど。
初期化時とかにスレッドなりウィンドウなり作ってそこで通知を
待つとかポーリングとかすればいいんじゃない?
で、来たらWlxSasNotify呼ぶのかな?

とにかくWlxSasNotify呼んでるサンプルを見つければいいような
気もする。

820 名前:Omoti :2005/08/30(火) 13:41:22
WIN32APIの質問をしたいんですけど、いいですか?


821 名前:Omoti :2005/08/30(火) 13:49:41
RGSSというプログラムで、以下のコードをかきました。
目的の動作は、
「WEBブラウザーを起動して、こちらの指定のURLを表示する」
という、シンプルなものです。
ただ、起動するブラウザーのウインドウの数は、1個だけに制限するという仕様です
(いくつもウインドウが立ち上がるとメモリが足りなくなるため)

shellexecute = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
shellexecute.call(0, 'open', 'http://www.google.co.jp/', 0, 0, 1)

このコードを実行すると、パソコンにゾーンアラームなどファイヤーウオールがはいっていると、
「RGSSというプログラムがネットに接続しようとしているが、許可するか?」
とでてきて、
「許可する」
を押すのですが、そのあとすぐに
「スクリプトがハングアップしました」
となってRGSSが強制終了してしまいます。
RGSSはrubyを元にして作った言語ですので、rubyのメーリングリストでも聞いてみましたが
「どうもRGSSのバグではないか」
という話になってますが、win32apiの立場から見て、どう思いますか。


822 名前:あぼ〜ん :2005/08/30(火) 13:50:18
あぼ〜ん


823 名前:デフォルトの名無しさん :2005/08/30(火) 14:02:43
>>821
RGSSの言語仕様知らんから、ShellExecuteの引数だけ確認したが問題ないと思う
RGSSのバグじゃまいか?

824 名前:デフォルトの名無しさん :2005/08/30(火) 15:04:55
Winの仕様だと思うが。
Cで書いたShellExecuteを呼ぶだけのプログラムでも、
なぜかそのプログラムがZoneAlarmにトラップされ一時停止するしな。

RGSS的にはShellExecuteから戻ってこない→ハングアップしますた。で問題ないと思うが。

825 名前:デフォルトの名無しさん :2005/08/30(火) 15:18:35
A BoneとかでリンクをクリックしてもなかなかIEに渡らないのはそのせい?
Ctrl+TabでIEをアクティブにするといきなり開くんだけど。

826 名前:デフォルトの名無しさん :2005/08/30(火) 15:19:11
ひょっとしてFWに捕まった後、次からはスルーされるように設定した後の話じゃなくて
FWに捕まったときの話なのか?それなら>>824だと思う

827 名前:デフォルトの名無しさん :2005/08/30(火) 17:01:21
>>815
セキュリティポリシーでctrl+alt+delキー不要にしたらダイアログ勝手に出てくるから
そのダイアログでシリアルポートポーリングするのは駄目か?
これもGINA変更が必要だけどそれ以外思いつきません。

828 名前:デフォルトの名無しさん :2005/08/30(火) 19:08:30
漢字入力を始めたときに飛んでくるWM_IME_STARTCOMPOSITIONなどを
監視して、以下のようなソフトを作りたいと思っています。
@ワード文書内において、
AIME入力、言い換えれば漢字入力を開始すると、
B入力された文字が確定されるまで、
C背景を薄いブルーにする、
というものです。

すでに私は、
ソリューションダイアログでWord.ObjectLibraryを参照するように設定することで、
@ワード文書に例えば文字列をinsertしたり、選択範囲を変更したりできるようになりました。
また、
自分のフォームに、テキストボックスから派生させたMyテキストボックスを
貼り付けて、そのMyテキストボックスに文字が入力されはじめたことを
ウィンドウメッセージとして取得できるようになりました。
具体的には、派生させたクラス(Myテキストボックス)のWndProcをOverrideして
m.MsgがWM_IME_STARTCOMPOSITIONかどうかを判定する機能を追加しました。

【質問】
しかしながら、Myテキストボックスでは「文字が入力されはじめたことを検知」する
機能を搭載することに成功したのですが、
ワード文書ではうまくいきません。とうかどうやるのかよくわかりません。
テキストボックスから、上記の機能を搭載したクラスを派生させるように、
例えば、Word.ApplicationやWord.Documentから派生クラスを用意して適宜同じように
WndProcをoverrideすればうまくいくでしょうか。
もっとも、Word.Applicationは、インターフェース型(?)ですが。

【質問2】
思いっきりすれ違いな予感もしますが、当方VisualC#2.0 beta2 , WindowsXPsp2,Word2000です。
よろしくお願いします。

829 名前:デフォルトの名無しさん :2005/08/30(火) 20:33:20
WORDのOLEはアウトプロセスだったはず。
DLL使ってフックしたりするしかないのではないかなぁ。
本質的には外のWORDを乗っ取るのと同じ事だから。

830 名前:789 :2005/08/30(火) 20:40:28
>>819
>>827
仰られるあたりを踏まえて
色々やってみます。
ありがとうございます。
少し時間がかかると思いますが、
何かわかればまた報告に来ます。



831 名前:デフォルトの名無しさん :2005/08/30(火) 20:53:57
Rebarで、ウィンドウサイズ変更をすると、Gripとシェブロンの部分がちらつくんですが、
IEのようにちらつかないようにするにはどうすればいいのでしょうか?

よろしくお願いします。

832 名前:デフォルトの名無しさん :2005/08/30(火) 21:01:40
WTLのソースコードを参照

833 名前:831 :2005/08/30(火) 21:44:55
>>832
今、最新のWTLのソースコードをGETして、何かサンプルアプリをビルドしてみましたが、
リバーのグリップが、ちらちきますね。

IEだと、まったくちらつかないんですよ。
たぶん、何か技があるとおもうのですが、ご存知な方はいらっしゃいませんか?

是非教えていただきたいと思いますが。

834 名前:デフォルトの名無しさん :2005/08/30(火) 21:45:54
(誤)リバーのグリップが、ちらちきますね。
(正)リバーのグリップが、ちらつきますね。

835 名前:デフォルトの名無しさん :2005/08/30(火) 22:53:12
試しにおいらの作ったWTL使用ソフトで試したけど、一切ちらつかないぜ

836 名前:831 :2005/08/30(火) 23:05:49
それ、カスタマイズしてるんじゃないんですか?
僕が試したWTLは、ピュアなものですから。

837 名前:デフォルトの名無しさん :2005/08/30(火) 23:29:36
うちのピュアなWTLでもちらつかないぞ。

838 名前:デフォルトの名無しさん :2005/08/31(水) 01:28:52
プログラムの追加と削除にアンインストーラを入れる方法。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
にキー作って、タイトルとパラメータ入れるトコまでは解ったのですが、
アプリケーションサイズはどのように設定するのでしょうか?

839 名前:Omoti :2005/08/31(水) 01:47:22
>>821>>823-826

ハーフライフとか、市販のゲームでネットにはじめて接続しようとしたときに、
当然ゾーンアラームで検知されて、
「ハーフライフというゲームがネットに接続しようとしているが、許可するか?」
という、同じようなダイアログがでてきます。
でも、そのあいだ、ハーフライフはずーーとおとなしく「おあづけ」状態でおとなしく待っていて、
ゾーンアラームの「許可」のボタンを押した後に、何事もなかったように素直にゲームに復帰できます。
ところがRGSSはいったんゾーンアラームに処理が移ると、それでゲームごと強制終了してしまうんです。
スクリーンショットは画像はこんな感じです。
http://www.net24.ne.jp/~omoti/game-link/hangu-up.html


840 名前:デフォルトの名無しさん :2005/08/31(水) 02:37:15
FW切ってたらどうなるんだ?

841 名前:Omoti :2005/08/31(水) 02:39:43
>>840
そりゃーなんの問題もおこりませんよ
だれにもとめられないんですから

842 名前:デフォルトの名無しさん :2005/08/31(水) 05:56:54
RGSSが、時間の掛かるスクリプトを殺す仕様なんだろ。

843 名前:Omoti :2005/08/31(水) 06:52:32
>>842
それはちがうとおもいます
ネット上のURLを拾いに行かないで、
パソコン内のローカルなHTMLファイルを参照しながら
IEを起動するようにしたら、ゾーンアラームで検知しないので
IEが起動して、その起動したあとに、ネット上のURLを表示する
ようにしたら、そこではじめてゾーンアラームが検知して
「許可するか?」
という、ダイアログを出してきますけど、そこで
「ゆっくりと」
時間をかけて「許可する」のボタンをおしても
なんの問題もおこりません
つまり、「許可する」のボタンをおしたら、そのままゲームにもどって
プレイを続行できます。

844 名前:Omoti :2005/08/31(水) 06:56:14
>>843
>ネット上のURLを拾いに行かないで、
>パソコン内のローカルなHTMLファイルを参照しながら
>IEを起動する

これは具体的には、「readme.html」のようなファイルを別途、つくっておいて、
ゲームのフォルダの中につっこんでおいて、この「readme.html」を開くという
スクリプトを第一段階目で組んで実行するわけです

shellexecute = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
shellexecute.call(0, 'open', 'readme.html', 0, 0, 1)

こういうふうに。そうすると、readme.htmlを読み込みながらIEが起動して、
IEのウインドウが開いたままの状態で今度は

shellexecute = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')
shellexecute.call(0, 'open', 'http://www.google.co.jp/', 0, 0, 1)

を実行します。するとすでにIEは開いているので、それ以上、わざわざIEを
開くという作業はなしで、いきなりhttp://www.google.co.jp/を既存のIEのウインドウで
開こうとして、ここでゾーンアラームが検知をしまして
「許可するか?」
という、ダイアログを出してきて、「許可する」を押すと、
そのまま何も問題なく、ゲームが続行できます。


845 名前:Omoti :2005/08/31(水) 07:07:09
こんどは別な質問です。
IEの
ツールTの中の、
インターネットオプションOの中の、
詳細設定の中の、
ブラウズの中の、
ショートカットを起動するためにウインドウを再利用する
の、チェックがどうなっているか、取得する方法はありますか?




846 名前:デフォルトの名無しさん :2005/08/31(水) 07:42:58
spy++でしらべれ

847 名前:デフォルトの名無しさん :2005/08/31(水) 08:45:32
>>845
HKCU\Software\Microsoft\Internet Explorer\Main\AllowWindowReuse
辺りじゃないか?

848 名前:Omoti :2005/08/31(水) 10:28:35
>>847
それってWin32apiの立場から、見えるんですか?


849 名前:デフォルトの名無しさん :2005/08/31(水) 10:33:08
>>848
Win32APIにレジストリの読み書きをする関数がないなんてありえない。

850 名前:Omoti :2005/08/31(水) 11:10:32
>>849
ということは、Win32apiをいじれるということは、
レジストリの読み書きもできると?


851 名前:Omoti :2005/08/31(水) 11:11:33
レジストリの読み書きができると、何か、面白いことができる?


852 名前:Omoti :2005/08/31(水) 11:12:46
他人のパソコンのレジストリを
読んだり
書いたり
変更したり
できると、何かおもしろいことができる?


853 名前:デフォルトの名無しさん :2005/08/31(水) 11:27:45
>>850
だからWin32APIの中にはレジストリを読み書きする関数が存在する。
じゃなきゃ俺達どうやってレジストリを扱えばいい。

854 名前:デフォルトの名無しさん :2005/08/31(水) 12:32:26
レジストリの読み書きはわざわざそれに特化した関数を使わなくてもCreateFile、ReadFile、WriteFile、CloseHandleでできると思うけどどうよ?

855 名前:デフォルトの名無しさん :2005/08/31(水) 12:48:31
Omoti死んでくれ

856 名前:デフォルトの名無しさん :2005/08/31(水) 12:49:07
無理だと思うけどどうよ?

857 名前:デフォルトの名無しさん :2005/08/31(水) 13:24:30
>>854
パスの指定ってどうやるの?

858 名前:デフォルトの名無しさん :2005/08/31(水) 14:36:34
フォントをラスタライズするAPIって無いですか?
文字列とパラメータ入れたら、ビットマップ配列が得られるような。

859 名前:デフォルトの名無しさん :2005/08/31(水) 14:43:41
>>858
そのままズバリのAPIはなかったと思う

CreateDIBSectionでHBITMAP作って、
それを関連付けたDCに文字列描画したら、
それと同じようなことが出来るんでない?

860 名前:デフォルトの名無しさん :2005/08/31(水) 14:43:47
>>858
GetGlyphOutline()
単純に、メモリDCに書けばいいという気もするが。


861 名前:859 :2005/08/31(水) 14:45:15
ぐは、そんなのあったのか、撃つ出し脳

862 名前:デフォルトの名無しさん :2005/08/31(水) 14:48:14
>>858
そんぐらい作りなよ。

863 名前:デフォルトの名無しさん :2005/08/31(水) 14:54:41
答えの出た後にその頭の悪いレスは無いだろう

864 名前:858 :2005/08/31(水) 15:01:02
早速のご回答ありがとうございます。
そうか、DC使えばできるのか。
DCの実体というか、画素配列にダイレクトにタッチしたことないから
すっかり意識の外でした。

>>859
おお、なるほど

>>860
そうですね

>>862
そうします。

865 名前:858 :2005/08/31(水) 15:17:59

げふ、見落としていた
GetGlyphOutline()か、
>>860ありがとう


866 名前:デフォルトの名無しさん :2005/08/31(水) 17:02:07
インターネットのオプション ダイアログを開きたいんですが、APIはありますでしょうか?
C# のコードから開きたいのですが…

867 名前:デフォルトの名無しさん :2005/08/31(水) 17:15:54
ShellExecuteでinetcpl.cplとかじゃダメか?w

868 名前:866 :2005/08/31(水) 17:42:03
ありがとうございます。目的のことができました>>867

869 名前:828 :2005/08/31(水) 19:37:48
>>829
ご返答まことにありがとうございます。
そうですかぁ、WordObjectLibraryから検知するのは
難しいんですかぁ。

ならば、質問を変更させていただき、

Wordで未確定文字があるかないかを検知可能な手段は
ないでしょうか・・・??

なんていかがでしょうか。
僕もいろいろググってるんですけど、なかなか有益な情報に
たどり着けないで降ります。
よろしくお願いします。

870 名前:デフォルトの名無しさん :2005/08/31(水) 19:45:48
でもマルチポストは止めないんだな。

871 名前:デフォルトの名無しさん :2005/08/31(水) 20:42:42
telnetでtelnet先のプログラムを実行して
telnetを切断しても常駐させるにはどのようにしたらよいですか?
win2000 → win2000

872 名前:デフォルトの名無しさん :2005/08/31(水) 20:46:15
マルチポストが何か関係あるのか?
非難するにも論点を間違えてると大だらずにしか見えんけ

873 名前:デフォルトの名無しさん :2005/08/31(水) 20:58:18
マルチポストするような奴はカエレってことだろ

874 名前:828 :2005/08/31(水) 21:07:08
ふらっとC#掲示板へも同じ内容で投稿させていただいてます。

正直、どっちに投稿すればいいのかわからないんです。
すみません。

875 名前:デフォルトの名無しさん :2005/08/31(水) 21:11:06
ダブルフォールトで確定だな
やっぱり大だらずか・・・

876 名前:デフォルトの名無しさん :2005/08/31(水) 21:33:51
質問以外に食いつくだけのヤツはカエレ

>>871
win同士じゃ無理かと

877 名前:デフォルトの名無しさん :2005/08/31(水) 21:37:48
モードレスダイアログって呼出し元と同一スレッドっていう認識でOK?

878 名前:デフォルトの名無しさん :2005/08/31(水) 21:40:10
は?

879 名前:デフォルトの名無しさん :2005/08/31(水) 21:52:39
>>877
OK
ノンプリエンプティブの範疇で論じることができる

880 名前:デフォルトの名無しさん :2005/08/31(水) 21:54:02
ダイアログボックスのエディットコントロールに入力した文字列
を親ウィンドウで受け取りたいのですが、どうすればいいんでしょうか。

EndDialog()では、int型しか返り値にできないみたいなんですが。

881 名前:デフォルトの名無しさん :2005/08/31(水) 21:57:32
>>880
EndDialogより前にSendMessage()やその他何らかの方法で親ウィンドウへ文字列を送ればいい。
あるいはアトム化すればEndDialog()で返すこともできるね。一般的な方法ではないだろうけど。

882 名前:828 :2005/08/31(水) 22:07:32
this.AddOwnedForm(CViewWindow.Opener());
CViewWindow.Opener().Show();

883 名前:デフォルトの名無しさん :2005/08/31(水) 22:36:14
>>881
親ウィンドウのハンドルが取得できなくて困っています。
DialogBox()で指定してGetParent(ダイアログのハンドル)とやっても
失敗してしまいます。

884 名前:デフォルトの名無しさん :2005/08/31(水) 22:37:26
>>882
誤爆か?

885 名前:デフォルトの名無しさん :2005/08/31(水) 22:40:10
>>880
変数に入れたらアカンの?

886 名前:880 :2005/08/31(水) 22:46:21
>>881
自己解決できました。
GetWindow()をつかったらうまくいきました。

887 名前:877 :2005/08/31(水) 23:23:25
>>879
了解致しました。ありがとうございました!

888 名前:デフォルトの名無しさん :2005/08/31(水) 23:56:20
>>830
「Ctrl+Alt+Delを押せ」のダイアログはwinlogonが勝手に出してるわけじゃなくて、
WlxDisplaySASNoticeを呼び出してGINAに処理させている。
当然これはCtrl+Alt+Delを押す「前」に呼ばれるから、そこでダイアログを表示して
カードの挿入を検出したらWlxSasNotifyを呼ぶようにすればCtrl+Alt+Delを押さなくても
先に進める。もっと詳しくはこの記事でも読め
http://msdn.microsoft.com/msdnmag/issues/05/05/SecurityBriefs/

889 名前:デフォルトの名無しさん :2005/09/01(木) 04:32:38
ディスパッチの意義がよくわかりません。
某IT用語辞典によれば、リソースを割り当ててその優先順位がなんとら・・で
ああだからコンソールアプリはディスパッチが必要なかったのか程度しか理解できません。

誰か俺でもわかるようにお願いしますorz

890 名前:デフォルトの名無しさん :2005/09/01(木) 04:43:36
Dispatch自体はわりと一般名詞なんでどのDispatchについて聞かれてるのやら?

891 名前:デフォルトの名無しさん :2005/09/01(木) 11:38:14
マルチスレッドなプログラミングで、かつ、フックプロシージャを
複数インストールする場合(ローカルフック)、フックハンドルの
保存の仕方で良い定石みたいなのがあるんでしょうか?

普通にstatic変数で保存すると結構な数になってしまうもので…

892 名前:デフォルトの名無しさん :2005/09/01(木) 15:36:36
>>ALL
馬鹿にしないでください。それでわかるくらいなら質問しません。


893 名前:デフォルトの名無しさん :2005/09/01(木) 18:31:55
>>892
説明が下手でごめんなさいっ!

894 名前:デフォルトの名無しさん :2005/09/01(木) 18:33:26
ディスパッチま〜やの冒険

895 名前:デフォルトの名無しさん :2005/09/01(木) 19:25:38
メッセージのプロシージャへのディスパッチの事を自分的になり理解してきました・・・
いわゆるスレッドを作るときの関数指定と同じ事なんですね。

浅学ってのは無知と実感しますた('A`)..

896 名前:デフォルトの名無しさん :2005/09/01(木) 19:26:10
なんだ自分的になりって('A;:..:..

897 名前:デフォルトの名無しさん :2005/09/01(木) 20:10:31
いやむしろ俺は「浅学ってのは無知」に突っ込みたい。
そりゃそうだろと

898 名前:デフォルトの名無しさん :2005/09/01(木) 22:51:54
普通は浅学。
深学するのは、オタクだけ。

899 名前:デフォルトの名無しさん :2005/09/01(木) 22:53:08
ごめんワルカッタヨ
浅学は無知→浅学は罪と書きたかったんだorz

900 名前:デフォルトの名無しさん :2005/09/01(木) 23:34:00
>>891
SetProp

901 名前:デフォルトの名無しさん :2005/09/02(金) 01:33:36
またフックか・・・

902 名前:891 :2005/09/02(金) 14:34:32
自己解決。スレッド・ローカル・ストレージで解決できそう。

903 名前:デフォルトの名無しさん :2005/09/02(金) 18:07:22
初心者質問スマタ
WindowsXP
C言語
BCC+BCCDeveloperでやっております。

char DataA[50];
char *DataB=(char *)malloc(50);

という二つのバッファを用意して

ReadFile()の第二引数に指定すると、DataBでは上手くファイルの内容を格納できるのですが
DataAではReadFile();関数は失敗し、GerLastError()でのエラーメッセージは
「メモリロケーションへのアクセスが無効です」となります。

この違いはなんなのでしょうか。よろしくお願いします

904 名前:デフォルトの名無しさん :2005/09/02(金) 18:14:31
休止状態からの復帰時にプログラムを実行させたいです。
常駐することなしにこれを実現したいのですが、どのようにしたらいいでしょうか。
よろしくお願いします。

905 名前:デフォルトの名無しさん :2005/09/02(金) 18:37:01
>>903
ソース出せ。&DataAとかやってたらヌッコロス。

>>904
やれやれだぜ。アビバへ行け。

906 名前:デフォルトの名無しさん :2005/09/02(金) 18:37:48
>>903
よくわからんが、↓の関係じゃねーの?
>読み書き操作用のバッファのアドレス(メモリ内のアドレス)を、ボリュームのセクタサイズの整数倍に整列(セクタ整列)させなければなりません。

907 名前:デフォルトの名無しさん :2005/09/02(金) 18:41:56
>>906
ReadFileにそんな必要無い

908 名前:904 :2005/09/02(金) 18:45:07
>>905
浴び馬レベルでしたかorz すみません。
ただ、休止状態からの復帰なので、スタートアップやレジストリなどに書いても駄目でした。
何かヒントください(クレクレですみません)

909 名前:デフォルトの名無しさん :2005/09/02(金) 18:51:13
なにも常駐させずに、というのは無理だろ。


910 名前:デフォルトの名無しさん :2005/09/02(金) 18:56:39
>>904
不可能。

911 名前:デフォルトの名無しさん :2005/09/02(金) 19:07:58
>>907
そういわれてもMSDNにはそう書いてあるが

912 名前:デフォルトの名無しさん :2005/09/02(金) 19:09:45
>>911
プ

913 名前:デフォルトの名無しさん :2005/09/02(金) 19:12:30
ペ

914 名前:デフォルトの名無しさん :2005/09/02(金) 19:12:59
>>904
PBT_APMRESUMESUSPENDメッセージかな?

The PBT_APMRESUMESUSPEND event is broadcast as a notification
that the system has resumed operation after being suspended.
A window receives this event through the WM_POWERBROADCAST
message. The wParam and lParam parameters are set as described following.

繰り返すけど、常駐プログラムなしに検出するのは不可能。
ただ、レジュームを検出する常駐プログラム自体はメモリ、CPU使用率の面で羽のように軽くすることはいくらでもできる。
検出する以外なにもしないプログラムをかけばいいだけ。
レジュームイベントを検出したら、何らかの方法で実行したいプログラムを外部から動的に呼び出す。
呼び出す手法は、
簡単なのではShellExecuteでexeファイルをキック。
あるいはDllで実装したのを呼び出す。
COMを使ってコンポーネントとして実装したのを呼び出す。など


915 名前:デフォルトの名無しさん :2005/09/02(金) 19:13:01
ポ

916 名前:デフォルトの名無しさん :2005/09/02(金) 19:16:47
>>911
>FILE_FLAG_NO_BUFFERING フラグを指定してファイルを開いた後、
>そのファイルの作業を行う場合、アプリケーションは次の各要件を満たさなければなりません。

まぁ、質問者がこのフラグを指定しちゃってる可能性もゼロじゃないけどさ・・・

917 名前:>>903 :2005/09/02(金) 19:28:37
>>905,>>906,>>907

ありがとうございます。色々試していました。が、やはりできません。
FILE_FLAG_NO_BUFFERINGは指定していないです。

char DataA[32000];

hFile=CreateFile(
"a.txt",//ハンドルを得るファイル名
GENERIC_READ,//読み取りアクセス
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);

ReadFile(
hFile,//内容を読み取るファイルのハンドル
DataA,//読み込んだ内容を格納するバッファ
32000,//読み込むバイト数
&readsize,//読み込んだバイト数を格納する
NULL
)

という感じです、遅れてすいません

918 名前:デフォルトの名無しさん :2005/09/02(金) 19:30:29
>>916
すまない、見落としてた・・・

919 名前:デフォルトの名無しさん :2005/09/02(金) 19:36:35
>>917
あ、わかった。
char DataA[32000];  
         ↑これが原因。
スタックメモリにはこんなにたくさん確保できないんでしょう。

ヒープにしなきゃだめ。



920 名前:デフォルトの名無しさん :2005/09/02(金) 19:38:19
追記。
ためしに、
char DataA[32000];
for (int i=0;i < 32000;i++)
DataA[i] = 0;
てやってみ。
アクセスエラーでるから。

921 名前:デフォルトの名無しさん :2005/09/02(金) 19:39:25
高々32KB弱でダメかなぁ……

>>917
処で、readsizeの宣言はどうなっている?
#いや、念の為だ。

922 名前:920 :2005/09/02(金) 19:43:44
すまん。やっぱ違うな。
確かに32kぐらいではアクセスエラー起きんわな。

すまん。

923 名前:デフォルトの名無しさん :2005/09/02(金) 19:48:10
俺の環境では65536でも平気だが。
普通にスタックメモリから65536ぐらい取ってるぞ。
スタックから取れば手動で開放する必要ないし宣言した量以上入れない限りバグも起きにくい。

924 名前:デフォルトの名無しさん :2005/09/02(金) 19:54:31
>>921
DWORDか、unsigned long以外で宣言しててもコンパイルでエラーが出るはずだが

>>922
デフォルトだと1Mだな、スタックは
ただ、>>917がスタックサイズを変えてなければ、だが

925 名前:デフォルトの名無しさん :2005/09/02(金) 19:56:27
ちょっとこの情報だけでは特定できんな。
なにかの拍子にDataAのスタックが壊れてるとか。
実はリビルドしたら直ってました、とかいうオチとか。
どうせwhileループかなんかで囲ってるんだろうけど
適切なループ処理ができてないとか。
いろいろあるからな。


926 名前:デフォルトの名無しさん :2005/09/02(金) 20:04:08
>>903
関数丸ごとUP

927 名前:電車男903 :2005/09/02(金) 21:08:55
おまいら・・みんなありがとう

じゃなくて本当にすいませんでした・・
わかりました。。

失敗していたときは
第三引数で指定した値より小さいバッファを渡していました。。

最初のmallocで確保か、配列として定義か〜〜
という時点でどちらもバッファのサイズが小さかったのですが
mallocの時はReadFileが失敗しない事が原因でした。

すいませんでした!
しばらく沈没してますです。。

928 名前:デフォルトの名無しさん :2005/09/02(金) 21:46:29
沈没しなくていいから解決した喜びを味わいつつ今夜のオナヌーのおかずを探しとけ

929 名前:電車男903 :2005/09/02(金) 22:00:07
は・・はひ、隊長・・

930 名前:デフォルトの名無しさん :2005/09/02(金) 22:05:38
なんか脱力感だけが残るな。

931 名前:デフォルトの名無しさん :2005/09/02(金) 22:56:52
マウスポインタを2つに増やしたいんだけぢ、無理だよね?

932 名前:デフォルトの名無しさん :2005/09/02(金) 22:57:39
うん

933 名前:デフォルトの名無しさん :2005/09/02(金) 22:57:46
>>931
お前なんで俺が痔だって知ってるんだよ

934 名前:デフォルトの名無しさん :2005/09/02(金) 23:01:06
>>931
ちょっと違うがこんなスレもある
http://pc8.2ch.net/test/read.cgi/win/1051007557/

935 名前:デフォルトの名無しさん :2005/09/03(土) 00:10:56
>>934
おおすごい。.NET2005でXP専用か。
VC5では作れないのかな。

936 名前:デフォルトの名無しさん :2005/09/03(土) 07:49:58
http://www.vector.co.jp/soft/winnt/util/se376172.html

937 名前:デフォルトの名無しさん :2005/09/03(土) 11:08:35
8月初めあたりから、WTLを勉強してたんですが、
MFCよりWTLのほうが明らかに使いやすいですね。

いまだにMFCで開発とかされてるけど、やっぱMFCの人気はあるのかな?

938 名前:デフォルトの名無しさん :2005/09/03(土) 11:36:22
WTLってやっぱりマイナーだからな
会社なんかが使ってたら使わざるを得ないし
漏れ1人だけWTL使うぜ!って訳にはいかない罠

939 名前:デフォルトの名無しさん :2005/09/03(土) 11:53:09
会社なんかじゃトラブルへの対応や新入社員への教育やらを考えると新しいものを習熟するより
古くても熟知してるものを使う方がコストが低く済むだろうからねぇ。

940 名前:デフォルトの名無しさん :2005/09/03(土) 11:56:29
でも、MFC好きな人っているのかな?

941 名前:デフォルトの名無しさん :2005/09/03(土) 11:58:55
そりゃまあいるだろう。好みは人それぞれだし。
俺は駄目だが。

942 名前:デフォルトの名無しさん :2005/09/03(土) 12:10:26
WTLじゃイベント追加する時とかにIDEの自動追加機能とか使えないからなあ

943 名前:デフォルトの名無しさん :2005/09/03(土) 12:50:03
IDEが勝手にC++のコードを生成するのって、なんかなじめないんだけど。

944 名前:デフォルトの名無しさん :2005/09/03(土) 13:09:10
なぜapiと全然関係ない話をする。
>>1を読め

945 名前:デフォルトの名無しさん :2005/09/03(土) 13:25:10
>>944
空気嫁

946 名前:デフォルトの名無しさん :2005/09/03(土) 13:47:34
空気なんか知るか!

947 名前:デフォルトの名無しさん :2005/09/03(土) 14:16:56
XPでタスクトレイのスピーカークリックしたときに出るボリューム調整の小さいウィンドウを
トグル表示するAPIありませんか?どうも見つからなくて

948 名前:947 :2005/09/03(土) 14:30:23
自己解決しました。
sndvol32.exe /r or /t or /sという表記をみつけ、/tで実行したらマウス位置にポップアップされました

949 名前:デフォルトの名無しさん :2005/09/03(土) 14:41:44
32bppのアルファチャネル付きアイコンについての質問です。
LoadImageなどで、得たHICONから、
8bppのアルファチャネルのデータを得る方法ってありますか?
GetIconInfoのICONINFO.hbmMaskだと、1/0の2階調しか得られません。

LoadImageしたHICONをDrawIconすると、256階調アルファで
レンダリングされるので、内部では8bppのアルファを持ってると思うんですが。

950 名前:Omoti :2005/09/03(土) 15:33:35
しつもん
本屋でwin32apiの本を立ち読みしてたら(カネは払わない)
「win32apiを使うとメモリ操作ができるよ」
って書いてあったのですが、メモリ操作ができると、
どういう楽しいことができるの?


951 名前:デフォルトの名無しさん :2005/09/03(土) 15:36:37
一般保護例外で死ねる。

952 名前:Omoti :2005/09/03(土) 15:41:38
              >>951
ほかには?


953 名前:デフォルトの名無しさん :2005/09/03(土) 15:43:09
ゲームのステータス書き換えてウハウハ

954 名前:デフォルトの名無しさん :2005/09/03(土) 15:46:13
ソフトのクラックができる

955 名前:デフォルトの名無しさん :2005/09/03(土) 15:58:32
バッファオーバーフロー脆弱性が実装できる。

956 名前:デフォルトの名無しさん :2005/09/03(土) 15:59:36
>>955
流行の"脆弱性"を実装できるのか。
それはいいな。

957 名前:デフォルトの名無しさん :2005/09/03(土) 16:05:51
>>949
hbmColorのほうにアルファ情報込みで入ってる
hbmMaskは非対応のディスプレイドライバでも
2階調の透過はできるようにするために入ってるだけ。

958 名前:デフォルトの名無しさん :2005/09/03(土) 17:43:38
>>936
同時に両方動かせないやん

959 名前:Omoti :2005/09/03(土) 19:52:08
しつもん
win32apiって本はあんまり出てないけど
MSDNとかって言うのを見れば全部のってるの?
それは、無料でみれるの?


960 名前:デフォルトの名無しさん :2005/09/03(土) 19:53:27
英語版MSDNなら大体全部載ってる

961 名前:Omoti :2005/09/03(土) 19:53:33
 ちなみにVB4はもってます
これでみれるの?


962 名前:Omoti :2005/09/03(土) 19:54:33
いま、shellexcuteっていう関数について調べてるんです


963 名前:デフォルトの名無しさん :2005/09/03(土) 19:55:32
大文字と小文字の区別をちゃんとしようぜ

964 名前:Omoti :2005/09/03(土) 19:55:48
わかったeが抜けてるから検索できないんだ
shellexecute


965 名前:Omoti :2005/09/03(土) 19:56:21
>>963
どして?
case sensitvieなの?


966 名前:デフォルトの名無しさん :2005/09/03(土) 19:57:26
Omotiウザス

967 名前:デフォルトの名無しさん :2005/09/03(土) 19:58:11
>>965
大文字小文字区別しないような言語でもAPI関数だけは必ず区別されるから

968 名前:デフォルトの名無しさん :2005/09/03(土) 21:04:11
>>966

// for Jane View
設定(&O);
設定(&O);
機能.あぼーん.NGName << "Omoti";

969 名前:デフォルトの名無しさん :2005/09/04(日) 13:52:56
NG登録完了

970 名前:デフォルトの名無しさん :2005/09/04(日) 13:57:07
Omotiちゃんは女の子だからやさしくしてやれよ。

971 名前:デフォルトの名無しさん :2005/09/04(日) 14:04:15
いい歳してこんな稚拙なコミュニケーション能力しか持ってない人間がこの世にいるなんて思いたくない

972 名前:デフォルトの名無しさん :2005/09/04(日) 14:18:50
>>971
人類全体を相手に何故そんな夢を持つ?

973 名前:デフォルトの名無しさん :2005/09/04(日) 14:24:06
何故人類全体とか夢とかスケールを大きくするw

974 名前:デフォルトの名無しさん :2005/09/04(日) 17:27:53
>>973
>>971の文章が幼稚で変な使い回しするからだろう

975 名前:デフォルトの名無しさん :2005/09/04(日) 17:30:11
>>973
「…人間がこの世に…」となればその規模だろ。

976 名前:デフォルトの名無しさん :2005/09/04(日) 19:24:58
どぉでもいい

977 名前:デフォルトの名無しさん :2005/09/04(日) 20:07:48
↑照れ隠し



それより次スレは?

978 名前:デフォルトの名無しさん :2005/09/04(日) 21:32:48
どぉでもいい

979 名前:デフォルトの名無しさん :2005/09/04(日) 21:49:38
むしろどぉでもいい

980 名前:デフォルトの名無しさん :2005/09/04(日) 22:17:34
次スレ(゚听)イラネ

981 名前:デフォルトの名無しさん :2005/09/04(日) 22:47:04
>>980
おいおい、Win32APIのスレは需要大だろ。
むしろ、C/C++関連のスレで一番需要があると思うね。
C/C++の言語仕様に関する質問は解説書が充実しているのでわざわざ質問するのもあほらしいが、
Win32APIは決定版というべき解説書がないし、独特なクセもあるし。


982 名前:デフォルトの名無しさん :2005/09/04(日) 22:48:24
>>981
スレ立てよろ

983 名前:デフォルトの名無しさん :2005/09/04(日) 22:51:38
>C/C++関連のスレ

984 名前:デフォルトの名無しさん :2005/09/04(日) 22:57:51
ここってC/C++関連のスレなのか

985 名前:デフォルトの名無しさん :2005/09/04(日) 22:59:27
まぁ、世の中にはC/C++、Win32API、VisualC、MFCの区別がつかない奴もいるわけで。

986 名前:デフォルトの名無しさん :2005/09/04(日) 23:04:43
こんばんわ、質問があります。
環境C++6.0 windowsxp
今、ハードディスクやCDの容量を調べるプログラムを組んでいます。
GetDiskFreeSpaceExをつかって、ハードディスクの使用量と空き容量は入手できたのですが、
焼かれたCDの空き容量が0になってしまうのです。マイコンピュータのCDドライブのところから、
プロパティを開くと空き容量が表示されるのですが、プログラムでそれを入手することが出来ないのです。
基本的な質問ですが、知恵をお貸し願えませんでしょうか?
よろしくお願いします。

987 名前:デフォルトの名無しさん :2005/09/04(日) 23:09:34
マルチ氏ね

988 名前:デフォルトの名無しさん :2005/09/04(日) 23:17:32
>>986
belutionとかにも書いてるだろヴォケ

989 名前:デフォルトの名無しさん :2005/09/04(日) 23:57:42
>>986
それどんなCD-Rなんだ?

たまたま手元に、埋まってないpacket write(B's CLIP)のCD-Rがあったんで
試してみたが、普通に空き容量取れたよ@Win2k
session closeしたCD-Rだと空き容量ゼロ。当然だけどな。
普通のCD-ROMも当然空き容量ゼロ。

ULARGE_INTEGERの使い方とか間違えてHI DWORDしか読んでないとかいう
つまんない落ちじゃないよね?

990 名前:デフォルトの名無しさん :2005/09/05(月) 00:16:31
質問です。
アニメーションなどの画像の重なりによるちらつきをなくしたいのですが、
ウィンドウを固定にし、画面外に重ねる画像を表示して
画面内にコピーするというアイデアを思いついたのです。
しかしBitBltのSRCCOPYだと写ってはいないけれど、
画面外の領域を指定すると、そのまま画面外(ウィンドウの外)
のものがコピーされてしまいます。
多少強引で構わないので、擬似的にダブルバッファリングのような
ことはできませんか?

991 名前:デフォルトの名無しさん :2005/09/05(月) 00:20:54
>>990
ヒント: メモリDC

992 名前:デフォルトの名無しさん :2005/09/05(月) 00:40:37
なんで擬似的?

993 名前:Omoti :2005/09/05(月) 01:11:26
Win32API質問箱 Build35
http://pc8.2ch.net/test/read.cgi/tech/1125850096/

つぎすれ

994 名前:デフォルトの名無しさん :2005/09/05(月) 01:39:11
Omoti 透明化完了

995 名前:デフォルトの名無しさん :2005/09/05(月) 01:49:57
つぎすれよりネクスレの方良くない?

996 名前:デフォルトの名無しさん :2005/09/05(月) 01:53:48
とりあえず梅

997 名前:デフォルトの名無しさん :2005/09/05(月) 02:18:44
UME

998 名前:デフォルトの名無しさん :2005/09/05(月) 02:19:42
0x3E6

999 名前:デフォルトの名無しさん :2005/09/05(月) 02:20:13
0x3E7

1000 名前:デフォルトの名無しさん :2005/09/05(月) 02:21:24
0x3E8だったら秀丸超えるテキストエディタ作る


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.