精华内容
下载资源
问答
  • 使用c编写一个类似于bash的工具,作为一个多任务平台,实现run运行程序,list列出当前运行的进程,kill杀死某个运行的进程,quit退出多任务控制台,有没有可以参考的资料或文章,求推荐
  • 上的,也不知那位仁兄输入的,不过众网友会感激他的问题 有的程序员希望能够向用户列出当前正在运行的任务,但对任务和窗口的区 别又不是很确定。是否可以同时列出呢?还是需要确定显示哪一个呢? 方法 列出任务和...
    如何找出系统上正在运行的任务

    说明:此篇文章来自网易,不过我看好象是<Win95API开发人员指南>上的,也不知那位仁兄输入的,不过众网友会感激他的
    问题
      有的程序员希望能够向用户列出当前正在运行的任务,但对任务和窗口的区
    别又不是很确定。是否可以同时列出呢?还是需要确定显示哪一个呢?

    方法
      列出任务和窗口是相当有用的。任务是运行着的 Windows 应用程序,无论此
    应用程序是否显示窗口。一个任务也可以显示好几个窗口,主窗口即父窗口,其
    它的窗口为父窗口的子窗口,子窗口通常显示在父窗口内,但也可以显示在父窗
    口外。无论是显示在父窗口内还是显示在父窗口外,所有的子窗口都同属于这一
    个任务。

    步骤
      按照下列步骤实现一个例子程序。运行此例子程序,从菜单 Tasks 中选择菜
    单项 View Tasks,弹出对话框,对话框含有一个列表框和四个按钮,选择按钮  
    Process,在列表框中将显示出所有当前正在运行的任务的名字。
      并非所有的任务都显示窗口。选择第二个按钮 Windows,列表框中将显示出
    所有当前正在运行的窗口的名字。选择按钮 Modules,列表框中将显示出所有已
    装入的模块。按钮 Close 用来关闭对话框。

      实现例子程序的具体步骤如下:
      1.在 Visual C++ 中,利用 AppWizard 创建新的项目文件,并命名此项目文
    件为 LD31.MAK.
      2.进入 AppStudio 并创建新的对话框。添加一个列表框和三个按钮,按钮的
    标题分别为 Processes、Windows 和 Modules,ID 分别为 ID_PROCESS_LIST、I
    D_WINDOW_LIST 和 ID_MODULE_LIST。改变按钮 OK 的标题为 Close,删除 Canc
    el 按钮。将对话框的标题改为 Application List。
      3.进入 ClassWizard 为此对话框生成新的对话框类,类名为 CTaskDlg。从
    对象列表中选择 CTaskDlg,从消息列表中选择消息 WM_INITDIALOG。点击按钮  
    Add Function,在方法 OnInitDialog 中输入下列代码:


    BOOL CTaskDlg::OnInitDialog() 
    {
        CDialog::OnInitDialog();

        CenterWindow();

        if(!InitToolhelp32())
        {
    MessageBox("Unable to initialize toolhelp functions!",
    "Error",MB_OK|MB_ICONSTOP);
    EndDialog(IDCANCEL);
    return FALSE;
        }

        return TRUE;  // return TRUE unless you set the focus to a control

    }

      4.从对象列表中选择 ID_PROCESS_LIST,从消息列表中选择消息 BN_CLICKE
    D,命名方法为 OnProcessList,并在此方法中添加下列代码:

    void CTaskDlg::OnProcessList() 
    {
        HANDLE hSnapshot=pCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

        PROCESSENTRY32 pe;

        if(!hSnapshot)
    return;

        CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
        list->ResetContent();

        pe.dwSize=sizeof(pe);

        for(int i=pProcess32First(hSnapshot,&pe);i;
    i=pProcess32Next(hSnapshot,&pe))
        {
    HANDLE hModuleSnap=NULL;
    MODULEENTRY32 me;

    hModuleSnap=pCreateToolhelp32Snapshot(TH32CS_SNAPMODULE,
    pe.th32ProcessID);
    if(hModuleSnap==(HANDLE)(-1))
        return;
    me.dwSize=sizeof(MODULEENTRY32);
    if(pModule32First(hModuleSnap,&me))
    {
        do
        {
    if(me.th32ModuleID==pe.th32ModuleID)
    {
        list->AddString(me.szExePath);
        break;
    }
        }while(pModule32Next(hModuleSnap,&me));
    }
        }
        CloseHandle(hSnapshot);
    }

      5.从对象列表中选择 ID_WINDOW_LIST,从消息列表中选择消息 BN_CLICKED
    ,命名方法为 OnWindowList,并在此方法中添加下列代码:

    void CTaskDlg::OnWindowList() 
    {
        CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
        list->ResetContent();

        FARPROC EnumProcInstance=MakeProcInstance(
    (FARPROC)EnumWindowsProc,AfxGetInstanceHandle());

        EnumWindows((WNDENUMPROC)EnumProcInstance,(LPARAM)list);

        FreeProcInstance(EnumProcInstance);

        UpdateData();
    }

      6.在方法 OnWindowList 的前面添加下列代码:

    BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
    {
        CListBox * list=(CListBox *)lParam;

        char buf[256];
        GetWindowText(hwnd,buf,256);

        if(strlen(buf))
    list->AddString(buf);

        return TRUE;
    }

      7.从对象列表中选择 ID_MODULE_LIST,从消息列表中选择消息 BN_CLICKED
    ,命名方法为 OnModuleList,并在此方法中添加下列代码:

    void CTaskDlg::OnModuleList() 
    {
        MODULEENTRY32 me;

        CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
        list->ResetContent();

        memset(&me,0,sizeof(me));
        me.dwSize=sizeof(MODULEENTRY32);
        HANDLE hSnapshot=pCreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);


        if(!hSnapshot)
    return;

        for(int i=pModule32First(hSnapshot,&me);i;
        i=pModule32Next(hSnapshot,&me))
    list->AddString(me.szExePath);

        CloseHandle(hSnapshot);
    }

      8.在文件 TaskDlg.cpp 的顶部添加如下代码:

    typedef BOOL (WINAPI * MODULEWALK)(HANDLE hSnapshot,
                    LPMODULEENTRY32 lpme);
    typedef BOOL (WINAPI * THREADWALK)(HANDLE hSnapshot,
                    LPTHREADENTRY32 lpte);
    typedef BOOL (WINAPI * PROCESSWALK)(HANDLE hSnapshot,
                    LPPROCESSENTRY32 lppe);
    typedef HANDLE (WINAPI * CREATESNAPSHOT)(DWORD dwFlags,
                    DWORD th32ProcessID);

    static CREATESNAPSHOT   pCreateToolhelp32Snapshot=NULL;
    static MODULEWALK       pModule32First=NULL;
    static MODULEWALK       pModule32Next=NULL;
    static PROCESSWALK      pProcess32First=NULL;
    static PROCESSWALK      pProcess32Next=NULL;
    static THREADWALK       pThread32First=NULL;
    static THREADWALK       pThread32Next=NULL;

    BOOL InitToolhelp32(void)
    {
        BOOL bRet=FALSE;
        HINSTANCE hKernel=NULL;

        hKernel=GetModuleHandle("KERNEL32.DLL");
        if(hKernel)
        {
    pCreateToolhelp32Snapshot=
        (CREATESNAPSHOT)GetProcAddress(hKernel,
        "CreateToolhelp32Snapshot");

    pModule32First=(MODULEWALK)GetProcAddress(hKernel,
        "Module32First");
    pModule32Next=(MODULEWALK)GetProcAddress(hKernel,
        "Module32Next");

    pProcess32First=(PROCESSWALK)GetProcAddress(hKernel,
        "Process32First");
    pProcess32Next=(PROCESSWALK)GetProcAddress(hKernel,
        "Process32Next");

    pThread32First=(THREADWALK)GetProcAddress(hKernel,
        "Thread32First");
    pThread32Next=(THREADWALK)GetProcAddress(hKernel,
        "Thread32Next");

    bRet=pModule32First&&pModule32Next&&pProcess32First&&
        pProcess32Next&&pThread32First&&pThread32Next&&
        pCreateToolhelp32Snapshot;
        }
        else
    bRet=FALSE;

        return bRet;
    }

      9.最后,在文件 TaskDlg.cpp 的顶部添加下列行:
    #include"tlhelp32.h"
      10.进入 AppStudio,在菜单 IDR_WAINFRAME 中添加新的菜单 Tasks.在 T
    asks 中添加新的菜单项 View Tasks,ID 命名为 ID_VIEW_TASKS。
      11.启动 ClassWizard.从下拉列表中选择对象 CMainFrame,从对象列表中
    选择 ID_VIEW_TASKS,选择消息 COMMAND,点击按钮 Add Function,方法命名为
     OnViewTasks。
      12.在 CMainFrame 的成员函数 OnViewTasks 中输入下列代码:

    void CMainFrame::OnViewTasks() 
    {
        CTaskDlg dlg;

        dlg.DoModal();
    }

      13.在文件 MAINFRM.CPP 的顶部添加下列行:
    #include "TaskDlg.h"
      14.编译并运行此例子程序。


    注释
      本节介绍了三个不同的 Windows API 函数集,用来列出当前正在运行的任务
    、正在运行的窗口和已装入的 DLL。
      Windows 9x API 函数 Process32First 和 Process32Next,用来列出当前正
    在运行的进程。要使用这些函数,必须从 kernel32.DLL 中装入这些函数,从而
    完成 ToolHelp 功能的初始化,函数 InitToolhelp32 即用来完成 TollHelp 功
    能的初始化。这些 API 函数将遍历进程链表,返回每一个进程的进程标识符,调
    用模块函数(Module32First 和 Module32Next)遍历模块链表,从而找出相应的
    进程名。
      Windows API 函数 MakeProcInstance 和 EnumWindows,用来列出当前正在
    运行的窗口。在例子程序中,函数 MakeProcInstance 接受函数 EnumWindowsPr
    oc 的地址,返回 FARPROC 类型的值,接着使用函数 EnumWindows 将此返回值传
    送给 Windows,从而列出所有的主窗口。函数 EnumWindowsProc 具有两个参数,
    第一个参数为窗口句柄,第二个参数为用户定义参数,由函数 EnumWindows 传送
    。在本节的例子中,此参数为 CListBox 的实例,用来存储数据。在函数 EnumW
    indowsProc(因被 Windows 调用,所以也称回调函数)中,窗口的标题显示在列
    表框中,以便于用户查看。

    转载于:https://www.cnblogs.com/henryzc/archive/2005/10/27/263007.html

    展开全文
  • Linux中创建定时任务

    2019-07-24 00:19:42
    在Linux上创建定时任务可以使用 crontab,我的机器是自带的,安装应该也不会很麻烦,具体的百度一下了。...crontab -l [user] 列出当前运行的任务,相当于查看任务列表文件的内容 我们一般的用法就是 : 第一步:cr...

    在Linux上创建定时任务可以使用 crontab,我的机器是自带的,安装应该也不会很麻烦,具体的百度一下了。

    首先来看一下 crontab的常用命令

    crontab -e [user] 使用默认的文本编辑器打开指定用户的任务列表文件,user是要打开的用户的文件
    crontab -l [user] 列出当前运行的任务,相当于查看任务列表文件的内容

    我们一般的用法就是 :
    第一步:crontab -e (打卡任务列表)
    第二步:如果使用的是 Vi的话按 i或者 e编辑文件,光标移到最下面添加一行
    第三步:esc,:wq 保存并退出

    我们要添加的那一行的格式为:
    分  时  日  月  周  命令
    分的取值范围为 0-59
    时的取值范围为 0-23
    日的取值范围为 1-31
    月的取值范围为 1-12
    周的取值范围为 0-6(0是周日)
    命令就是我们要定时执行的命令了,命令中如果包含路径的话记得要使用绝对路径。

    此外还有 * 和 /两个通用符号
    *表示所有可能的取值,如:
    5 * * * * cmd 当分钟数为5时执行命令,即只考虑分钟数,其他的不考虑,因为其他的使用了 *表示所有取值均满足条件

    /表示每,用来指定命令执行的频率,如:
    */5 * * * * * cmd 每5分钟执行一次命令

    两个结合起来用:
    5 10 */2 * * cmd 每两天执行一次命令,并且执行的时间为 10点 5分

    更加具体的可以参考:https://www.cnblogs.com/huidaoli/articles/4635143.html

    展开全文
  • Linux 任务后台运行(总结)

    千次阅读 2019-02-20 10:18:52
    列出后台运行或停止或已完成的进程 Ctrl + z 将当前在shell上执行的任务放入后台停止,可以结合 bg 命令使任务后台运行 上面方法中执行的进程都属于shell的子进程,所以一旦shell关闭,断开连接,这些任务都会...
    1. &
      使任务后台运行

    2. fg
      将后台运行或者停止的任务放到前台运行。

    3. bg
      使后台停止的任务运行在后台

    4. jobs
      列出后台运行停止已完成的进程

    5. Ctrl + z
      将当前在shell上执行的任务放入后台停止,可以结合 bg 命令使任务后台运行

    上面方法中执行的进程都属于shell的子进程,所以一旦shell关闭,断开连接,这些任务都会终止,很不方便。例如有可能,你会登陆到远程主机跑一个需要运行很久的脚本,一旦网络不稳定断开链接,则脚本就会停止。

    如何让进程在退出登陆,关闭终端的时候仍能够运行呢?
    查看该文章即可:Linux 技巧:让进程在后台可靠运行的几种方法

    展开全文
  • KILL掉当前Hive任务

    千次阅读 2019-01-10 22:48:48
    运行hive任务时,第7个job任务启动后一直不动,感觉是除了问题 ...使用hadoop job -list来列出当前hadoop正在执行jobs 然后使用hadoop job -kill job_1546932571227_0082来杀死该job任务, 成功 ...

    在运行hive任务时,第7个job任务启动后一直不动,感觉是除了问题在这里插入图片描述
    于是准备kill掉hive任务

    使用hadoop job -list来列出当前hadoop正在执行的jobs

    在这里插入图片描述

    然后使用hadoop job -kill job_1546932571227_0082来杀死该job任务,
    在这里插入图片描述

    成功
    在这里插入图片描述

    展开全文
  • windows常用快捷键 Ctrl+Shift+Esc:打开任务管理器 window+r:打开运行 window+e:打开我电脑 window+d:显示桌面 ctrl+空格:中英文切换 ...dir :查看当前目录下所有文件 cd :切换目录 cls :清
  • 以树状结构显示系统当前的任务

    千次阅读 2001-08-26 15:48:00
    以树状结构显示系统当前的任务保宝(2001-07-29 10:17)〖返回〗〖转发〗运行ps时指定—forest选项,当前运行的进程将会以树状格式显示出来。比如:所有由xserver运行的程序,将会以xserver做为它们的“根”显示出来。...
  • $ ctrl+z 将当前运行的进程放入后台暂停 $ jobs ##列出后台进程 [1]+ 已停止 putty $ fg %1 #取出后台进程放入前台运行,%后面加进程序号 $ bg %1 ##将程序放入后台,继续执行 [1]+ putty & ##程序在后台执行 $...
  • 命令1:ps afx ...其中’a’表示列出所有运行的进程;’x’列出所有的后台进程;’f’是’-forest’的缩写   [admin@v015208 ~]$ ps afx PID TTY STAT TIME COMMAND 1 ? Ss 0:01 init [3] ...
  • 枚举系统正在运行的程序,用VC++枚举系统正在运行的程序,列出当前Windows运行的所有进程,具体的枚举过程,请参见源码包内的相关代码。程序实现的功能类似于Windows XP的任务管理器-->进程一栏所显示的内容,...
  • 任务管理器源码

    2021-03-18 01:43:18
    Android 系统上的任务管理器的源码代码,可以列出当前运行的进程,还可以查看进程的详细信息以及结束该里程等。
  • 1.linux的crontab cron不停地检查所有配置的任务当前是否应该运行,任务运行的最小时间间隔是1分钟,也就是说任务最频繁只能每分钟运行一次。 (1).crontab命令选项 ...-l:列出某个用户的任务计划 -r:删...
  • screen -S name 创建一个名为name的后台,或者说bash面板,在这上面运行的任务不会因为连接断开而退出,且保留bash上的信息 screen -ls 列出所有的screen screen -r 相应的screen号 回到相应的screen Ctrl+a+d...
  • 任务管理器源码.zip

    2019-07-10 12:46:04
    Android 系统上的任务管理器的源码代码,可以列出当前运行的进程,还可以查看进程的详细信息以及结束该里程等。  
  • 为了便于我们的查看,我们会写一个工具类,这个工具类的主要作用是帮我们列出当前运行的主机,当前进程,当前线程,当前正在运行的对象,当前正在运行的方法。我们通过把这些信息打印出来,来查看Storm集群在工作时....
  • crontab -e 编辑添加任务 格式: 1 2 3 4 5 echo aaaaaaa 第1列分钟1~59第2列小时1~23(0表示子夜)第3列日1...crontab -l 列出当前用户的任务 ll /var/spool/cron/ 列出所有有任务的用户,列出的便是有任务的用户...
  • Linux下使用Shell命令控制任务(Jobs)执行下列命令可以用来操纵进程任务:ps 列出系统中正在运行的进程kill 发送信号给一个或多个进程(经常用来杀死一个进程)jobs 列出属于当前用户的进程bg 将进程搬到后台运行...
  • 该项目是通过引导。... 要将现有项目更新为新版本react-scripts ,请 ,找到您当前使用版本(如果不确定,请检查此文件夹中package.json ),然后为较新版本应用迁移说明版本。 在大多数情况下,package.js
  • 在本文中,良许将为大家介绍如何列出 Linux 系统里所有运行的服务,以及如何检查某个服务的当前状态。Centos/RHEL 7.X 的 systemd 系统服务查看CentOS 7.x开始,CentOS开始使用 systemd 服务来代替 daemon ,原来...
  • jobs 列出所有后台任务 & 将任务放到后台执行 Ctrl^Z 暂停当前(前台)任务 suspend 暂停shell fg 恢复任务(将任务带到前台) bg 将暂停的任务放到后台继续执行 任务控制(job control)是任何Linux shell都...
  • jobs列出当前shell环境中已启动的任务状态,若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell从当前的shell环境已知的列表中删除任务的进程标识...
  • jobs列出当前shell环境中已启动的任务状态,若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell从当前的shell环境已知的列表中删除任务的进程标识...
  • 进程和计划任务管理

    2020-11-21 17:01:23
    查看当前运行级别七、 修改默认运行级别设置默认级别为字符型(重启生效)设置默认级别为图形化(重启生效)八、 分析指定target各unit之间依赖关系九、 查看哪些target引用了当前运行级别target十一、列出unit...
  • jobs_fg_bg_任务管理

    2012-07-17 10:54:12
    jobs:列出当前shell环境中已启动的任务状态,查看当前有多少在后台运行的命令。 若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell 从当前的shell...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 502
精华内容 200
关键字:

列出当前运行的任务