2012-12-06 29 views
11

Olası Çoğalt:
Lock Windows workstation programmatically in C#Windows iş istasyonunu program aracılığıyla nasıl kilitlerim?

Şu anda iş istasyonu kilitler bir işlevi gerektiren bir görsel stüdyo pencere form uygulaması üzerinde çalışıyorum. Fonksiyon çağrıldığında bir kilit (Windows + L) yapmak için user32.dll dosyasını nasıl kullanabilirim?

+0

Ben kaynaklı bir çözüm istiyor yayınlanmıştır dupe diyorsunuz, ama olmayan yönetilen çözüm soruya kendisi :) –

+0

çoğaltmak değil gönderilmiş olup, olası çift çözüm sunmuyor! –

+0

cevabı bu soru başlık ve kullanılan terminoloji yanıltıcı – spender

cevap

28

Kendim denemedim ama düzenlemek Process.Start(@"C:\WINDOWS\system32\rundll32.exe", "user32.dll,LockWorkStation");

google

üzerine this bulundu: Ben denedim ve çalışıyor!

edit2: İşte bir dış işlemi başlamıyor user32.dll kullanarak solution bu.

using System.Runtime.InteropServices;

böyle bir yöntem bildirmek:

[DllImport("user32.dll")] 
public static extern bool LockWorkStation(); 

ve sonra LockWorkStation(); arayın.

Voilà

+0

Evet ve yinelenen soru Dahi çözüm sağlamıyor! –

+0

+1. User32.dll kullanımı yapar, iş istasyonu kilitler, kontrol eder. Evet, yardımcı görünüyor. Bununla birlikte, bunun için bir alt işlem başlatılması öngörülemeyen durumlara sahip olabilir. Kim bilir. =) –

+0

Psst. ** ** "yinelenen" sorudan bunu kopyaladıysanız lütfen orijinal yazarın özelliğini kullanın. =) –

0
using System.Runtime.InteropServices; 


[DllImport("user32.dll")] 
public static extern int ExitWindowsEx(int uFlags, int dwReserved); 

sadece

ExitWindowsEx(0, 0); 
+0

Bu gerektiği şekilde iş istasyonu kilitlenmez, kullanıcı oturumunu kapatmak için görünür. – Iridium

+0

Bir bakıma bu, iş istasyonunu kilitler ve kullanıcıyı kullanıcı seçim ekranına geri gönderir. Olumsuz olan, kullanıcının tüm çalışmalarını kaybedecek olmasıdır. – TheLegendaryCopyCoder

İlgili konular