新工具完成了!!!上班時間只能用指定的部分程式了。唉,有時太過火了~~
我的工具終於完成了!!!以下是全部程式碼,在vs2005+xp環境下執行通過。以前我發貼問的問題,也解決了,感謝網友們的幫助,特別是raozhiven(朗屹) 的提示,感謝!以前我總是認為程式碼不對,其實是正確的,主要是居然不知道改了登錄檔,並不是立即生效的。後來,在網上找資料,發現了,不用重啟立即生效的方法。以下是改良過的程式程式碼。歡迎大家來研討。更感謝能提出更好方法的朋友。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Runtime.InteropServices;
namespace restrict
{
public partial class Form1 : Form
{
int delflag = 1;
IntPtr result1;
// SendMessageTimeout tools
[Flags]
public enum SendMessageTimeoutFlags : uint
{
SMTO_NORMAL = 0x0000,
SMTO_BLOCK = 0x0001,
SMTO_ABORTIFHUNG = 0x0002,
SMTO_NOTIMEOUTIFNOTHUNG = 0x0008
}
const int WM_SETTINGCHANGE = 0x001A;
const int HWND_BROADCAST = 0xffff;
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr SendMessageTimeout(
IntPtr windowHandle,
uint Msg,
IntPtr wParam,
IntPtr lParam,
SendMessageTimeoutFlags flags,
uint timeout,
out IntPtr result
);
//*******以下為版權資訊*******
//作者:花純春
//時間:2006年11月26日
//請聯絡我的部落格:http://ike.126.com
//描述:此程式通過修改登錄檔,實現在工作時間只允許指定程式的執行。在中午休息時間,自動取消限制,可以自由使用。
//歡迎轉載和使用,但請保持版權資訊的完整!
//*******以上為版權資訊*******
public Form1()
{
InitializeComponent();
RegistryKey hkcu = Registry.CurrentUser;
RegistryKey cu = hkcu.CreateSubKey(@"Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/RestrictRun");
RegistryKey cu1 = hkcu.CreateSubKey(@"SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/Policies/Explorer");
RegistryKey cu2 = hkcu.OpenSubKey(@"SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/RUN", true);
string aa = Application.ExecutablePath;
cu2.SetValue("RestrictFun", aa);
cu1.SetValue("RestrictRun", 1);
cu.SetValue("1", "notepad.exe");
cu.SetValue("2", "gpedit.msc");
cu.SetValue("3", "regedit.exe");
cu.SetValue("4", "tmshell.exe");
cu.SetValue("5", "kav.exe");
cu.SetValue("6", "TTraveler.exe");
cu.SetValue("7", "iexplore.exe");
cu.SetValue("8", "mmc.exe");
cu.SetValue("9", "restrict.exe");
hkcu.Close();
// Tell all open programs that this change occurred.
SendMessageTimeout(
new IntPtr(HWND_BROADCAST),
WM_SETTINGCHANGE,
IntPtr.Zero,
IntPtr.Zero,
SendMessageTimeoutFlags.SMTO_NORMAL,
1000,
out result1);
}
public void delres()//刪除相關注冊表項,清除限制
{
RegistryKey hkcu = Registry.CurrentUser;
RegistryKey cu = hkcu.OpenSubKey(@"SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/Policies/Explorer", true);
cu.DeleteValue("RestrictRun");
cu.DeleteSubKey("RestrictRun");
hkcu.Close();
// Tell all open programs that this change occurred.
SendMessageTimeout(
new IntPtr(HWND_BROADCAST),
WM_SETTINGCHANGE,
IntPtr.Zero,
IntPtr.Zero,
SendMessageTimeoutFlags.SMTO_NORMAL,
1000,
out result1);
delflag = 0;
}
private void timer1_Tick(object sender, EventArgs e)
{
if ((DateTime.Now.Hour >= 12)&&(DateTime.Now.Hour <= 14)&&(delflag==1)) //中午12點到下午2點之間,取消限制
{
delres();
}
}
}
}
學習在於愛好!
相關文章
- Mybatis實現指定時間db只讀方案MyBatis
- 白嫖 11 個超火的前端必備線上工具,終於有時間上班摸魚了前端
- 上班時間做什麼
- 我命由我不由天!如何只讓程式執行指定時間?
- 計算時間,指定時間的多少個月後
- CSS 帶有時間日期的新聞列表CSS
- 帶有星期的時間實時顯示程式碼
- js獲取指定時間日期和當前時間日期的相差多少時間JS
- 永不過時的程式設計工具程式設計
- 判斷一個時間是否處於指定的時間段內程式碼例項
- restore、recover到指定時間REST
- java新特性處理時間工具類Java
- 程式設計師最多能用多少時間來程式設計?程式設計師
- js實現指定時間倒數計時JS
- 倒數計時指定時間頁面跳轉程式碼例項
- 部分JDK版本的釋出時間JDK
- 你在程式設計的時候,浪費了多少時間?程式設計
- 你在程式設計的時候浪費了多少時間?程式設計
- 雷軍做程式設計師時寫的部落格,太牛了。。程式設計師
- 雷軍做程式設計師時寫的部落格,太牛了!程式設計師
- Bash: sleep - 延遲指定時間
- js獲取距離指定時間已經過去多久程式碼例項JS
- rman刪除指定時間的歸檔
- 分享自己做的一個指定程式以及執行緒長時間cpu監控的工具執行緒
- 用VB“破解”有時間限制的程式 (轉)
- 透過sql語句建立表時指定表空間的語法SQL
- 微信小程式navigator點選時有灰色部分微信小程式
- 最近有好長一段時間沒有敲程式碼了...
- 一臺mac究竟能用多長時間Mac
- rman恢復到指定時間點
- weblogic + ejb + jbuiler 每次修改程式碼都要重新編譯,太浪費時間了,又沒有結決辦法?WebUI編譯
- 誰說程式猿沒有時間健身?
- 新的Oracle時間資訊特性Oracle
- 大表建索引,rman備份等耗費的時間通常比較長?還有多長時間才能執行完?索引
- java時間工具類Java
- Java 8 的日期時間工具Java
- 時間相關的工具類
- 讓頁面在指定時間之後跳轉程式碼