問題タブ [winlogon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Windows XP で C# を使用してログオン画面にウィンドウを表示する
Windows XPのログオン画面に表示できるプロセスを起動するサービスをC#で作成しようとしています。
C++ でこれを行っているコードをいくつか見つけました。C++ コードは、STARTUPINFO.lpDesktop を「WinSta0\WinLogon」に設定して別のプロセスを作成するサービス用です。作成されたプロセスは、Windows のログオン画面に表示されます。System.Diagnostic.Process クラスを使用して、C# で新しいプロセスの「デスクトップ」を指定する方法が見つからないようです。
C#でこれを行う方法を知っている人はいますか?
winapi - ユーザーは Microsoft Vista でサービスを直接操作できますか?
Microsoft の Web サイト ( msdn.microsoft.com/en-us/library/ms683502(VS.85).aspxを参照) から、「Windows Vista 以降、サービスはユーザーと直接やり取りできません」と明確に記載されています。
そこで、「psexec -s cmd.exe」を使用してこれをテストすることにしました。私が知る限り、「psexec」はコマンド プロンプトを開くためにサービスを作成します。言うまでもなく、それは機能しました。次に、「EnumWinSta GUI」を psexec と組み合わせて使用して、winlogon デスクトップに切り替えることにしました。驚いたことに、このデスクトップで "cmd.exe" を起動することさえできました。これは、サービスから作成された新しいプロセスをインタラクティブにできるということですか?
それとも、psexec がなんらかの黒魔術を行っているためでしょうか? もしそうなら、それはどのようにしますか?
Vista および XP で、サービスから winlogon デスクトップ オブジェクトに全画面ウィンドウを表示しようとしています。
windows - Windows で失敗したログオン試行を監視するにはどうすればよいですか?
Windows XP で失敗したログオン試行をオンザフライで監視する信頼できる方法はありますか? (まあ、Vista も同様です)。失敗したログオン試行をプログラムで監視する必要がありますが、これは現在、MSGINA からログイン ダイアログをサブクラス化することにより、単純なGINA スタブで実現されています。
ただし、チェーンに他の GINA がある場合、私の現在のソリューションは防水ではありません。
だから私の質問は:私が信頼できる(他の)APIはありますか?それとも、GINA 代替 DLL 全体をロールアウトする必要がありますか?
installation - GINA で Wix を使用してアンインストールすると、ログインに失敗する
問題: 代替 GINA をアンインストールした後、WIX 3.0 インストーラーを使用すると、ログオンした直後にログオフされます。
Windows XP 用の代替ログイン プロセス (GINA) があります。システム ディレクトリ C:\windows\system32\NewGina.dll とレジストリ エントリ (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\GinaDLL=NewGina.dll) に置かれた単一のファイルで構成されており、手動で問題はありません。インストールして実行し、手動でアンインストールして通常どおりログインします。
VS2008 で Microsoft インストーラー パッケージを使用してインストーラーを作成することもできますが、インストール、ログイン、アンインストール、ログインは正常に機能します。
私が抱えている問題は、Wix インストーラーを使用し、インストール、ログイン、アンインストール、およびログインすると、ログイン直後にログアウトされることです。すぐにログアウトした後、リモート regedit に接続してレジストリをダンプすることができました。Wix インストーラーが何をしていたかを発見することを期待して、レジストリーの前後で比較を試みましたが、アクションと変更 (約 35,000) を分析するのは少し広範囲でした。レジストリ行 (上記) はなくなり、Windows は元の msgina.dll に戻るはずです。
プロジェクトの残りの部分は Wix Installer を使用しているので、それを使用したいと考えています。
これを機能させ、自動ログオフを回避する方法についてのアイデアはありますか?
ありがとう
APB
私のWixスクリプトは次のようになります
winapi - Windows LogonUser 関数は古いパスワードで動作しますか?
LogonUser 関数 ( http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx ) を使用してユーザーを認証しています。ただし、ユーザーがパスワードを変更すると (つまり、Password1 から Password2 に)、両方のパスワードが機能することがわかりました。ただし、現在のパスワードのみを使用できるようにしたいと思います。これをそのように機能させるために設定する必要があるものはありますか?
次のコード スニペットを使用しています。
nt_id は USER@USERDOMAIN.SOMETHING.COM の形式で入力されます
の代わりに 3 がありLOGON32_PROVIDER_WINNT50
ます。宣言されていない識別子 を示すコンパイル エラーが発生するためですLOGON32_PROVIDER_WINNT50
(これは症状でしょうか?) が、3 として定義されていることはわかっています。
ありがとう -ピート
windows - エクスプローラーを実行しないように変更された Windows システムで、起動時にアプリケーションを実行するにはどうすればよいですか?
まとめ
explorer.exe を起動しない変更された Windows ボックスで、Windows の起動時に GUI アプリケーションを実行するにはどうすればよいですか。
- Programs -> Startup フォルダにリンクを配置しても実行されません。
- 私のアプリケーションはグラフィカルなので、アプリケーションを変更してサービスとして実行することはできません。
バックグラウンド
のコンテンツを生成する専用の PC で実行する必要があるアプリケーションがありますDigital Signage
。これは、大規模な組織でプラズマ / LCD 画面に表示されるアナウンスやさまざまなスライドショー コンテンツを生成するタイプのソフトウェアです。
私はそのようなコンテンツ管理ソフトウェアのいくつかの異なるベンダーとの経験があり、それらはすべて基本的にWindowsアプリケーションを構築し、ウィンドウから何かを取り除いて、あらゆる種類のポップアップが表示されないようにします。私が扱っているベンダーの1つ現在、Windowsはexplorer.exe
起動しないように変更されています。
プログラムの起動時の実行機能は、スタートアップ フォルダ内のリンクを利用します。私が見つけたのはexplorer.exe
、私のアプリケーションも実行されていないということです。
コンピュータが起動すると、プログラム可能なコンテンツの表示を開始するデジタル サイネージ アプリケーションの実行モードで自動的に起動します。CTRL-を押してプログラムを強制終了ALTし、. 約 1 秒後... アプリケーションの開始が表示されます。DELETEexplorer.exe
taskmanager
だから、私の質問は - どうすれば起動しない Windows ボックスにアプリケーションをロードできますかexplorer.exe
? Runフォルダーでレジストリキーを使用すると、エクスプローラーがなくても機能するかどうか知っている人はいますか? 起動時にプログラムを実行する他の方法はありますか?
編集:受け入れられた回答の実装に関する注意事項
受け入れられた回答にアプローチを実装しました。これを実装するのに役立つリンクを次に示します。レジストリ キーのアプローチを試したことはありません。誰かがexplorer.exe
ロードなしで実行されることを確認した場合は、コメントを残してください。
c# - Windowsのログオン画面からホットキーをフックします
キーボードをフックするプログラムを作成し、ホットキーを押すとドアが開きました(コンピューターのCOM1シリアルポートに接続されています)。
コンピューターをロックするまで(winkey + L)、これは正常に機能します。ログオン画面から同じホットキーでドアを開けられるようにしたい。
Windows XPとC#を使用しています。
それ、どうやったら出来るの?
ありがとう。
c++ - Vista /Windows7のクレデンシャルマネージャー
ログインプロセス中にクレデンシャルをキャプチャするクレデンシャルマネージャーをVC++に実装しています。XP / Vista / Windows732ビット環境でうまく機能します。しかし、64ビットでは動作しません。何か案が ?助けてくれてありがとう
c# - 対話型ログオン セッションを作成する
Microsoft の放棄されたSuper Fast User Switcher (ダウンロード) に似たユーティリティを作成しようとしています。これにより、ようこそ画面を経由せずにユーザーをすばやく切り替えることができます。
文書化されていないWinStationConnectW
API を (とともにWTSEnumerateSessions
) 使用して機能する実装がありますが、既にログインしているユーザーにしか切り替えることができません。
ログインしていないユーザーに切り替えることができるように、ログイン セッションを作成するにはどうすればよいですか?
XP をサポートする必要があるだけですが、Vista / Seven で作業できればよいのですが。(私の現在のコードはすでに行っています)
Super Fast User Switcher がそれを行うため、これが可能であることを私は知っています。(ただし、それを行うにはWindowsサービスが必要です)
私は C# を書いていますが、どんな答えでも C# に翻訳できます。