青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

啤酒

一個空白者

 

小節

如何實現繁簡體互換?

// j2f.cpp : 簡體(gb)==>繁體==>big5的過程
// 反向轉換是類似的.
// 注意直接從簡體-->big5不能做到一一對應.會有很多?出現,
// 故此需要先轉成繁體.再轉成big5.
// 我感覺這種方法應當和winnt或office里提供的繁簡或字符集互轉是一致的.

#include "stdafx.h"
#include
#include
#include
#include
#include
using namespace std;

void j2f(const string &s)
{
 int n=s.length ();
 int r=LCMapString(
   MAKELCID(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),SORT_CHINESE_PRC),
   LCMAP_TRADITIONAL_CHINESE,
   s.c_str (),s.length (),NULL,0);
 if (!r) cout <<"error :"<
 char *ft=new char[r+1];
 r=LCMapString(
   MAKELCID(MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),SORT_CHINESE_PRC),
   LCMAP_TRADITIONAL_CHINESE,
   s.c_str (),s.length (),ft,r+1);//這個api搞掂簡體轉繁體,下面會打印繁體出來
 if (r) {
  ft[r]=0;
  cout<
  wchar_t *pws=new wchar_t[r+1];
  int r1=MultiByteToWideChar(936,0,ft,r,pws,r+1);
 BOOL f=FALSE;
 r1=WideCharToMultiByte(950,0,pws,r1,ft,r+1,"?",&f);//代碼頁切換搞掂gb->big5
 ft[r1]=0;
 cout<<<"(";
  for (int i=0;i    cout<<"";
   printf("0x%02x ",(BYTE)ft[i]);
  }
 cout<<")"<
 delete [] pws;
 }

 delete []ft;
}

//從標準輸入簡體國標-->big5繁體標準輸出,輸入兩個空行退出
int main(int argc, char* argv[])
{

 for(;;){
  char line[1024];
  cin.getline (line,sizeof(line));
 string s(line);
 if (!cin ||s.length ()==0) break;
 j2f(s);
}
_getch();
return 0;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.首先請參閱其他技術專欄中用VB6.0訪問注冊表,創建
HKEY_LOCAL_MACHINE,\SYSTEM\CurrentControlSet\Services\Eventlog\Eventlog2\Eventlog2鍵,并且寫入EventMessageFile,value為C:\WINNT\Microsoft.NET\Framework\v1.1.4322\EventLogMessages.dll

2.在C#.net使用以下代碼寫日志
//輸出日志的CLASS
using System;
using System.Diagnostics;
using System.Text;

namespace CorePlus.Framework.Utility
{
?/// <summary>
?/// 寫日志的CLASS
?/// </summary>
?public class LogUtility
?{
? public enum EVENT
? {
?? /// <summary>重大錯誤</summary>
?? EVENT_ERROR,
?? /// <summary>操作失敗</summary>
?? EVENT_FAILUREAUDIT,
?? /// <summary>一般信息</summary>
?? EVENT_INFORMATION,
?? /// <summary>有效的,成功的操作</summary>
?? EVENT_SUCCESSAUDIT,
?? /// <summary>警告</summary>
?? EVENT_WARNING,
? }

? private static TextWriterTraceListener listner = null;

? /// <summary>
? /// 構造函數
? /// </summary>
? public LogUtility () {}

? /// <param name="loginID">登錄ID</param>
? /// <param name="screenID">畫面ID</param>
? /// <param name="level">警告級別</param>
? /// <param name="message">日志信息</param>
? public static void Logging (
?? string loginID,
?? string screenID,
?? EVENT level,
?? string message )
? {
?? // 變量定義
?? StringBuilder? outputMessage = null; // 輸出的信息
?? string??? targetLevelString = null;
?? EventLogEntryType Eventtype = new EventLogEntryType();

?? switch (level)
?? {
??? case EVENT.EVENT_ERROR:
???? Eventtype = EventLogEntryType.Error;
???? break;

??? case EVENT.EVENT_FAILUREAUDIT:
???? Eventtype = EventLogEntryType.FailureAudit;
???? break;

??? case EVENT.EVENT_INFORMATION:
???? Eventtype = EventLogEntryType.Information;
???? break;

??? case EVENT.EVENT_SUCCESSAUDIT:
???? Eventtype = EventLogEntryType.SuccessAudit;
???? break;

??? case EVENT.EVENT_WARNING:
???? Eventtype = EventLogEntryType.Warning;
???? break;
?? }

?? // 日志信息的拼合
?? outputMessage = MakeMessage( loginID, screenID, targetLevelString, message );

?? // 寫日志
?? Logging( Eventtype, outputMessage.ToString() );
? }

? /// <summary>
? /// 向日志管理器寫日志
? /// </summary>
? /// <param name="level">錯誤級別</param>
? /// <param name="message">輸出的信息</param>
? private static void Logging ( EventLogEntryType level, string message )
? {
?? // 變量定義
?? string? logName? = null; // 日志名
?? string? machineName = null; // 機器名
?? string? sourceName = null; // SourceName
?? EventLog eventLog = null; // EventLog

?? logName? = "Eventlog2";? // 日志名
?? machineName = "."; // 機器名
?? sourceName = "Eventlog2"; // SourceName

?? eventLog = new EventLog( logName, machineName, sourceName );
?? eventLog.WriteEntry( message,level );
?? eventLog = null;
? }

? /// <summary>
? /// 日志最終拼合
? /// </summary>
? /// <param name="loginID">登錄ID</param>
? /// <param name="screenID">畫面ID</param>
? /// <param name="levelString">錯誤級別</param>
? /// <param name="message">日志信息</param>
? /// <returns>輸出的日志信息</returns>
? private static StringBuilder MakeMessage (
?? string loginID,
?? string screenID,
?? string levelString,
?? string message )
? {
?? // 變量定義
?? StringBuilder retMessage = new StringBuilder();

?? retMessage.Append( "【登錄ID】" );
?? retMessage.Append( loginID );
?? retMessage.Append( "\n【畫面ID】" );
?? retMessage.Append( screenID );
?? retMessage.Append( "\n【錯誤級別】" );
?? retMessage.Append( levelString );
?? retMessage.Append( "\n【錯誤信息】\n" );
?? retMessage.Append( message );

?? return retMessage;
??? }
? }
}

// 在FORM中輸出日志
? private void button1_Click(object sender, System.EventArgs e)
? {
?? LogUtility.Logging( "bbbbbb","22222222",LogUtility.EVENT.EVENT_ERROR,"3333333" );
? }

運行完程序后打開日志管理器看看~~~~~~~~~怎么樣?不錯吧,呵呵.

?

?

?


////////////////////////////////////////////////////////////////////////////
1.窗口信息

  MS為我們提供了打開特定桌面和枚舉桌面窗口的函數。
  hDesk=OpenDesktop(lpszDesktop,0,FALSE,DESKTOP_ENUMERATE);
  //打開我們默認的Default桌面;
  EnumDesktopWindows(hDesk,(WNDENUMPROC)EnumWindowProc,0);
  //枚舉打開桌面上的所有窗口,由回調函數實現。
  BOOL __stdcall EnumWindowProc(HWND, LPARAM);
  //在回調函數中,我們可以獲得窗口的標題和相關進程,線程信息;
  GetWindowText(hWnd,szWindowText,dwMaxCount);
  GetWindowThreadProcessId(hWnd,&dwPID);

  2.設備驅動器信息(服務和設備驅動器差不多,在此不做重復)

  設備驅動信息有服務控制管理器(SCM)來管理的,我要打開服務控制管理器,并枚舉所有的設備驅動器。
  OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
  //以所有權限打開服務控制管理器;
  EnumServicesStatus(schManager,dwDeviceType,dwDeviceState,
        EnumStatus,dwBufSize,&dwBytesNeeded,
       &dwDevicesReturned,&dwResumeHandle))
  //枚舉所有設備的當前狀態;
  CloseServiceHandle(schManager);
  //記住,在結束訪問后要關閉服務句柄;
  OpenService(schManager,szDeviceName,SERVICE_ALL_ACCESS);
  //打開特定的設備驅動器;
  QueryServiceConfig(schDevice,lpDeviceConfig,
          ?? 1024*8,&dwBytesNeeded);
  //查詢驅動器的服務配置信息;
  QueryServiceStatus(schDevice,&DeviceStatus);
  //查詢設備驅動器的當前狀態;
  QueryServiceConfig2(schDevice,SERVICE_CONFIG_DESCRIPTION,
  (LPBYTE)lpDeviceDescription,8*1024,&dwBytesNeeded)
  //查詢設備的描述信息;
  StartService(schDevice,0,NULL);
  //啟動設備;
  ControlService(schDevice,SERVICE_CONTROL_STOP,&DeviceStatus);
  //停止設備;
  DeleteService(schDevice);
  //刪除設備;

  3.磁盤信息

  我們希望獲得系統所有磁盤的信息,包括軟盤,硬盤,光盤等等;
  GetLogicalDriveStrings(dwBufferLength,lpBuffer);
  //獲得邏輯設備的信息;
  GetVolumeInformation(lpRootPathName,lpVolumeNameBuffer,
   dwVolumeNameSize,&dwVolumeSerialNumber,
   &dwMaximumComponentLength,&dwFileSystemFlags,
      lpFileSystemNameBuffer,dwFileSystemNameSize);
  //獲得磁盤卷信息,包括卷名稱和格式類型;
  GetDiskFreeSpaceEx(lpRootPathName,&FreeBytesAvailable,
        ? &TotalNumberOfBytes,&TotalNumberOfFreeBytes);
  //探測磁盤的空間使用情況;

  4.環境變量

  我們可以從注冊表中獲得環境塊的信息:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment,當然要使用注冊表的函數。
  RegOpenKeyEx(HKEY_LOCAL_MACHINE,RegKey,0,KEY_QUERY_VALUE,&hKey);
  //打開注冊表的鍵;
  RegEnumValue(hKey,dwIndex,EnvironVariable,
         &dwVariableLength,NULL,NULL,NULL,NULL);
  //查詢我們需要的信息值;
  GetEnvironmentVariable(EnvironVariable,EnvironString,1024);
  //獲得環境變量的字符串信息;

?

?

5.事件記錄信息

  OpenEventLog(NULL,szLog);
  //打開時間日志記錄;
  GetOldestEventLogRecord(hEvent,&dwThisRecord);
  //獲得最新的日志信息,以便繼續查找;
  ReadEventLog(hEvent,EVENTLOG_FORWARDS_READ │ EVENTLOG_SEQUENTIAL_READ,
?? 0,pEventLogRecord,1024*32,&dwRead,&dwNeeded)
  //讀去日志信息;
  LookupAccountSid(NULL,pSid,szName,&dwName,szDomain,&dwDomain,&SNU);
  //獲取賬戶的SID,以便獲得賬戶的用戶名稱;
  GetNumberOfEventLogRecords(hEvent,&dwTotal);
  //獲得事件日志的總數;
  CloseEventLog(hEvent);
  //不要忘記關閉事件句柄;
  
  6.網絡共享

  我們使用第二等級的網絡共享搜索;
  NetShareEnum(NULL,dwLevel,(PBYTE *)&pBuf,MAX_PREFERRED_LENGTH,&entriesread,&totalentries,&resume);
  //列舉所有的共享目錄及相關信息;
  NetApiBufferFree(pBuf);
  //釋放緩沖區;
  NetShareDel(NULL,(char *)lpShareNameW,0);
  //刪除網絡共享目錄;
  
  7.網絡適配器信息

  我們要探測NIC的信息和網絡流量;
  GetAdaptersInfo(&AdapterInfo,&OutBufLen);
  //獲取適配器信息;
  
  8.系統性能

  獲取系統的存儲器使用情況;
  GetPerformanceInfo(&PerfInfo,sizeof(PERFORMACE_INFORMATION))
  //獲取系統性能信息;

  9.進程/線程/模塊信息

  在此我們使用工具幫助函數(ToolHelp32)和系統
  OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY │ TOKEN_ADJUST_PRIVILEGES,&hToken);
  //打開進程的令牌,提升權限;
  AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NULL,NULL);
  //將進程的權限提升到支持調試(Debug);
  CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  //創建進程的快照;
  Process32First(hProcessSnap,&ProcessEntry32);
  Process32First(hProcessSnap,&ProcessEntry32);
  //枚舉所有進程;
  OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,ProcessEntry32.th32ProcessID);
  //打開特定進程,以查詢進程相關信息;
  GetProcessTimes(hProcess,&CreateTime,&ExitTime,&KernelTime,&UserTime);
  //獲取進程的時間信息;
  GetProcessMemoryInfo(hProcess,&PMCounter,sizeof(PMCounter));
  //獲取進程的存儲區信息;
  GetPriorityClass(hProcess);
  //獲取進程的優先權;
  GetProcessIoCounters(hProcess,&IoCounters);
  //獲取進程的IO使用情況;
  CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessID);
  //創建模塊快照;
  Module32First(hModuleSnap, &ModuleEntry32);
  Module32Next(hModuleSnap, &ModuleEntry32);
  //枚舉進程模塊信息;
  CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
  //創建線程快照;
  Thread32First(hThreadSnap, &ThreadEntry32);
  Thread32Next(hThreadSnap, &ThreadEntry32);
  //枚舉線程信息;
  OpenThread(THREAD_ALL_ACCESS,FALSE,ThreadEntry32.th32ThreadID);
  //打開線程,須自己獲得此函數地址;
  TerminateProcess(hProcess,0);
  //終止進程;
  SuspendThread(hThread);
  //懸掛線程;
  ResumeThread(hThread);
  //激活線程;

?

?

10.關機

  AdjustTokenPrivileges(hToken,FALSE,&TokenPrivileges,sizeof(TOKEN_PRIVILEGES),NULL,NULL);
  //調整進程令牌,使其支持關機;
  ExitWindowsEx(EWX_LOGOFF,0);
  //注銷系統;
  LockWorkStation();
  //鎖定系統;
  InitiateSystemShutdown(NULL,szMessage,dwTimeout,FALSE,bSig);
  //支持到記時和消息顯示的關機/重啟;
  SetSystemPowerState(bSig,FALSE);
  //系統休眠/冬眠;

  11.用戶信息

  NetUserEnum(NULL,dwLevel,FILTER_NORMAL_ACCOUNT,(LPBYTE*)&pBuf,       dwPrefMaxLen,&dwEntriesRead,&dwTotalEntries,&dwResumeHandle);
  //枚舉系統用戶信息;
  NetUserDel(NULL,lpUserNameW);
  //刪除指定用戶;
?
  12.系統版本信息

  GetVersionEx((LPOSVERSIONINFO)&osviex);
  //獲取操作系統的版本信息;
  我們也可以通過注冊表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion)獲取相關信息:
  GetTickCount();
  //獲取開機時間;
  GetComputerName(szInfo,&dwInfo);
  //獲取計算機名稱;
  GetUserName(szInfo,&dwInfo);
  //獲取計算機用戶名;
  GetWindowsDirectory(szInfo,MAX_PATH+1);
  //獲取Windows目錄;
  GetSystemDirectory(szInfo,MAX_PATH+1);
  //獲取系統目錄;

/////////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
事件記錄信息
  OpenEventLog(NULL,szLog);
  //打開時間日志記錄;
  GetOldestEventLogRecord(hEvent,&dwThisRecord);
  //獲得最新的日志信息,以便繼續查找;
  ReadEventLog(hEvent,EVENTLOG_FORWARDS_READ │ EVENTLOG_SEQUENTIAL_READ,
?? 0,pEventLogRecord,1024*32,&dwRead,&dwNeeded)
  //讀去日志信息;
  LookupAccountSid(NULL,pSid,szName,&dwName,szDomain,&dwDomain,&SNU);
  //獲取賬戶的SID,以便獲得賬戶的用戶名稱;
  GetNumberOfEventLogRecords(hEvent,&dwTotal);
  //獲得事件日志的總數;
  CloseEventLog(hEvent);
  //不要忘記關閉事件句柄;

posted on 2006-08-22 10:56 啤酒 閱讀(811) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

統計

常用鏈接

留言簿(2)

隨筆檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            夜久久久久久| 一区二区三区不卡视频在线观看| 亚洲专区一区| 欧美日韩蜜桃| 日韩视频免费在线| 亚洲高清毛片| 欧美成人午夜77777| 亚洲精品国产精品乱码不99| 美女福利精品视频| 性做久久久久久免费观看欧美| 欧美视频四区| 久久久精品欧美丰满| 午夜精品视频在线观看| 国产一区在线免费观看| 免费成人美女女| 欧美日韩999| 欧美在线国产| 老司机aⅴ在线精品导航| 亚洲高清色综合| 日韩午夜一区| 国内精品伊人久久久久av影院 | 免费欧美日韩国产三级电影| 一区二区三区精品| 国产精品一区二区男女羞羞无遮挡| 午夜精彩国产免费不卡不顿大片| 亚洲在线免费观看| 亚洲国产欧美在线人成| 亚洲一级黄色片| 亚洲精品麻豆| 久久精品官网| 欧美一区二区三区在线播放| 免费欧美高清视频| 噜噜噜在线观看免费视频日韩| 欧美日韩国产免费观看| 欧美电影在线播放| 国产午夜亚洲精品理论片色戒| 国产一区二区三区四区五区美女| 亚洲一区3d动漫同人无遮挡| 免费看av成人| 亚洲第一页在线| 亚洲精品久久嫩草网站秘色 | 亚洲国产一区二区精品专区| 激情久久影院| 欧美国产在线电影| 99精品欧美一区二区三区| 亚洲免费电影在线| 欧美色精品天天在线观看视频| 在线天堂一区av电影| 欧美一区二区成人6969| 一区二区三区在线观看国产| 欧美二区在线播放| 亚洲欧美日韩久久精品| 久久亚裔精品欧美| 亚洲美女免费视频| 亚洲国产精品一区二区尤物区| 久久久久久久国产| 久久天天躁狠狠躁夜夜av| 国产精品久久久久9999高清| 国产欧美精品| 亚洲精品乱码久久久久久按摩观| 欧美精品一区二区三区很污很色的| 亚洲三级视频| 久久er精品视频| 久久夜色精品国产欧美乱| 91久久久国产精品| 艳女tv在线观看国产一区| 久久久夜夜夜| av不卡在线| 亚洲一区免费看| 国产亚洲观看| 一区二区冒白浆视频| 亚洲激情在线激情| 欧美激情第4页| 亚洲人体偷拍| 久久免费视频网站| 亚洲二区在线视频| 欧美激情自拍| 久久久一区二区三区| 理论片一区二区在线| 亚洲一区二区三区精品在线观看| 欧美在线影院| 亚洲色图制服丝袜| 亚洲大片av| 欧美激情综合色| 久久久噜久噜久久综合| 一本久道久久综合婷婷鲸鱼| 欧美在线免费看| 一区二区在线看| 国产精品午夜在线| 久久嫩草精品久久久精品一| aa级大片欧美| 亚洲福利国产| 久久综合网色—综合色88| 亚洲综合丁香| 久久国产视频网| 国产色产综合产在线视频| 国产精品日韩精品欧美精品| 欧美成人免费全部| 浪潮色综合久久天堂| 亚洲欧美资源在线| 亚洲一级片在线观看| 亚洲欧美另类中文字幕| 亚洲小视频在线观看| av成人毛片| 中日韩美女免费视频网址在线观看 | 久久精品人人做人人爽电影蜜月| 亚洲视频视频在线| 99亚洲视频| 亚洲国产91| 亚洲国产一区二区在线| 亚洲黑丝在线| 亚洲伊人色欲综合网| 日韩视频在线观看一区二区| 一区二区三区 在线观看视| 一区二区av在线| 久久久夜色精品亚洲| 亚洲综合激情| 国产精品色午夜在线观看| 在线色欧美三级视频| 亚洲欧美在线高清| 久久av最新网址| 亚洲精品在线三区| 亚洲欧美色婷婷| 欧美另类高清视频在线| 欧美日韩综合视频| 最新日韩精品| 久久夜色精品国产欧美乱| 亚洲欧美国产精品桃花| 欧美另类变人与禽xxxxx| 亚洲国产一区二区三区a毛片 | 亚洲精品国精品久久99热一| 亚洲视频在线一区观看| 欧美片第一页| 国产精品99久久久久久www| 久久这里有精品15一区二区三区| 亚洲一区高清| 欧美日韩1080p| 一本色道久久88精品综合| 久久久久久亚洲精品不卡4k岛国| 亚洲男人的天堂在线| 国产偷自视频区视频一区二区| 欧美一级网站| 欧美国产一区二区三区激情无套| 亚洲天堂av高清| 日韩视频免费大全中文字幕| 免费久久精品视频| 中日韩视频在线观看| 中文国产一区| 国产日韩亚洲| 亚洲精品一级| 亚洲福利视频网站| 99re6热只有精品免费观看| 国产一区二区三区在线观看免费| 欧美jizzhd精品欧美巨大免费| 国产精品高清在线| 久久久久久亚洲精品杨幂换脸| 久久尤物电影视频在线观看| 在线欧美电影| 亚洲视频电影图片偷拍一区| 狠狠爱www人成狠狠爱综合网| 亚洲国产精品传媒在线观看 | 在线日韩精品视频| 欧美亚洲午夜视频在线观看| 亚洲图片自拍偷拍| 久久综合伊人77777麻豆| 亚洲国产女人aaa毛片在线| 国产小视频国产精品| 一区二区欧美日韩视频| 亚洲国产精品成人综合| 亚洲国产欧美一区二区三区同亚洲| 亚洲美女性视频| 亚洲二区三区四区| 性做久久久久久| 久久久久国内| 国产精品一级久久久| 亚洲影院高清在线| 久久久久国产免费免费| 亚洲欧洲精品一区二区三区波多野1战4| 午夜精品一区二区三区在线播放| 亚洲视频在线观看一区| 欧美午夜精品伦理| 日韩一二三区视频| 99综合视频| 欧美日韩大陆在线| 亚洲精品欧美在线| **性色生活片久久毛片| 久久夜色撩人精品| 麻豆国产精品777777在线| 亚洲国产精品专区久久| 欧美日韩国产小视频在线观看| 一区二区三区四区五区在线| 久久精品99无色码中文字幕| 午夜精品在线| 亚洲精品精选| 亚洲亚洲精品三区日韩精品在线视频| 欧美日韩一区国产| 亚洲综合精品| 亚洲精品日韩久久| 亚洲国产高清aⅴ视频| 亚洲午夜精品在线|