[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 07/09 05:34 / Filesize : 231 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build59



1 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 22:39:56 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで


29 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 15:53:52 ]
とりあえずデバッガで追いかけてみたりしたかしら?

30 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 16:45:25 ]
>>29
すいません、試していませんでした。今gdbでやってみたら
Program received signal SIGSEGV, Segmentation fault.
0x5ab7d465 in ImageList_AddMasked () from C:\WINDOWS\system32\comctl32.dll
と出ました。ImageList_AddMaskedを調べるとビットマップのイメージマスク関連のようですがそこまでしかわかりませんでした。
WindowProcにブレークポイントを設定し、hToolBarの内容を見てみると0xffffffffでしたがやはりこれが問題でしょうか?
いろいろ考え試してみましたがどうにもわかりません。ご教授願います。

31 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 16:50:02 ]
>hToolBarの内容を見てみると0xffffffffでした

INVALID_HANDLE_VALUEだろそれw
作成失敗してるw

32 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 16:58:29 ]
ちがう。
CreateToolbarExの失敗時の戻り値はNULL。

でも0xFFFFFFFFが有効なハンドルって事はないから・・・。

33 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:12:18 ]
おそらくImageList_AddMaskedの中で
無効なビットマップハンドル使ってるんだろうな

試してないがGetWindowLongに失敗してない?
WM_CREATEってまだウィンドウ作成されてないからhWndって無効なハンドルの気が
で、無効ハンドルのせいでインスタンスハンドル取れない→イメージリソースが取れない。と

試しにGetModuleHandle(NULL);にしてみろ

34 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:15:20 ]
WM_CREATEでなら、
CREATEPARAMS const* pcs = (CREATEPARAMS const*)lParam;として、
pcs->hInstanceとすればインスタンスハンドルが取れる。

35 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:15:51 ]
CREATESTRUCTだったorz

36 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:31:30 ]
>>28です。
>>33-35
すべて試しましたが結果は同じでした。
hInstのインスタンスハンドルは$2=0x7c953288で取れているようです。
また、hwndのハンドルも取れています。

コードをすべてどこかにアップロードしてしまったほうが解決が早いでしょうか…?

37 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:35:01 ]
結局CreateToolbarExって成功してるの?



38 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:37:40 ]
>>WM_CREATEってまだウィンドウ作成されてないからhWndって無効なハンドルの気が

どんだけw

39 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 17:49:40 ]
>>1


40 名前:19 mailto:sage [2007/11/12(月) 18:01:53 ]
>>20-23
PrintWindowでいきたいと思います。
ありがとうございました。

41 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:07:46 ]
>>36
hInstが0x7c953288ってどう考えてもおかしいだろ

つーかこの程度のバグを解決できないスキルならMinGWなんて使わずVC使えよ

42 名前:デフォルトの名無しさん [2007/11/12(月) 18:23:58 ]
ビットマップでボタン作れますか?
マウスがボタンに重なったら、ボタンに使われているビットマップを変更する等の処理もしたいのですが、

43 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:16:21 ]
>>42
ボタンにビットマップ張ったらいいんでは?

44 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:27:00 ]
どうやって張るんですかね?
本等にもあまり載っていなくて苦難してます。

45 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:31:40 ]
質問です。

プログラムを動かそうと考えているマシンにはプリント用のネットワーク出力ポートがいくつかありますが、
EnumPortsを呼ぶとPORT_INFO_2構造体にはそれぞれ
 pMonitorName : TCPMON.DLL
 pDescription : Standard TCP/IP Port
 fPortType : 11
という値が入ります。
これらについて個々のIPアドレスを知る方法はありますでしょうか?

46 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:00:15 ]
>>44
普通に

ボタン ビットマップ

でググれば出てくるが

47 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:13:40 ]
>>46
ググッてきます!!!



48 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:43:43 ]
>>28です。
resource.rcに#include "resource.h"の記述をしないとなぜかウィンドウ自体は表示されます。
ですがビットマップイメージがボタンに張られていない状態です。
当たり前といえばそうなのですが、この情報から何かわかることはあるでしょうか?
たびたびすいません、ご教授願います。
>>37
プログラムが異常終了してしまうので成功していません。
>>41
おかしいのですか…どのようにおかしいのかわかりますでしょうか?

ソースをすべてアップロードしてみました。たびたびすいません、どこが悪いのかご教授願います。
>>28に書いたソースよりいくらかいじったので違う点がありますが基本的に同じです。
www.dotup.org/uploda/www.dotup.org2842.zip.html

49 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:44:20 ]
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆【一番クリックした国が優勝】参加者求ム!☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 イギリス人天才プログラマが運営する前代未聞の無料ブラウザゲーム、clickclickclick.com/
 ただひたすらクリックし、国別の総クリック数を世界中で競い合う!
 究極にバカバカしくそして意味がなく、ひたすら時間の無駄でなんの得にもならない、だがそれが(・∀・)イイ!

 ライバルはハンガリー、そして台湾!! GAME2から参戦し、現在GAME27開催中!
 VIPで発祥し現在2ch全土から結集したクリック兵達で日本チームは戦っている!
 意味のない事に全力を傾ける、それが2ちゃんねるクオリティ!!

 独自のクリックツール開発競争も熱く、各国のプログラマが全力で優秀な兵器開発をしている!!
 日本の技術力の高さを世界に見せつけてやろうぜ!
 プログラマ、Flashゲーム製作者、動画職人、AA職人、絵師、DJ、wiki編集blog編集者、データ分析者etcも募集中!
 ツール放置参加もできるので、PCのスペックに自身のある奴、CPUに空きのある奴、時間が余ってる奴もぜひ参加してくれ!

 本スレッド
 【簡単多重】一番クリックした国が優勝【8砲門】
 wwwww.2ch.net/test/read.cgi/news4vip/1194741194/l50
 ※落ちているときはここから1発検索
 www.clickjapan.jp/find2ch.php

 日本チームの有志によるまとめサイトポータル
 www.clickjapan.jp/ 
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

50 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:32:12 ]
>>28
> リソースコンパイラはwindres2.17.50です。
これは、リソースに日本語が入っているとダメだったような…
ひょっとして、そっち関係とか。

51 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:32:28 ]
>>48
だからVC使えと(ry
デバッガだけでもVCを使う価値は十分にあると思うが、どうしてもMinGWを使わなければならない理由でもあるのか?

52 名前:デフォルトの名無しさん [2007/11/12(月) 22:37:23 ]
WindowsはZIPを解凍するAPIを標準で持っているんでしょうか?
また、あるとしたらどのバージョンからなんでしょうか。

53 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:41:39 ]
ねーよ

54 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:47:42 ]
>>48
ビットマップが24ビットだからじゃね?
256色以下にしてみ

55 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:50:18 ]
パソコンの画面をキャプチャーしてメモリ内に格納したいのですが、
GetDCでデスクトップのデバイスコンテキストを取得し、
GetPixelで1ピクセルずつ取得する方法より、効率の良い方法は何かあるでしょうか?

56 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:52:53 ]
DIB

57 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:13:33 ]
>>52-53
ZIPフォルダを実現する関係上、ZIPファイルはシェルフォルダとして読み書きできる。
Me/XPから標準搭載だが、98ではPlus!に付いてきたはず。
また、2000でもMeからDLLを持ってくれば使える。

ようするにWindowsのバージョンなんて当てにしないで、
実際に試してみて成功すればOKという方針で行け。



58 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:18:59 ]
>>55
BitBlt

59 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:19:51 ]
>>57
OS再インスコしたら真っ先にregsvr32 /u zipfldr.dllなんだが
そんな不確かな物に頼るぐらいなら普通にunzip32やzlibでも使えばいい

60 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 23:20:33 ]
>>55
1ピクセルごとじゃなくて普通にBitBltじゃだめなのか

61 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 09:29:25 ]
>>59
自分で機能切ってるヤツまで知ったこっちゃねーだろ・・・

62 名前:デフォルトの名無しさん [2007/11/13(火) 09:32:21 ]
delphiのぐだすれで質問したらすれ違いと言われたのでここに来ました。
WindowsXPのアクティベーションとかで使用しているようなハードウェアハッシュを
自前のプログラムでも使用したいのですが
どうやったら取得できますでしょうか。
すれ違いでしたら誘導願います。

63 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 10:50:43 ]
>>61
そもそもなぜ圧縮フォルダをプログラムから直接利用する必要があるのかサッパリなんだが
外部DLL不要、世界最小のZIP解凍ソフト!とか作りたいのかねぇ

64 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 12:04:19 ]
>>28です。
>>54
本当にありがとうございます。解決しました。

65 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 14:08:15 ]
>>63
お前、とことん読解力ないな

66 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 14:21:45 ]
( ´,_ゝ`)プッ

67 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 14:42:28 ]
言語問わずWin32APIが呼び出せるインタプリタ環境ってありますか?



68 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 14:49:17 ]
Perl

69 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 15:23:49 ]
>>68
ありがとうございます、調べてみます

70 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 16:22:08 ]
PowerShell

71 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 17:05:04 ]
>>70
こんなものもあるんですね、不勉強ですみません

72 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:34:14 ]
APIとか一寸試したい時に、そういうのが欲しいとちょっと思わなくもないが、
結局Cや、GUI絡みでもMFC使えば簡単に試せるからなあ。

73 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 01:04:06 ]
>>56
ありがとうございます。調べて見ます
>>60
>>58
取得した画面をファイルに出力したりネットワークで送信したりしたいのですが、
BitBltだと、出来ませんでした


74 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 01:08:18 ]
そういう場合はGetDIBitsで検索

75 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 06:05:51 ]
>>72
環境勝手にいじれない(非開発の)PCではAPI使うのにofficeのVBAしかなかったりするんだよ…

MSはPowerShell を優先度の高い更新に含めやがれ
あるいは会社のPCをすべて2008にしてください

76 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 06:23:03 ]
.NETは結局XPに標準搭載されなかったんだっけか

77 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 10:13:29 ]
標準搭載しなくていいよ



78 名前:デフォルトの名無しさん [2007/11/14(水) 11:30:13 ]
ファイルだの日時をコピーもしくは変更するAPIを教えてください

79 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:09:27 ]
SetFileTime
GetFileTime

80 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 12:09:41 ]
日本語でおk

81 名前:78 [2007/11/14(水) 13:12:30 ]
フォルダでした。
ところでこれってFATでも機能するのでしょうか?


82 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 13:33:53 ]
解説ぐらい読んで来い
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpsysinf/html/_win32_getfiletime.asp

83 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 14:56:30 ]
SendMessageで書き直したいのですが、どのように書き直せばよいのか教えてください。
(VB2005です)↓

'キーコード送信
Dim DownUp As Integer = 0
Dim Down As Integer = 1
Dim Up As Integer = 2
Private Sub KBD(ByVal KEY_CODE As Byte, ByVal 状態 As Integer, ByVal ms As Integer)
Sleep(ms)
If 状態 = 1 Then
Call keybd_event(KEY_CODE, 0, 0, 0)
ElseIf 状態 = 2 Then
Call keybd_event(KEY_CODE, 0, &H2, 0)
ElseIf 状態 = 0 Then
Call keybd_event(KEY_CODE, 0, 0, 0)
Call keybd_event(KEY_CODE, 0, &H2, 0)
Else
End If
End Sub

84 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:09:01 ]
keybd_eventがやってることはSendMessageじゃエミュレートできないと思うんだが

85 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:11:05 ]
場合による

86 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:14:41 ]
キーイベントはポストだろ

87 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:16:27 ]
ポストだとどんな感じですか?



88 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 16:19:42 ]
マニュアル嫁

89 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 17:31:09 ]
ポストはポストでも、マルチポストだろ

90 名前:デフォルトの名無しさん [2007/11/14(水) 21:50:10 ]
いろんな方が質問されている内容ですがうまくいかないので質問させてください。
WS_EX_LAYERED、SetLayeredWindowAttributes、LWA_COLORKEY、IDB_CHRISTALについて
「定義されていない識別子です。」というエラーでコンパイルできません。

ソースは以下のサイトを見ながら書いています。
www.kumei.ne.jp/c_lang/sdk4/sdk_346.htm

環境はVC++6.0、OSはWindowsXP SP2です。
やってみたこと
・ServicePack6 の適用
・Windows Server 2003 SP1 Platform SDK の PSDK-x86.exeをダウンロードしてインストール
 →C:\Program Files\Microsoft Platform SDK\Bin\Orca.Msi を実行
・ソースに#include<WinUser.h> を追記

対処法がありましたら教えていただきたいです。

91 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 21:56:14 ]
VC++のインクルードディレクトリの設定を変えろ。
新しいPlatform SDKのインクルードディレクトリを指すように。

winuser.hは昔も今もwindows.hの中でインクルードされるから、
自分でインクルードを明記する必要はない。

92 名前:デフォルトの名無しさん [2007/11/14(水) 22:33:26 ]
VC++のディレクトリとPlatFormSDKのディレクトリで
階層構造が多少違うようなのですが、、、、


で、適当にやったらインクルードファイルがオープンできませんってなりました・・・。(;つД`)
メニューのツール -> オプション -> ディレクトリ タブ の中の設定を変更したんですが違いました?

93 名前:90=92 mailto:sage [2007/11/14(水) 22:42:22 ]
WS_EX_LAYERED については警告はでなくなりましたが
下記エラーが出ます。インクルードディレクトリの指定がマズイのでしょうか?

error LNK2001: 外部シンボル "__imp__SetLayeredWindowAttributes@16" は未解決です

94 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:43:10 ]
_WIN32_WINNTとかWINVERとかじゃね?

95 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:52:14 ]
>>75
ExcelあるならスクリプトからExecuteExcel4MacroでCALL Win32API

96 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:05:20 ]
>>93
インクルードパス同様、ライブラリパスも設定する必要があるぞ。

97 名前:90=92=93 mailto:sage [2007/11/14(水) 23:05:55 ]
>>94
ソース冒頭で
#define _WIN32_WINNT 0x0500
を指定しています。

WINVERというのが良くわかりませんが
#define WINVER 0x0400
と指定したところではエラーの内容は変わらずでした。



98 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:12:44 ]
>>97
つーかVC6で使えるSDKの最終バージョンって2003年2月ぐらいの奴じゃなかったっけ?
一応2003SDKとかも使えなくも無いがリンクエラー出ることあるからやめといた方がいいと思うぞ

99 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:16:43 ]
>>93
ライブラリのパス

100 名前:90=92=93=97 mailto:sage [2007/11/14(水) 23:29:14 ]
できました━━━━(゚∀゚)━━━━!!!!。

ありがとうございました。


101 名前:90=92=93=97=100 mailto:sage [2007/11/14(水) 23:44:52 ]
>>98
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en

これには ”Date Published: 5/2/2005 ”とあるようです。

このSDKはあんまり薦められないってことですか?
今回はこれでないと動かない代物だったので仕方ないですが
必要なければ使わないほうが良いのでしょうか?

102 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:46:11 ]
タスクトレイのアイコン上でマウスホイールで操作したときに処理をすることを
考えているんですが、タスクトレイのアイコン上でマウスホイールを操作しても、
WM_MOUSEWHEELがとんできません。
WM_MOUSEWHEELをフックしても、タスクトレイのどのアイコン上なのか
識別する方法がわかりません。
NOTIFYICONDATAのhWndとかuIDを判別する方法ありませんか?



103 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:46:54 ]
今ならWindowsSDKだけで十分なような気も

104 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:49:38 ]
>>102
状況がよくわからんけど・・・
タスクトレイから通知が来たときのLPARAMを見てみる

105 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:52:04 ]
あ、違うか
どのアイコンか判定したかったらShell_NotifyIconのAPIフックからしないと駄目な気が
通知メッセージはユーザー定義だからフックできんし
WM_MOUSEWHEELは普通にタスクトレイが受け取ってるはず

106 名前:102 mailto:sage [2007/11/15(木) 00:13:14 ]
>>105
レスどうもです。

えとですね。
自分のアプリで登録しているアイコンなんですよ。
タスクトレイのアイコン上で操作したときに、
例えば左クリックならばWM_LBUTTONDOWNは来るんですが、
マウスホイール操作のWM_MOUSEWHEELは来ないんです。

なので、WM_MOUSEWHEELをフックして処理しようかと思ったのですが、
自分のアプリで登録しているタスクトレイのアイコン上であるかどうかの
判別ってどうするんだ?と困っているところなのです。


107 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 01:24:41 ]
>>101
そのページに書いてあるでしょ
>This SDK does not support working with Microsoft Visual C/C++®, 6.0 as support for VC 6.0 has ended.
>The last SDK that will work with VC 6.0 is the February 2003 Edition, you can order a CD on the fulfillment site.

2003年2月版でもXPSP1ぐらいまではサポートしてるので普通に使う分には困らないと思う



108 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:44:07 ]
>>81
NT系ならFATでも使える。まだ9xサポートしてるのか?

109 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 06:19:56 ]
>>95
知らなかった。ちょっと楽になる。サンクスですわ

110 名前:デフォルトの名無しさん [2007/11/15(木) 06:46:39 ]
zipの圧縮、解凍をサポートするapi関数ってある?
Jpegの伸縮のように、外部ライブラリ入れないとダメかな

111 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 08:09:45 ]
なんでXPでzipfldr.dllなんてDLLが追加されたか考えれば分かるだろう

112 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 08:16:37 ]
スレ違いだけど.NETならGZipStreamクラスある

113 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 08:49:12 ]
zip圧縮解凍ライブラリなんてネット上に腐るほどあるだろ
zipfldrを呼び出す方が遥かに面倒だと思うが

114 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 10:05:12 ]
COM使ったことあれば、そう面倒でもないと思うが・・・まぁ人それぞれか

115 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:24:13 ]
zipfldr.dllのCOMインターフェイスって公開されてたっけ?
IShellFolder::GetUIObjectOfでIDropTargetを取得してD&Dをエミュレートして・・・とか考えたけど結構面倒な気が
他に方法あったらおせーて

116 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 11:56:30 ]
rundll32.exe zipfldr.dll,RouteTheCall %zipfile%

これか?ためしてないけど

117 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:05:42 ]
CLSIDFromString("CompressedFolder",&clsid);
CoCreateInstance(clsid,NULL,CLSCTX_ALL,IID_IStorage,(LPVOID*)&pStorage);
pStorage->QueryInterface<IPersistFile>(&pPersistFile);
pPersistFile->Load("zipファイル名",STGM_READWRITE|STGM_SHARE_EXCLUSIVE);

てな感じ、足りないとこは脳内補完よろ
あとはIStorageとIStreamの操作で中身読める。
書き込みは試したことないけど・・・、たぶん似たような手順でいけるとおもふ



118 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:10:27 ]
それって
rundll32.exe unzip32.dll,UnZipCommandLine "%1"
と同レベルな気が

119 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:12:31 ]
リロードしてなかった
>>118>>116へのレス

>CLSIDFromString("CompressedFolder",&clsid);
これって将来的に大丈夫なのかな?
そんなモン気にするなってツッコミは無しで

120 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:21:32 ]
質問です。
SetWindowsHookEx でグローバルフック登録しているのですが、runas 等で別のユーザで起動したウィンドウへのメッセージがフックできないようです。
普通の (同じユーザ) ウィンドウへのメッセージはフックできています。
何か方法はありますか?

121 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:23:56 ]
別ユーザのウィンドウがフック出来たらセキュリティホール以外の何物でもないだろう
ImpersonateLoggedOnUserとか使えばどうにかなるかも知れんが

122 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 12:27:09 ]
自分も昇格する

123 名前:120 mailto:sage [2007/11/15(木) 13:06:13 ]
>>121 そういわれればそうですねぇ。
まあ、今回のは特殊用途なので権限は気にしなくていいのですが・・・
ImpersonateLoggedOnUser 知らなかったので調べます。

124 名前:110 [2007/11/15(木) 15:11:57 ]
c++は使えないから、comとか無しで頼む
普通にapi関数を一本呼び出し(ループでも)で使えないの?

125 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:14:11 ]
無理だっつうの

126 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:15:27 ]
もう自分でdeflate書け

127 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:18:37 ]
>>124
例えCでもCOMは使えるぞ
いったい何を言ってるんだ?



128 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:20:07 ]
>>124
unzip32使え
嫌なら.net使え

いずれにせよスレ違いだからもう来なくていいよ

129 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:20:30 ]
(124は)CでCOMが使えない






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef