Ⅰ c語言中如何注冊及響應熱鍵
在.h中: public: // User declarations BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_HOTKEY,TMessage,OnHotKey) END_MESSAGE_MAP(TForm) void __fastcall TMainForm::OnHotKey(TMessage &Message); //響應熱鍵消息 在.cpp中: void __fastcall TMainForm::FormCreate(TObject *Sender) { //注冊系統熱鍵 if(!RegisterHotKey(Handle,2000,MOD_CONTROL,VK_F12)) //這里注冊的熱鍵是Ctrl+F12 ShowMessage("熱鍵注冊失敗"); } //--------------------------------------------------------------------------- void __fastcall TMainForm::OnHotKey(TMessage &Message) { //添加你的代碼 TForm::Dispatch(&Message); if (!MainForm->Visible) { MainForm->Show(); MainForm->BringToFront(); } else MainForm->Hide(); } //--------------------------------------------------------------------------- void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action) { UnregisterHotKey(Handle, 2000);//退出程序時注銷熱鍵 }
Ⅱ 如何讓一個程序被無法關閉
你可以禁用任務管理器啊 再把你下載軟體的圖標隱藏就行了 開始--運行中輸入regedit 打開「注冊表編輯器」,找到[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System],在右側窗格中創建名為DisableTaskMgr的Dword值,將其值設置為1即可禁用「任務管理器」,
Ⅲ C語言實現用戶注銷功能(用戶信息是儲存在文件里的)
package com.bird.login;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
/**
* @category 使用Session處理用戶登陸
* @author Bird
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
List<User> list = Db.getAll();
for(User u: list){
if(u.getUsername().equals(username) && u.getPassword().equals(password)){
request.getSession().setAttribute("user", u);//登錄成功,將用戶數據放入到Session中
response.sendRedirect("/Web/index.jsp");
return;//進行重定向,並且下面的代碼不再執行
}
}
out.write("您的應戶名或密碼錯誤");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
class Db{
public static List<User> list = new ArrayList<User>();
static{
list.add(new User("aaa","123"));
list.add(new User("bbb","123"));
list.add(new User("ccc","123"));
}
public static List<User> getAll(){
return list;
}
}
Ⅳ C語言如何實現用戶注冊登錄注銷,用戶簽到功能
用資料庫實現,可以用MySQL,PostgreSQL,如果數據多一點用Oracle,簽到功能在資料庫中記錄,加密密碼用加密方法可以用異或加密。
Ⅳ 飯卡管理系統怎麼用C語言來編寫注銷舊飯卡功能和實現掛失功能
注銷刪除數據即可
掛失設置一個標志變數(或欄位)即可,在操作時先對標志做判斷即可
Ⅵ 用C語言實現電腦關機待機重啟注銷等功能
直接調用shutdown程序吧,shutdown的各種參數可以實現不同的功能
具體方法可以看這個:
http://..com/question/6946.html
不過好像沒有待機和注銷的功能,可以重啟或者關機
Ⅶ C語言注冊以後 注銷的主函數
那要看你是所有注冊過的用戶是怎麼存的?是有文件存的,還是沒有文件,直接用的鏈表?
如果直接用的鏈表的話,就直接把鏈表中的節點刪掉就行,
如果是文件存的,可以先把文件里的所有用戶信息讀取到鏈表裡,然後按照上面的方法將用戶從鏈表刪除,然後將鏈表裡的數據重新寫回到文件覆蓋原來的文件。
done
Ⅷ 用C語言實現電腦關機待機重啟注銷等功能
可以關機注銷這些,可是沒跪求不損害電腦情況下關機重啟注銷的方法。高分啊、補充::我用的是USB滑鼠參數功能:將重新啟動或關機前超時期限或延遲設置
Ⅸ C語言編寫一個 if else 開機輸入密碼 如果輸入密碼錯誤,
我寫的代碼功能:實現整個登陸模塊,使用鏈表存儲臨時用戶數據(實際軟體,鏈表應該從資料庫中載入數據)。管理員登陸可以查看所有用戶信息。
實現注冊、登陸、驗證、注銷、查詢。
登陸用戶分:普通用戶和管理員用戶。默認我初始一個管理員,你不需要可以刪。
驗證規則,你可以在我的驗證函數中改。
登陸成功以後,具體做什麼我沒寫,留給你自己發揮!!你在我相關注釋的位置添加代碼。
注意:如果是實際軟體開發,注冊需要寫入資料庫,登陸需要讀取資料庫,你需要在我相關位置添加資料庫寫入和讀取代碼。
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<conio.h>
#defineSIZE20
typedefstructuserInfo//用戶信息
{
charuName[SIZE];//用戶名
charuPSW[SIZE];//用戶密碼
intuType;//用戶類型:0普通用戶;1管理員
structuserInfo*next;
}USERINFO;
intcheckUINFO(char*uName,char*uPSW);//驗證用戶信息合理性,合理返回1,不合理返回0。
USERINFO*regUser(char*uName,char*uPSW,USERINFO*userHead,USERINFO*userTail,intuType);//注冊用戶,返回尾節點
intshowMeu1(USERINFO*userHead,USERINFO**userTail);//顯示1級菜單
intshowMeu2(intn,USERINFO*userHead,USERINFO**userTail);//顯示2級菜單
voidprintfList(USERINFO*userHead);//測試用函數,列印鏈表所有數據,正常用戶不使用
intlogin(char*uName,char*uPSW,USERINFO*userHead);//登陸,登陸成功返回1,失敗返回0
voidinitUser();//初始化登陸狀態
USERINFOloginUser=
{
{0},
{0},
0,
NULL
};//全局變數當前登陸的用戶
intmain()
{
intm;
USERINFOuserHead,*userTail=NULL;
userHead.next=NULL;
//-----測試用添加了一個管理員賬戶,不需要可以刪!!---------------
userTail=regUser("admin123","admin123",&userHead,userTail,1);
//-----------------------------------------------------------------
while(1)
{
//printf("loginUser.uName[0]=%d,loginUser.uType=%d
",loginUser.uName[0],loginUser.uType);
//getch();
if(loginUser.uName[0]==0)
showMeu1(&userHead,&userTail);
elseif(loginUser.uName[0]!=0&&loginUser.uType==0)//普通用戶登陸,登陸以後想做的操作添加在這里!!!!!!!!
{
printf("退出登陸輸入0
");
scanf("%d",&m);
if(m==0)
initUser();
continue;
}
elseif(loginUser.uName[0]!=0&&loginUser.uType==1)//管理員登陸,直接列印全部用戶數據
{
system("cls");
printf("當前為管理員登陸,列印所有用戶信息:
");
printfList(&userHead);//測試用函數,列印鏈表所有數據,正常用戶不使用
printf("退出登陸輸入0
");
scanf("%d",&m);
if(m==0)
initUser();
continue;
}
}
return0;
}
voidinitUser()//初始化登陸狀態
{
memset(loginUser.uName,0,SIZE);
memset(loginUser.uPSW,0,SIZE);
loginUser.uType=0;
loginUser.next=NULL;
}
intshowMeu1(USERINFO*userHead,USERINFO**userTail)//顯示1級菜單
{
intn;
while(1)
{
system("cls");
printf("1、注冊賬戶
2、登陸賬戶
");
scanf("%d",&n);
if(n!=1&&n!=2)
continue;
returnshowMeu2(n,userHead,userTail);
}
}
intshowMeu2(intn,USERINFO*userHead,USERINFO**userTail)//顯示2級菜單
{
intm;
charuName[100]={0},uPSW[100]={0};
if(n==1)//注冊界面
while(1)
{
system("cls");
printf("注冊要求:用戶名只包含數字、字母及下劃線。
密碼必須包含數字及字母。
用戶名密碼大於6個字元且小於%d!
",SIZE);
printf("請輸入用戶名:");
scanf("%s",uName);
printf("請輸入密碼:");
scanf("%s",uPSW);
*userTail=regUser(uName,uPSW,userHead,*userTail,0);
if(!*userTail)
{
printf("注冊失敗!輸入0重新注冊,輸入1返回主菜單
");
while(1)
{
scanf("%d",&m);
if(m==0)
break;
if(m==1)
returnn;
}
if(m==0)
continue;
}
else
{
printf("注冊成功!按任意鍵返回。。。。。。
");
getch();
returnn;
}
}
else//登陸界面
while(1)
{
system("cls");
printf("用戶名:");
scanf("%s",uName);
printf("密碼:");
scanf("%s",uPSW);
if(!login(uName,uPSW,userHead))
continue;
else
{
returnn;
}
}
return1;
}
voidprintfList(USERINFO*userHead)//測試用函數,列印鏈表所有數據,正常用戶不使用
{
USERINFO*userSave=userHead;
while(userSave->next)
{
printf("用戶名:%s
",userSave->next->uName);
printf("密碼:%s
",userSave->next->uPSW);
printf("類型:%s
",userSave->next->uType?"管理員":"普通用戶");
userSave=userSave->next;
}
}
intlogin(char*uName,char*uPSW,USERINFO*userHead)//登陸,登陸成功返回1,失敗返回0
{
USERINFO*userSave=userHead;
while(userSave->next)
{
if(!strcmp(userSave->next->uName,uName)&&!strcmp(userSave->next->uPSW,uPSW))
{
printf("登陸成功");
strcpy(loginUser.uName,uName);
strcpy(loginUser.uPSW,uPSW);
loginUser.uType=userSave->next->uType;
return1;
}
userSave=userSave->next;
}
printf("用戶名密碼不正確或不存在!按任意鍵繼續。。。。。。
");
getch();
return0;
}
intcheckUINFO(char*uName,char*uPSW)//驗證用戶信息合理性,合理返回1,不合理返回0。
{
//用戶名和密碼的輸入規則,在這里添加,要改規則自己加!!!!!!!!!
//我默認規則,用戶名大於6個字元且只包含數字、字母及下劃線,密碼大於6個字元且必須包含數字及字母,用戶名密碼小於數組上限
inti,len1=strlen(uName),len2=strlen(uPSW),flag1=0,flag2=0;
if(len1>SIZE||len2>SIZE)
{
printf("用戶名或密碼過長,不得超過%d個字元!!
",SIZE);
return0;
}
if(len1<6||len2<6)
{
printf("用戶名或密碼必須大於6個字元
");
return0;
}
for(i=0;i<len1;i++)
{
if(!(uName[i]>=48&&uName[i]<=57)&&!(uName[i]>=65&&uName[i]<=90)&&!(uName[i]>=97&&uName[i]<=122)&&uName[i]!='_')
{
printf("用戶名只能包含數字、字母及下劃線!!
");
return0;
}
}
for(i=0;i<len2;i++)
{
if(uPSW[i]>=48&&uPSW[i]<=57)
flag1=1;
if((uPSW[i]>=65&&uPSW[i]<=90)||(uPSW[i]>=97&&uPSW[i]<=122))
flag2=1;
}
if(flag1==0||flag2==0)
{
printf("密碼必須包含數字及字母!!
");
return0;
}
return1;
}
USERINFO*regUser(char*uName,char*uPSW,USERINFO*userHead,USERINFO*userTail,intuType)//注冊用戶,返回尾節點
{
USERINFO*userNew=NULL;
if(checkUINFO(uName,uPSW))//通過驗證
{
userNew=(USERINFO*)malloc(sizeof(USERINFO));
userNew->next=NULL;
strcpy(userNew->uName,uName);
strcpy(userNew->uPSW,uPSW);
userNew->uType=uType;
}
else
returnNULL;
if(userHead->next==NULL)
userHead->next=userNew;
else
userTail->next=userNew;
userTail=userNew;
//如果是正常軟體,這里應該把注冊信息寫入資料庫,資料庫insert語句寫在這里!!!!
//-----------------------------------------------------------------------------------
returnuserTail;
}
Ⅹ C語言用c寫一個可以驗證賬號,密碼和修改密碼的程序
#include <string.h>
struct e
{
char a[10];
char b[10];
}z;
int main()
{ int t=0;
char s[10],d[10];
FILE *p;
void as();
if ((p=fopen("m.txt","r+"))==NULL)
{
p=fopen("m.txt","w+");
t=1;
}
if(t==1)
{
printf("當前沒有任何用戶\n");
printf("請新建用戶名: ");
scanf("%s",s);
printf("為用戶設置密碼: ");
scanf("%s",d);
strcpy(z.a,s);
strcpy(z.b,d);
fprintf(p,"%s %s",z.a,z.b);
fclose(p);
}
if(t==0)
{
printf("請輸入用戶名: ");
scanf("%s",s);
fscanf(p,"%s %s",z.a,z.b);
fclose(p);
if (!strcmp(z.a,s))
{
printf("請輸入密碼:");
scanf("%s",d);getchar();
if(!strcmp(z.b,d))
{ char i;
printf("是否要修改密碼?(輸入y修改,n退出!)");
scanf("%c",&i);
if(i=='y')
{
printf("請輸入修改密碼:");
scanf("%s",z.b);
p=fopen("m.txt","w+");
fprintf(p,"%s %s",z.a,z.b);
fclose(p);
printf("修改成功!");
}
}
else printf("密碼錯誤!");
}
else printf("用戶名錯誤");
fclose(p);
}
}