2016-03-27 20 views
0

LogonUI.exeを強制終了するコマンドを起動したプログラムがLogonUI.exeを再実行する直前に閉じられたと考えました。C++ LogonUI.exeを終了してウィンドウを前面に持ってきます

しかし、実際にはプログラムが閉じられていないことがわかりましたが、バックグラウンドに移行しているようです(タスクリストのおかげでプログラムがまだ実行中であることが分かりました)

ここでは、この問題を表示しようとするいくつかのコード(画面上のログ上で実行される)

は、誰もがこの問題を解決することができれば、それは素晴らしいだろうです。ありがとう。

#include <iostream> 
#include <stdlib.h> 
#include <windows.h> 
using namespace std; 


void Menu(char &sel_menu); 
void KillLogonUI(); 
void Tasklist(); 

void Menu(char &sel_menu) 
{ 
    cout << "Type 1 to kill LogonUI.exe" << endl; 
    cout << "Type 2 to list running processes" << endl; 
    cout << endl << "Type 0 to exit" << endl; 
    cout << endl << endl << ">> "; cin >> sel_menu; 
} 

void KillLogonUI() 
{ 
    HWND hWnd = GetForegroundWindow(); 

    system("Taskkill /F /IM LogonUI.exe"); 
    SetForegroundWindow(hWnd); 
} 

void Tasklist() 
{ 
    system("Tasklist"); 
} 

int main() 
{ 
    char sel_menu; 

    do 
    { 
     Menu(sel_menu); 

     switch (sel_menu) 
     { 
      case '1': KillLogonUI(); break; 
      case '2': Tasklist(); break; 

      default: 
       if (sel_menu != '0') 
        { 
         cout << endl << "Wrong input"; 
         Sleep(1000); 
        } 
     } 
    } while(sel_menu != '0'); 

    return 0; 
} 
+0

* "誰でもこの問題を解決できたら" * - あなたは説明していない、* "this" *は何ですか。 – IInspectable

+0

これは私がlogonuiを殺したと私はログアウトしていたと私は私のユーザープロファイルが削除されたと思うと思った。私のユーザ名はログイン画面になかったからです。私はコンピュータを再起動し、私のユーザープロフィールを見て安心しました。役立たず、一度私に起こったことだけです。 –

答えて

0

正確に何をしたいですか?ログオン時にアプリケーションを実行しますか? 1.システムサービスを作成します(ユーザーレベルのサービスではありません)。 2.サービスを実行するときに、アプリケーションをwinlogonセッション"WinSta0\Winlogon"で実行します。ここでは、適切なセキュリティトークンを使用して異なるセッションでアプリケーションを実行する方法を説明します。 http://www.codeproject.com/Articles/35773/Subverting-Vista-UAC-in-Both-and-bit-Archite#_articleTop 3.アプリケーションプロパティを「最上位」に設定します。 4.サービスを閉じるときに、アプリケーションを閉じます。 このロジックは7からウィンドウ10、サーバー12,16までのすべてのウィンドウで動作します - すべてでテストされています。

キリングLogonIUは悪い考えです。隠す必要がある場合は、ウィンドウを非表示にするか、フルスクリーンでプログラムを実行してください。

関連する問題