Win32 API功能封装
+ -

Win32进程参数处理

2024-09-11 0 0

参数的内存申请

 HANDLE  handle = GetProcessHeap();//获取默认的堆
 LPVOID  pMem = HeapAlloc(handle, 0, 0x1400ui64);
 if(pMem)
 {
     memset_0(pMem, 0, 0x1400ui64);
 }
//代码处理
if(pMem)
{
   handle = GetProcessHeap();
    HeapFree(handle, 0, pMem);
}

命令行解析

#include <windows.h>
#include <stdio.h>
#include <shellapi.h>

int __cdecl main()
{
   LPWSTR *szArglist;
   int nArgs;
   int i;

   szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
   if( NULL == szArglist )
   {
      wprintf(L"CommandLineToArgvW failed\n");
      return 0;
   }
   else 
   {
           for( i=0; i<nArgs; i++) 
               printf("%d: %ws\n", i, szArglist[i]);
   }

// Free memory allocated for CommandLineToArgvW arguments.

   LocalFree(szArglist);
   return(1);
}

另外附加的参数可选项有:

  • 通过注册表引入,其注册表路径为:
    计算机\HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup
    
    项名为CmdLine
  • 通过配置文件引入,其路径为:
    %systemdrive%\\Users\\Default\\AppData\\Local\\Microsoft\\Windows\\WSUS\\SetupConfig.ini
    

0 篇笔记 写笔记

WinMain的命令行参数解析
一般情况下,当我们开发标准C或者Win32控制台程序的程序时,其函数入口为main,运行时库已经帮我们解析好了参数,我们直接使用2个参数:”argc” 和 “argv”,就可以获取到各个参数.int main(int argc, char * argv[]) { int i=0; ......
快速调出Windows音频控制面板命令行
VC可可以直接调用:WinExec("rundll32.exe shell32.dll, Control_RunDLL mmsys.cpl", SW_HIDE);或者在命令行中运行rundll32.exe shell32.dll, Control_RunDLL mmsys.......
ARP 命令行工具
ARP命令常见用法arp -aarp –g用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。arp -a Ip如......
Win32进程参数处理
参数的内存申请 HANDLE handle = GetProcessHeap();//获取默认的堆 LPVOID pMem = HeapAlloc(handle, 0, 0x1400ui64); if(pMem) { memset_0(pMem, 0, 0x1400ui64);......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!