1. 强制使用IE。
private
void
EnsureBrowser()
... {
//ToDo:Check browser header
const string TOKEN = "MSIE";
string agent = Request.Headers["User-Agent"];
if (agent.IndexOf(TOKEN) == -1)
...{
ServerMessageHelper.Show(GetPublicResourceString("ErrorNoPermission"));
}
}
... {
//ToDo:Check browser header
const string TOKEN = "MSIE";
string agent = Request.Headers["User-Agent"];
if (agent.IndexOf(TOKEN) == -1)
...{
ServerMessageHelper.Show(GetPublicResourceString("ErrorNoPermission"));
}
}
以上方法不能区分IE与MyIE
this
.EnsureBrowser
=
function
()
... {
if(mainGuarder != null)
...{
var browserName = "";
browserName = mainGuarder.GetProcessName();
if (mainGuarder.GetProcessName().toLowerCase() != "iexplore.exe")...{
location.href("ErrorPage.aspx");
return false;
}
}
return true;
}
... {
if(mainGuarder != null)
...{
var browserName = "";
browserName = mainGuarder.GetProcessName();
if (mainGuarder.GetProcessName().toLowerCase() != "iexplore.exe")...{
location.href("ErrorPage.aspx");
return false;
}
}
return true;
}
2. 关闭当前窗口且不提示的方法:
<object id="WebBrowser" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" ></object>
window.document.all.WebBrowser.ExecWB(45,1)
3. 确保全屏
//
确保当前是全屏窗口
this .EnsureFullScreen = function ()
... {
if (document.readyState == "complete")
...{
var scrollWidth = 30;
var scrollHeight = 30;
if ((parseInt(document.body.clientHeight) + scrollHeight) < parseInt(screen.height))...{
location.href("startup.aspx");
return false;
}
if ((parseInt(document.body.clientWidth) + scrollWidth) < parseInt(screen.width))...{
location.href("startup.aspx");
return false;
}
}
return true;
}
this .EnsureFullScreen = function ()
... {
if (document.readyState == "complete")
...{
var scrollWidth = 30;
var scrollHeight = 30;
if ((parseInt(document.body.clientHeight) + scrollHeight) < parseInt(screen.height))...{
location.href("startup.aspx");
return false;
}
if ((parseInt(document.body.clientWidth) + scrollWidth) < parseInt(screen.width))...{
location.href("startup.aspx");
return false;
}
}
return true;
}
4. 给表格加格线的方法
rules="all" border="1" bordercolor="#555555" style="border-style: Solid;border-collapse: collapse;"
5. 实现弹出对话框又不影响脚本继续执行,用
//
开启打印等待窗口
function PrintWaiting()
{
subWin = ShowDialog( " PrintWaiting.htm " , " 328px " , " 160px " , "" , true , true );
}
function PrintWaiting()
{
subWin = ShowDialog( " PrintWaiting.htm " , " 328px " , " 160px " , "" , true , true );
}
6. 最小化窗口API
/*
最小化当前窗口
*/
STDMETHODIMP DefendCenter::MinimizeWin()
{
HWND hWnd = GetActiveWindow();
SendMessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE, 0 );
// GetTcpTable
return S_OK;
}
STDMETHODIMP DefendCenter::MinimizeWin()
{
HWND hWnd = GetActiveWindow();
SendMessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE, 0 );
// GetTcpTable
return S_OK;
}
7. 键盘鼠标钩子
//
Set KeyboardHook
LRESULT CALLBACK MLowLevelKeyboardProc( int nCode, WPARAM wParam, LPARAM lParam)
{
BOOL fEatKeystroke = FALSE;
fEatKeystroke = TRUE; // 屏蔽所有键盘按键,直接设为TRUE
return (fEatKeystroke ? TRUE : CallNextHookEx( hkb, nCode, wParam, lParam ));
}
LRESULT CALLBACK MMouseProc( int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0 )
{
return CallNextHookEx(MousehHook, nCode, wParam, lParam);
}
if (HC_ACTION == nCode)
{
if (wParam == WM_RBUTTONDOWN) // Disable mouse RButton Down or Up
{
return true ;
}
if (wParam == WM_RBUTTONUP)
{
return true ;
}
}
return CallNextHookEx(MousehHook, nCode, wParam, lParam);
}
/* 开启 */
MousehHook = SetWindowsHookEx(WH_MOUSE,MMouseProc,hinstExe, 0 );
hkb = SetWindowsHookEx(WH_KEYBOARD_LL,MLowLevelKeyboardProc, hinstExe, 0 );
/* 关闭 */
UnhookWindowsHookEx(hkb);
UnhookWindowsHookEx(MousehHook);
LRESULT CALLBACK MLowLevelKeyboardProc( int nCode, WPARAM wParam, LPARAM lParam)
{
BOOL fEatKeystroke = FALSE;
fEatKeystroke = TRUE; // 屏蔽所有键盘按键,直接设为TRUE
return (fEatKeystroke ? TRUE : CallNextHookEx( hkb, nCode, wParam, lParam ));
}
LRESULT CALLBACK MMouseProc( int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode < 0 )
{
return CallNextHookEx(MousehHook, nCode, wParam, lParam);
}
if (HC_ACTION == nCode)
{
if (wParam == WM_RBUTTONDOWN) // Disable mouse RButton Down or Up
{
return true ;
}
if (wParam == WM_RBUTTONUP)
{
return true ;
}
}
return CallNextHookEx(MousehHook, nCode, wParam, lParam);
}
/* 开启 */
MousehHook = SetWindowsHookEx(WH_MOUSE,MMouseProc,hinstExe, 0 );
hkb = SetWindowsHookEx(WH_KEYBOARD_LL,MLowLevelKeyboardProc, hinstExe, 0 );
/* 关闭 */
UnhookWindowsHookEx(hkb);
UnhookWindowsHookEx(MousehHook);
8. 得到当前进程名称
取得进程信息辅助类:http://download1.csdn.net/down3/20070618/18093155767.rar
STDMETHODIMP DefendCenter::GetProcessName(BSTR
*
name)
{
CProcessIterator itp;
DWORD pid = GetCurrentProcessId();
TCHAR modname[_MAX_PATH];
CProcessModuleIterator itm(pid);
HMODULE hModule = itm.First(); // .EXE
if (hModule) {
GetModuleBaseName(itm.GetProcessHandle(),
hModule, modname, _MAX_PATH);
}
_bstr_t bstrText = _bstr_t(modname);
* name = bstrText.copy();
return S_OK;
}
{
CProcessIterator itp;
DWORD pid = GetCurrentProcessId();
TCHAR modname[_MAX_PATH];
CProcessModuleIterator itm(pid);
HMODULE hModule = itm.First(); // .EXE
if (hModule) {
GetModuleBaseName(itm.GetProcessHandle(),
hModule, modname, _MAX_PATH);
}
_bstr_t bstrText = _bstr_t(modname);
* name = bstrText.copy();
return S_OK;
}