劳务派遣证注销申请公司还没有运作要注销要怎么办里?程序复杂不复杂?求高人指教。

<dd style="float:cursor:" title="声誉值:
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
判断程序的实例是否已经启动,无非是通过设立某个标识,让下次启动程序时知道该实例已经运行。嗯,可是在WIN32中每个进程都有自已独立的空间,那么如何处理呢,下面提供两种方案:
方案一,使用内核对象因为内核对象是可以跨进程存在的,因此我们可以通过创建一个命名互斥体(Mutex)内核对象来判断,当用同一个名字的来创建Mutex时,CreateMutex会返回一个指向该互斥体的句柄,但是GetLastError会得到ERROR_ALREADY_EXISTS的返值。因此我们就可以判断程序已有一个实例在运行。下面是其中的关键代码:
m_hmutex = ::CreateMutex( NULL,FALSE,appID); if(m_hmutex == NULL) return FALSE; // if( ::GetLastError() == ERROR_ALREADY_EXISTS ) //{
return FALSE;}else{
return TRUE;}
方案二,使用共享数据段背景知识:EXE和DLL文件映像由许多区组成如代码在.text段中,初始化数据在.data段中,未初始化数据在.bss段中。系统在加载EXE和DLL时,实际上是使用了内存映射,为了减少加载时间,同一EXE文件多个实例实际在系统中只有一份。但一般地如果其中某个实例对某个数据区进行写时,系统会使用Copy-On-Write机制将这个数据区在虚拟内存中复制一份出来,并映射到该实例原先的地址空间,也就实现了进程数据的唯一性,而不会干扰其它进程。但是我们可以通过设置让系统关闭掉这个机制。哪么如何做呢?在Visual Studio中你可以程序中加上以下几行:
#pragma comment(linker,"/SECTION:Share,RWS") //指示编译器Share是可读写和共享的,当然你也可以通过设置链接器选项直接加上 /SECTION:Share,RWS,不过我更喜欢这个,因此其他朋友就不必自已去设置这个选项了。#pragma data_seg("Share")
// 开始自已的数据段int g_AppInit =0;
//必需初始化,否则不会将编译器不会将其放入Share这个区#pragma data_seg()
还有一种将某个变量置于特别数据段的方式:
__declspec(allocate("Share")) int g_AppInit =0;
这种方式的好处是无论你初不初始化这个变量都将置于该Share段内哪么如何判断呢是否启动了实例呢,很简单,看以下代码:
g_AppInit ++ ;
if(g_AppInit &1)
AfxMessageBox("A instance are runed!");
return FALSE;
相关的问题:如何通知前一个实例解决了重复启动的问题,为了获得更佳的用户体验,往往我们要使前一个实例激活,如何做呢?使用消息是一个不错的方法。首先你需要在启动程序时登记一个全局消息。
WM_APPACTIVE = ::RegisterWindowMessage(appID);
相同的appID字符串会给出相同的消息值,并且总是在0xC000- 0xFFFF区间中,然后当你发现已启动程序实例时通知前一个实例:
DWORD dectype = BSM_APPLICATIONS;
//仅向应用程序发送
BroadcastSystemMessage(BSF_POSTMESSAGE,
WM_APPACTIVE,
前一个程序实例收到这个消息后,进行处理,可以前置窗口激活等等。
脱离具体的操作系统环境,常规的处理办法一般2种
1、在程序启动时,判断操作系统的进程列表中是否已经存在此进程,如果有就退出
2、程序运行时生成一些外部的状态变量。程序在启动时,检测变量是否存在,如果存在就退出。
第一种的处理方式的实现要看具体的操作系统环境了。
UNIX/Linux下可以使用文件和记录锁来保证在任一时刻只运行该程序的一个副本,这一技巧通常在守护进程中使用。
原理很简单:如果每个一个进程创建一个文件,并且在整个文件上加上一把写锁,那就只允许创建一把这样的写锁,所以在此之后试图再创建一把这样的写锁就将失败,以此向后面的进程副本指明已有一个副本正在运行。
#include &unistd.h&#include &stdlib.h&#include &fcntl.h&#include &syslog.h&#include &string.h&#include &errno.h&#include &stdio.h&#include &sys/stat.h&#define LOCKFILE "/var/run/yourapp.pid"#define LOCKMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)intlockfile(int fd){
fl.l_type = F_WRLCK;
fl.l_start = 0;
fl.l_whence = SEEK_SET;
fl.l_len = 0;
return(fcntl(fd, F_SETLK, &fl));}intalready_running(void){
fd = open(LOCKFILE, O_RDWR|O_CREAT, LOCKMODE);
if (fd & 0) {
syslog(LOG_ERR, "can't open %s: %s", LOCKFILE, strerror(errno));
if (lockfile(fd) & 0) {
if (errno == EACCES || errno == EAGAIN) {
close(fd);
return(1);
syslog(LOG_ERR, "can't lock %s: %s", LOCKFILE, strerror(errno));
return(0);}
参考阅读:《UNIX环境高级编程》第13,14章
windows下面使用互斥量或者文件映射就可以检测时候又实例在运行在程序启动的时候创建一个互斥量(标识自己的程序), 如果创建成功就可以继续运行,如果失败并且返回互斥量已经存在,就说明有实例已经在运行了, 这个互斥量名称要特殊点,不然很可能会和别的程序冲突
在你要判断是否重复运行的代码处设置一个断点,然后调试程序,看看程序在调试过程中是否进入该代码两次或两次以上,若是则表明程序重复运行了。
我用过两种方法:1.程序启动前,检测进程列表中是否有该程序的进程存在;2.使用共享数据段
肯定有可能了
你定义一个长点的字符串把 fgfdfbdfzgfad 可以啊
BOOL EnablePrivilege(HANDLE hToken,LPCSTR szPrivName) {
TOKEN_PRIVILEGES LookupPrivilegeValue( NULL,szPrivName,&tkp.Privileges[0].Luid );//提升进程权限 tkp.PrivilegeCount=1; tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken,FALSE,&tkp,sizeof tkp,NULL,NULL );//通知系统修改进程权限 return( (GetLastError()==ERROR_SUCCESS) ); }
DWORD processid[1024],needed,processcount,i; HANDLE hP HMODULE hM char path[MAX_PATH] = ""; HANDLE hT if ( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken)) { if (EnablePrivilege(hToken,SE_DEBUG_NAME)) { EnumProcesses(processid, sizeof(processid), &needed);//获取进程的ID
processcount=needed/sizeof(DWORD); for (i=0;i&i++) { hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,false,processid[i]); if (hProcess) { EnumProcessModules(hProcess, &hModule, sizeof(hModule), &needed);//获得指定进程每个模块的句柄 GetModuleFileNameEx(hProcess, hModule, path, sizeof(path));//获得运行中进程路径 GetShortPathName(path,path,256);
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (5006) 次& 去美国通讯啥的应该怎么搞??求高人指教
去美国通讯啥的应该怎么搞??求高人指教
去打电话,国际漫游太贵了,有别的方法吗??移动wifi是可以在中国机场租还是机场租?当天租还是要预约?
[题主采纳]手机这个问题还是很方便的,几种方法:1.最简单的就是把你现在使用的手机号码打电话给客服,开通国际漫游,和中国的通话资费差不多是9毛钱一分钟,这个好处是不用换号码,人在打你中国的电话一样可以联系到你,但是缺点就是资费比较贵,而且不能用流量上网了,需要把你的GPRS业务都关闭。2.买一张电信运营商的SIM卡,套餐里包括在美期间的话费和流量,便于上网,上微信,优点是资费比用国内手机卡便宜,比较麻烦的是要换一个号码,你需要把这个号码及时告诉国内的家人朋友。这种SIM卡可以去某宝上买,告知卖家你到达的具体时间,卖家会定时给你开通,下了飞机就直接可以使用了。也可以到了以后,在机场附近的电信商店购买,但是价格就会贵很多了。3.的宾馆,餐馆,咖啡厅,商场都有免费的wifi,可以方便上网查询吃饭购物的信息。但是信号并不太好,这个要拼人品啊。哈哈。4。移动wifi在的机场可以租,不用预约,但是我觉得这是排在最后的方法,除非前几条都不能成功再考虑这个方法了。大致就是这样,希望能帮到你,祝旅途愉快!
不是经常上网,就用免费的wifi。我家的经验:在酒店大堂上网搞定第二天所需要的信息(如路线,网上订票,查询)。中午吃饭找有wifi的快餐店如麦当劳,咖啡馆。上网发信息,收邮件。其他时间要游览,玩耍也没时间上网。
万能的T宝上预先买好吧,的电话卡,29$,一个月内,4G是一周,然后是3G不限量,电话国内免费打,可打国际长途1200分钟。
我之前去的时候,到国内营业厅开通的漫游,但真心贵的吓人。后来我再去的时候,就办了一个迪加Easytones,到后下飞机打电话就可以激活使用。双语客服,感觉特别亲切,能上网又能电话,套餐也比较优惠,你可以试试。
<textarea name="editor" class="_j_content _j_answer_suggest" id="_js_editorText" placeholder="用自己的【真实经历】作答,而不是网上搜来的信息好回答不一定特长,但一定【不是简单的一两句话】永远替提问者【多想一步】,会加分哦~" >
京公网安备号
新出网证(京)字242号 全国统一客服电话:(NatterGal)
(累到爆肝的小鹿)
第三方登录:(DeadSeaCaptain)
(ポケモンさん)
第三方登录:

我要回帖

更多关于 注销劳务派遣资格证 的文章

 

随机推荐