📄 runin2k_cpp.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://jiurl.cosoft.org.cn/jiurl/document/JiurlBoot/RunIn2K.cpp -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><XMP>/***************************************************************|
Author: JIURL
Email: jiurl@mail.china.com
Homepage: http://jiurl.yeah.net
/***************************************************************/
//
//SDK程序,建立 Win32 Application 的 project 进行编译
//
#include <windows.h>
#include <shlobj.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
///////////////////////////////////////////////////////
// 建立了RunIn98的快捷方式 //
///////////////////////////////////////////////////////
HRESULT hres;
IShellLink* psl;
CoInitialize(NULL);
// Get a pointer to the IShellLink interface.
hres = CoCreateInstance(CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *) &psl);
if (SUCCEEDED(hres)) {
IPersistFile* ppf;
//Set the path to the shortcut target
//这里需要根据自己的情况修改
psl->SetPath("存放RunIn98.exe的目录\\RunIn98.exe");
// Query IShellLink for the IPersistFile interface for saving the
// shortcut in persistent storage.
hres = psl->QueryInterface(IID_IPersistFile,
(void**)&ppf);
if (SUCCEEDED(hres)) {
WCHAR wsz[MAX_PATH];
// Ensure that the string is Unicode.
//这里需要根据自己的情况修改,快捷方式起什么名字无所谓,这里叫lnk
MultiByteToWideChar(CP_ACP, 0, "Win98的启动目录,比如?:\\Windows\\Start Menu\\Programs\\启动\\Lnk.lnk", -1,
wsz, MAX_PATH);
// Save the link by calling IPersistFile::Save.
hres = ppf->Save(wsz, TRUE);
ppf->Release();
}
psl->Release();
}
CoUninitialize();
///////////////////////////////////////////////////////
// 改名替换boot.ini //
///////////////////////////////////////////////////////
char FromFile[100]="";
char ToFile[100]="";
SHFILEOPSTRUCT FileOp;
FileOp.hwnd = NULL;
FileOp.wFunc = FO_RENAME;
FileOp.pFrom = FromFile;
FileOp.pTo = ToFile;
FileOp.fFlags = FOF_SILENT;
strcpy(FromFile,"C:\\boot.ini\0");
strcpy(ToFile,"C:\\RealBoot.ini\0");
// if(SHFileOperation(&FileOp)!=0)
// MessageBox(NULL,"wrong","wrong",NULL);
strcpy(FromFile,"C:\\boot98.ini\0");
strcpy(ToFile,"C:\\boot.ini\0");
// if(SHFileOperation(&FileOp)!=0)
// MessageBox(NULL,"wrong","wrong",NULL);
///////////////////////////////////////////////////////
// W2k下的重启操作系统 //
///////////////////////////////////////////////////////
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
//注意这里我注释掉了,以防不小心重启,确认无误的话,去掉注释。
// ExitWindowsEx(EWX_REBOOT,NULL);
return (0);
}</XMP></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -