-2
私は1つのタイマーが動作しているWindowsアプリケーションを作成しました。PCがロックされているときにWindowsアプリケーションでタイマーを実行するには?
どのように私はこれを解決するのです。私のPCは、タイマーが作動し、エラーを与えていないロックされているとき、私のPCは、ロックされていない場合は、このタイマーは正常に動作しますか?
コード:::
private void GetDesktopWindow()
{
try
{
//Creating a new Bitmap object
using (captureBitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format16bppRgb555))
{
//Creating a New Graphics Object
using (captureGraphics = Graphics.FromImage(captureBitmap))
{
//Copying Image from The Screen
captureGraphics.CopyFromScreen(Screen.AllScreens[0].Bounds.Left, Screen.AllScreens[0].Bounds.Top, 0, 0, Screen.AllScreens[0].Bounds.Size);
//Setting Resolution to image
captureBitmap.SetResolution(72, 72);
//setting Image size
Size Size = new Size();
Size.Height = 800;
Size.Width = 800;
Image Image = ResizeImage((Image)captureBitmap, Size);
ImageModel ImageModel = new ImageModel();
ImageModel.ByteImage = ImageToByte(Image);
ImageModel.ImageName = DateTime.Now.ToString("yyyyMMddHHmmss");
ImageModel.KeyStockCount = 1;
ImageModel.ClickCount = 1;
ImageModel.ScreenCaptureDate = DateTime.Now;
ImageModel.Userid = UsrId;
byte[] t = SerializeToByteArray(ImageModel);
//Check Directory Exist or not if not then create directory
if (!Directory.Exists(LocalStorageFolder + "\\" + UsrId + "\\" + ImageModel.ScreenCaptureDate.ToString("yyyyMMdd") + "\\"))
{
Directory.CreateDirectory(LocalStorageFolder + "\\" + UsrId + "\\" + ImageModel.ScreenCaptureDate.ToString("yyyyMMdd") + "\\");
}
File.WriteAllBytes(LocalStorageFolder + "\\" + UsrId + "\\" + ImageModel.ScreenCaptureDate.ToString("yyyyMMdd") + "\\" + ImageModel.ImageName + ".bat", t);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
StackTrace :::
at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation)
at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize)
at CaptureScreen.CaptureScreen.GetDesktopWindow() in D:\Ankit.J.Bhanderi\RND\CaptureScreen\CaptureScreen\CaptureScreen\CaptureScreen.cs:line 251
あなたのコンピュータがロックされないようにすることができます(google c-sharp disable screensaver)。タスクスケジューラを使用して昇格された権限で実行できる可能性があります。コードを表示し、コードとの関連でエラーを具体的に記述すると、より効果的に対応できる場合があります。 –
例外とスタックトレースを記録/出力します。 –
時間は正しく実行されていますが、GetDesktopWindowでエラーが表示されます。 – baj9032