- ベストアンサー
LockWindowStation & UnlockWindowStation
WindowsのAPIでUser32.dllにある関数ですが、公開されていない関数に LockWindowStationとUnlockWindowStationがあります。 検索してみたのですが、関数の存在はわかるものの 関数の仕様がわかりません。 機能・引数・戻り値と、どなたか、わかる方いらっしゃいますか? 宜しく御願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> LockWindowStation Locks switching desktops. Only the logon application is allowed to call this function. デスクトップの切り替えをロックします。 この機能はログオン アプリケーションでのみ実行が許可されます。 WindowStation については、CreateWindowStation API などを参考にしてください。
その他の回答 (2)
- mikaemi
- ベストアンサー率50% (33/65)
質問者さんは、仕様(とくに機能)を知りたいのですよね? 実際に何を目的とした関数なのか、とか。 検索エンジンで見つかるページなどにも、「全ウィンドウのフォーカスがなくなった以外に、何も起こってないように思える」、「常に true を返すだけのスタブじゃないか」だとかありますから^^
補足
返答(回答)ありがとうございます。 そうなんです・・ しかし、それでも、機能が理解し難い・・と それが、気持ちです。 いまいち、機能が理解できません。 例えば、LockWorkStation のように、特定のウインドウをロックして しまい、パスワードを要求するのか・・とか、 違うにしても、UnlockWindowStation があるのだから、どう言う関数なのか・・ 利用できるなら、使って・・と思ったものですから。
- RAPTsong
- ベストアンサー率42% (74/175)
本当に探しましたか? 確かに日本語では存在しないようですが、型を知りたいだけなら 別に C++ 以外の言語での説明でもいいはずです。 BOOL WINAPI LockWindowStation( HWINSTA winSta ); BOOL WINAPI UnlockWindowStation( HWINSTA winSta ); // WinXPsp2/VC++6sp6 にて "ok" が出ることを確認 #include "stdafx.h" #include <windows.h> #include <tchar.h> typedef BOOL ( WINAPI* LPFNLockWindowStation )( HWINSTA winSta ); typedef BOOL ( WINAPI* LPFNUnlockWindowStation )( HWINSTA winSta ); int main() { HMODULE hLib = ::LoadLibrary( _T( "user32.dll" ) ); if ( hLib ) { LPFNLockWindowStation lpfnLockWindowStation = ( LPFNLockWindowStation )::GetProcAddress( hLib, "LockWindowStation" ); LPFNUnlockWindowStation lpfnUnlockWindowStation = ( LPFNUnlockWindowStation )::GetProcAddress( hLib, "UnlockWindowStation" ); if ( lpfnLockWindowStation != NULL && lpfnUnlockWindowStation != NULL ) { ::MessageBox( 0, _T( "ok" ), 0, 0 ); } else { ::MessageBox( 0, _T( "ng" ), 0, 0 ); } ::FreeLibrary( hLib ); } else { ::MessageBox( 0, _T( "DLL not found" ), 0, 0 ); } return 0; }
補足
返答(回答)、感謝します。 はい 探しました。 そして、指摘のあるように、例も見つけました。 言語が何であろうと・・と言われても、WindowStation 自体の 定義であったり、引数の「HWINSTA winSta」がわかりませんでした。 指摘されているURL(google)にしても、既に検索してみましたが、 私の勉強不足、英語の理解力の不足もあるでしょうが、 USER32.DLL内での関数の羅列であったり、ライブラリ番号であったりして、 機能や引数の説明が見当たらなかったことで、質問しました。 ここに書かれたコードにしても、呼び出しや利用法ですよね? それは、既に理解していることです。 ちなみに、Platform SDK に HWINSTA についてであったり、 WindowStation 関係の関数がありますが、LockWindowStation や UnlockWindowStation の記述は無く、書かれていることが、理解 できなかったこともあっての質問でした。 まあ、SDKすら理解できないのなら、使うな・・と言われそうですが・・ しかし、質問の関数については、書かれていません。
お礼
遅くなりました。 ありがとう御座います。