精华内容
下载资源
问答
  • } //获取参数 static bool getToken(se::State& s) { //获取Js层传过来的参数 const auto& args = s.args(); //理解为一个检测标记吧! CC_UNUSED bool ok = true; if (__argc ) { //把结果保存在s.rval()中传回给...

    首先打开在cocos构建后的文件jsb_module

    using namespace cocos2d;

    在这句话的下面添加

    // wstring转string
    std::string WstringToString(const std::wstring str)
    {
       unsigned len = str.size() * 4;
       setlocale(LC_CTYPE, "");
       char *p = new char[len];
       wcstombs(p, str.c_str(), len);
       std::string str1(p);
       delete[] p;
       return str1;
    }
    
    //获取参数
    static bool getToken(se::State& s)
    {
       //获取Js层传过来的参数
       const auto& args = s.args();
        //理解为一个检测标记吧!
       CC_UNUSED bool ok = true;
       if (__argc < 2) {
          //把结果保存在s.rval()中传回给Js层
          ok &= std_string_to_seval("no", &s.rval());
          SE_PRECONDITION2(ok, false, "JsbTest add : Error processing arguments");
          return true;
       }else {
          //把结果保存在s.rval()中传回给Js层
          ok &= std_string_to_seval(WstringToString(__wargv[1]), &s.rval());
          SE_PRECONDITION2(ok, false, "JsbTest add : Error processing arguments");
          return true;
       }
    }
    SE_BIND_FUNC(getToken)
    
    
    //要在下面jsb_register_all_modules 加上本方法
    static bool jsb_customFunc(se::Object* global)
    {
       // 写一个js的全局函数
       global->defineFunction("getToken", _SE(getToken));
       return true;
    }

    然后在函数jsb_register_all_modules内的 se->addBeforeCleanupHook([se]() 下面写上我们设置的函数

    //把我们自己的全局函数写进去
    se->addRegisterCallback(jsb_customFunc);


    然后在cocos 内调用(我用的TS 会报错 直接写一个错误屏蔽符就行了 运行没问题)
    getToken()

    展开全文
  • 在c程序中,system函数可以运行命令行,但是只能得到该命令行的int型返回值,并不能获得显示结果。例如system(“ls”)只能得到0或非0,如果要获得ls的执行结果,则要通过管道来完成的。首先用popen打开一个命令行的...

    在c程序中,system函数可以运行命令行,但是只能得到该命令行的int型返回值,并不能获得显示结果。例如system(“ls”)只能得到0或非0,如果要获得ls的执行结果,则要通过管道来完成的。首先用popen打开一个命令行的管道,然后通过fgets获得该管道传输的内容,也就是命令行运行的结果

    在linux上运行的例子如下:

    void executeCMD(const char *cmd, char *result)

    {

    char buf_ps[1024];

    char ps[1024]={0};

    FILE *ptr;

    strcpy(ps, cmd);

    if((ptr=popen(ps, "r"))!=NULL)

    {

    while(fgets(buf_ps, 1024, ptr)!=NULL)

    {

    strcat(result, buf_ps);

    if(strlen(result)>1024)

    break;

    }

    pclose(ptr);

    ptr = NULL;

    }

    else

    {

    printf("popen %s error\n", ps);

    }

    }

    在这段代码中,参数cmd为要执行的命令行,result为命令行运行结果。输入的cmd命令最好用... 2>&1 的形式,这样将标准错误也读进来

    这次的项目中更要获取U盘设备的名称,网上搜到可以使用blkid命令,执行blkid命令结果如下:

    /dev/sda1: UUID="157b922d-8f42-4514-a2f0-f31eb7ceae68" TYPE="ext4"

    /dev/sda2: UUID="0e69206a-03eb-498c-a1d3-46c5b2f9d0cc" TYPE="ext4"

    /dev/sda3: UUID="7dc1e588-6794-490f-b315-1af7e1fcbdae" TYPE="swap"

    /dev/sdb1: UUID="54f1d622-572e-41d6-b177-58a4369ef38f" TYPE="ext3"

    /dev/sdc1: UUID="B653-1BCA" TYPE="vfat"

    最后一行即为U盘的信息。

    在windows上相对要麻烦些,需要用CreateProcessW函数来启动新的进程,以便执行cmd命令。windows下的例子请看这个调用md5sum.exe来获得文件md5值的代码:

    int GetFileMD5W(const TCHAR *filefullpath, char *MD5key)

    {

    TCHAR szfilenameW[MAX_PATH_LENGTH]={0};   //保存文件名

    TCHAR szFilePathW[MAX_PATH_LENGTH]={0};   //保存路径

    TCHAR szCmdLineW[MAX_PATH_LENGTH]={0};    //保存命令行信息

    char buffer[MAX_PATH_LENGTH] = {0};       //保存命令行输出

    TCHAR *pos=NULL;

    DWORD bytesRead = 0;

    if (wcslen(filefullpath)>MAX_PATH_LENGTH)

    return false;

    wcscpy(szFilePathW, filefullpath);

    int i=0;

    while (szFilePathW[i]!=0)

    {

    if (szFilePathW[i]==_T('/'))

    szFilePathW[i]=_T('\\');

    i++;

    }

    if ((pos=wcschr(szFilePathW, '\\'))==NULL)   //找到文件路径最右边的'\'

    {

    return false;

    }

    wcscpy(szfilenameW, pos+1);                  //获得文件名

    *pos=0;                                      //获得文件所在路径

    if (wcslen(szfilenameW)==0 || wcslen(szFilePathW)==0 || MD5key==NULL)  //检查文件名或路径大小是否合适

    {

    return false;

    }

    wsprintf(szCmdLineW,L"cmd.exe /c md5sum \"%s\" ",szfilenameW);       //给出命令行信息

    //eg: cmd.exe /c md5sum "for text.txt"

    SECURITY_ATTRIBUTES sa = {0};

    HANDLE hRead = NULL, hWrite = NULL;                                  //设置管道读写句柄

    sa.nLength = sizeof(SECURITY_ATTRIBUTES);

    sa.lpSecurityDescriptor = NULL;

    sa.bInheritHandle = TRUE;

    if (!CreatePipe(&hRead, &hWrite, &sa,0))                             //创建管道

    {

    return false;

    }

    STARTUPINFO si = {0};

    PROCESS_INFORMATION pi = {0};

    si.cb = sizeof(STARTUPINFO);

    GetStartupInfo(&si);

    si.hStdError = hWrite;                                              //

    si.hStdOutput = hWrite;                                             //

    si.wShowWindow = SW_HIDE;

    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;

    //关键步骤,CreateProcess函数参数意义请查阅MSDN

    if (!CreateProcessW(NULL, szCmdLineW

    ,NULL,NULL,TRUE,NULL,NULL,szFilePathW,&si,π))             //注意,这里将szFilePathW(文件所在路径)作为倒数第三个参数

    {

    CloseHandle(hWrite);

    CloseHandle(hRead);

    return false;

    }

    WaitForSingleObject(pi.hProcess,INFINITE);                         //等待md5sum结束

    //   Close   process   and   thread   handles.

    CloseHandle(pi.hProcess);                                          //关闭新进程的主线程

    CloseHandle(pi.hThread);                                        //关闭新进程

    CloseHandle(hWrite);                                               //关闭管道的写句柄

    ReadFile(hRead, buffer, MAX_PATH_LENGTH, &bytesRead, NULL);        //从管道中读取md5sum的运行结果

    CloseHandle(hRead);                                                //关闭管道的读句柄

    if (NULL!=strstr(buffer,"md5sum"))                                 //如果运行结果中出现了md5sum,多半是执行失败

    {

    //TRACE(buffer);

    return -2;

    }

    else if (!strnicmp(buffer,"No such file:",strlen("No such file:"))) //找不到制定文件

    {

    //TRACE(buffer);

    return -1;

    }

    if (strlen(buffer)<32)                                              //获得结果小于32位,说明没有得到md5值

    {

    //TRACE(buffer);

    return false;

    }

    strncpy(MD5key, buffer, 32);                                        //获得md5值成功

    strcat(MD5key, "\0");

    return TRUE;

    }

    展开全文
  • C程序获取命令行参数

    2021-05-19 17:13:44
    无论是Python、Java还是C等等,这些语言都能够获取命令行参数(Command-line argument,与命令同一行中的附加项)。C编写的可执行文件的程序入口函数是main函数,因此C程序真正读取命令行参数的就是main函数。例:#...

    命令行参数

    命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令。无论是Python、Java还是C等等,这些语言都能够获取命令行参数(Command-line argument,与命令同一行中的附加项)。

    C编写的可执行文件的程序入口函数是main函数,因此C程序真正读取命令行参数的就是main函数。

    例:

    #include

    /*

    * test.c 编译后产生可执行文件test.exe或test.out,程序来源于C Primer Plus第十一章

    */

    int main(int argc,char *argv[]) {

    int count;

    printf("The command line has %d arguments :\n",argc-1);

    for (count = 1; count < argc; ++count) {

    printf("%d: %s\n",count,argv[count]);

    }

    return 0;

    }

    我们在test.exe所在文件夹打开命令行窗口,键入test I love you,会输出:

    The command line has 3 arguments:

    1: I

    2: love

    3: you

    C标准规定main函数作为程序入口,可以没有参数,也可以有两个参数。两种参数的情况下,第一个参数argc是命令行中的字符串个数,字符串的分隔按空格来判断,上例中总共输入了4个字符串,分别是 test, I, love, you。第二个参数argv是一个指向这些字符串的指针数组。命令行界面中输入的所有字符串被存储在这个数组中,可以用for循环遍历。第一个元素当然是命令的名称。当然,对于接受参数的main函数也可以用另一种声明:

    inr main(int argc, int **argv)。argv是一个指向字符的指针的指针,本质上还是指向包含多个字符串的数组。

    命令行界面允许使用双引号把多个单词识别成一个参数:

    test "I love you."

    这其中I love you.被认为是一个整体的参数。

    从Win32程序中的主函数中获取命令行参数

    在标准C或者Win32控制台程序的main函数中,它们都有两个参数:"argc" 和 "argv",如下所示: int main(int argc, char ...

    【WPF】如何获取命令行参数

    应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数. 而 WPF 应用程序比较特殊,因为在VS中 ...

    【Python学习 】Python获取命令行参数的方法

    背景 最近编写一个python程序的时候,需要去获取python命令行的参数,因此这里记录下如何获取命令行参数的方法. 一.sys 模块 在 Python 中,sys 模块是一个非常常用且十分重要的模 ...

    python获取命令行参数的方法(汇总)

    介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...

    MFC中获取命令行参数的几种方法

    在MFC程序中,可以用以下几种方法来获取命令行参数. 为方便说明,我们假设执行了命令:C:\test\app.exe -1 -2 方法一 ::GetCommandLine(); 将获取到 " ...

    go语言基础之获取命令行参数

    1.获取命令行参数 示例: package main //必须 import "fmt" import "os" func main() { list := o ...

    golang获取命令行参数

    部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库. 1.golang os库获取命令行参数 os可以通过变量Args来获取命令 ...

    &lbrack;GO&rsqb;获取命令行参数

    package main import ( "os" "fmt" ) func main() { list := os.Args n := len(list) ...

    python获取命令行参数

    python获取命令行参数 主要是通过sys的argv列表来获取命令行内容,命令行的参数以空格分隔放到argv列表中. import sys if __name__ == "__main__ ...

    随机推荐

    Entity Framework实现多列排序

    aList.OrderBy(a => a.WIndex).ThenBy(a=>a.KIndex) 类似sql:order by WIndex,KIndex

    AutoMapper 使用实践

    一.   使用意图 常常在开发过程中,碰到一个实体上的属性值,要赋值给另外一个相类似实体属性时,且属性有很多的情况.一般不利用工具的话,就要实例化被赋值实体B,然后再将实体A的字段一个个赋值给B的属性 ...

    Groovy入门经典 随书重点

    1 数值和表达式 1.1数值 整数是Integer类的实例 有小数部分的数值是BigDecimal类的实例 不同于java,没有基础数据类型 一切皆对象的概念重于java 1.2表达式 两个整数的除法 ...

    netsh用法

    netsh(Network Shell) 是一个windows系统本身提供的功能强大的网络配置命令行工具. 导出配置脚本:netsh -c interface ip dump > c:\inte ...

    nvm配置

    多版本安装方式 卸载已有的Node.js 下载nvm 在C盘创建目录dev 在dev目中中创建两个子目录nvm和nodejs 并且把nvm包解压进去nvm目录中 在install.cmd文件上面右键选 ...

    使用Windows Service Wrapper快速创建一个Windows Service 如nginx

    前言 今天介绍一个小工具的使用.我们都知道Windows Service是一种特殊的应用程序,它的好处是可以一直在后台运行,相对来说,比较适合一些需要一直运行同时不需要过多用户干预的应用程序,这一类我 ...

    IE6 select穿透问题&lpar;div 定位无法遮盖select&rpar;&excl;

    此问题,早有耳闻,可是一直都没有亲身碰到过,也就没有过多的去在意这些问题. 这一回总算是见识到了ie的厉害.虽是在ie选项中大大的写着ie版本号是ie11 .可是有些部分确实走的ie6的内核.怪不得微 ...

    NET-知识点:C&num;中Equals和&equals;&equals;比较

    第一.相等性比较 其实这个问题的的本质就是C#的相等比较,相等比较可以分两类: 1.引用相等性,引用相等性指两个对象引用均引用同一基础对象. 2.值相等性,值相等性指两个对象包含相同的一个或多个值,其 ...

    empty、isset、is&lowbar;null的比较

    直接上代码 <?php $a=0; $b='0'; $c=0.0; $d=''; $e=NULL; $f=array(); $g='\0'; $h=' ';//space $i=true; $j ...

    展开全文
  • windows平台下获取进程启动时间基于Powershell的cmdlet基于CMD的WMIC 基于Powershell的cmdlet 管理员身份运行powershell,执行以下命令: Get-Process | select ProcessName, Id,starttime |findstr "name" 其中...

    windows平台下通过命令行获取进程启动时间

    基于Powershell的cmdlet

    管理员身份运行powershell,执行以下命令:

    Get-Process | select ProcessName, Id,starttime |findstr "name"
    

    其中select 后面的三个选项分别列出了进程的名称PID以及启动时间。将name替换成需要查找的进程名称,即可通过findstr命令提取出目标进程。
    想获取进程其他信息,可直接执行Get-Process查看可用选项,加在命令中select的选项后面即可。

    基于CMD的WMIC

    WMIC全称Windows Management Instrumentation Command-line。运行cmd.exe,执行以下命令:

    wmic process where Name="process name" get CreationDate, ProcessId
    

    将其中的process name替换成需要查找进程的名称即可,这里需要使用带后缀的全称——比如想要查找cmd的信息,应该写Name="cmd.exe",而不是Name="cmd"。其中CreationDate获取了进程时间,ProcessId获取了PID
    想获取进程其他信息,可直接执行wmic process,查看第一行可用选项,添加载get的选项后面即可。

    展开全文
  • Windows命令之find命令

    2021-05-20 10:13:11
    1、获取命令帮助 使用 find /? 获取命令帮助 2、查找指定端口是否监听 使用find "端口号"过滤需要查找的端口 3、查找指定字符串(忽略大小写) 使用find /I “字符串” 忽略大小写查找指定字符串 4、统计包含指定...
  • Windows窗口命令大全

    千次阅读 2021-04-19 17:33:57
    DOS 面临着被淘汰的命运,但是因为它运行安全、稳定,有的用户还在使用,所以一般Windows 的各种版本都与其兼容,用户可以在Windows 系统下运行DOS,中文版Windows XP 中的命令提示符进一步提高了与DOS 下操作命令的...
  • windows.h> #include <tchar.h> #include <winternl.h> //如何获得其他进程的命令行信息? /* * 每一个进程里面都对应一个环境变量快PEB * 如果想要获得其他进程的命令行信息,首先就要获得其他...
  • 1把Windows符替换成UNIX换符:去掉windows下的回车符 (注意^M 在linux 下写法 按^M 是回车换符,输入方法是按住CTRL+v,松开v,按m)sed -i ’s/^M//g’ df.txt去掉windows下的回车符 (注意^M 在linux 下写法 按...
  • Jenkins &plus; svn &plus;... Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: ...Windows中杀死占用某个端口的进程Windows中杀死占用某个端口的进程 netstat...
  • findstr是window系统自带的命令,用途是查找指定的一个或多个文件文件中包含某些特定字符串的,并将该行完整的信息打印出来,或者打印查询字符串所在的文件名。通过管道符与其他命令结合使用,其用途和用法都类似...
  • Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。 MS-Dos 版本号 ...
  • 1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具...
  • windows 控制台操作命令

    千次阅读 2021-02-01 12:29:59
    在运行对话框中可以通过cmd /c 命令 和 cmd /k 命令 的方式来直接运行命令 /c表示执行完命令后关闭cmd窗口;/k表示执行完命令后保留cmd窗口 右键弹出快捷菜单,选择“标记(K)”,然后选中所需复制的内容,然后右键...
  • Troubleshoot Qt 执行CMD命令获取输出 二、使用步骤 1.QProcess执行CMD 命令 代码如下(示例): QProcess pro(this); pro.start("cmd", QStringList()<<"/c"<<"ping www.baidu.com");// QProcess...
  • Windows常用命令验证

    2020-12-25 13:05:54
    Windows常用命令验证一、常用命令实操1.ipconfig2.ping3.tracert4.ARP5.DHCP6.netstat7.DNS8.cache二、总结三、参考文献 一、常用命令实操 1.ipconfig 简介: 2.ping 3.tracert 4.ARP 5.DHCP 6.netstat 7.DNS 8....
  • 一些场景下需要获取进程的详细信息,如命令行commandline等,该怎么操作? 2.方案 使用wmic获取 服务显示名 为 "notepad.exe" 的caption、commandline信息, wmic process where caption="notepad.exe" get ...
  • windows中使用 wget命令

    2021-01-14 05:07:17
    000讲解对象:Windows wget作者:融水公子 rsgz介绍:wget命令原来是Linux里面的一个命令作用:用来批量下载文件特点:0.1 可以通过HTTP和FTP协议0.2 如果需要使用socks网关,可以获取socks库并编译wget以支持socks...
  • Windows Dos命令大全

    2021-01-02 16:49:58
    Windows的dos命令又是Windows的CMD命令。而cmd命令又是原来MS-DOS系统保留下来。 DOS来源路径与配置 对应的命令资源配置在windows的环境变量中: Windows DOS命令是基于配置好的Path环境变量,对DOS命令在Path路径...
  • Windows环境中,进行golang程序的开发,配置好go环境变量后,使用vscode编辑器开发、调试golang程序过程中,发现使用vscode的命令行终端无法识别环境变量参数。 查阅资料,发现大多写的都是设置vscode为“以管理...
  • Windows和Mac常用网络测试命令

    千次阅读 2021-09-29 23:25:09
    命令格式: ping [-t] [-a] [-n count] [-l size] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list -t 不停地ping目标主机直至中断 -a 以...
  • Windows cmd 命令

    2021-01-30 20:34:16
    windows 脚本语言学习 背景 绝大多数开发者的开发环境都是基于 windows 平台,那么如果掌握了基于这个平台的脚本语言,就能够编写一些我们自己的批处理工具,这样能有效提高我们的工作效率。接下来的内容讲解一下 ...
  • C语言使用cmd命令获取输出方法在实践中,我们有时候需要用C语言来调用cmd的命令,并得到执行的结果,这里给出一个简单的例子。#include // 描述:execmd函数执行命令,并将结果存储到result字符串数组中// 参数:cmd...
  • awk 命令:1、打印行号和内容:awk '{print NR":"$0}'2、输出:偶数和奇数到文件awk '{print $0.txt > NR%2.txt}' file3、打印出奇数内容:(三者等价)awk 'NR%2==1' fileawk 'NR%2' all_file.txtawk 'i=!i'...
  • 参考 Windows核心编程(第5版中文版) source code 04-ProcessInfo #include <windows.h> #include <winternl.h> #include <Psapi.h> typedef struct { DWORD Filler[4]; DWORD InfoBlockAddress...
  • /bin/bash var=$(cat 文件1) sed -i "1i "$var"" 文件2 转:使用awk命令获取文本的某一,某一列 1.打印文件的第一列(域) : awk '{print $1}' filename2.打印文件的前两列(域) : awk '{print ... Linux:使用awk...
  • 在linux和windows系统上查询IP地址的命令是不一样的。在linux中的命令行模式下,输入ifconfig即可查询到IP。而在windows系统下要查询IP地址需要先打开dos命令行,然后输入ipconfig。回车即可。注意,两个命令时不...
  • 常用的CMD命令1.1 设置变量命令set1.2 自定义DOS窗口color、title1.3 网络连接相关1.3.1 ping 命令1.3.2 telnet 命令1.3.3 网络适配器命令 ipconfig(修复--设置层面)1.3.4 路由信息查看--tracert1.4 Start 运行...
  • Python | 用Python获取Windows控制台输出

    千次阅读 2021-02-04 12:22:43
    1 os模块实现import oscmd = 'ping baidu.com'r = os.popen(cmd)for line in r.readlines():print (line)以上代码利用os.popen()指令获取了控制台的输出内容。结果示例:正在 Ping baidu.com [123.125.115.110] 具有...
  • 机器是双网卡,网卡驱动一样,而且还不知道本地IP地址,所以之前根据GetAdaptersInfo方法不通。 static int getFileContent(const string& file,string& data) { ifstream Osread(file); if (Osread....
  • 命令 说明 ping 通过向另一台 TCP/IP 计算机发送 Internet 控制消息协议 (ICMP) 回响请求消息来验证 IP 级连接。 pathping 提供有关源和目标之间的中间跃点网络延迟和网络丢失情况的信息。 hostname 显示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 190,836
精华内容 76,334
关键字:

windows获取命令行