资源脚本

PNG资源导出脚本 PNG资源导出脚本 1.支持netframework的resource文件 2.支持百度android的地图资源 阅读详情

主要功能

用来存放对话框,字符串,位图,图标,菜单等资源数据。因为资源不需编译,所以可直接修改资源而无需重新编译整个应用程序。

菜单

ID_MENU MENU DISCARDABLE

BEGIN

       POPUP "&File"

       BEGIN

              MENUITEM "&New",         IDM_NEW

              MENUITEM "&Open",         IDM_OPEN

              MENUITEM SEPARATOR

              MENUITEM "&Exit",           IDM_EXIT

       END

END

ID_MENU是资源ID,接着MENU是资源类型,DISCARDABLE关键字告诉系统在该资源没被用到时可以从内存中删除。POPUP指明File菜单项是附加在主菜单上的弹出式菜单。&后面的字符作为加速键分配给这个菜单项。语法比较清晰,很容易看懂。

在代码中使用该菜单资源:

HMENU hMenuMain, hMenu;

MapWindowPoints (hWnd, HWND_DESKTOP, &pt, 1);

pt.x += 5;

hMenuMain = LoadMenu (hInst, MAKEINTRESOURCE (ID_MENU));

hMenu = GetSubMenu (hMenuMain, 0);

TPMPARAMS tpm;

tpm.cbSize = sizeof (tpm);

GetClientRect (hWnd, &tpm.rcExclude);

TrackPopupMenuEx (hMenu, TPM_LEFTALIGN | TPM_TOPALIGN,

       pt.x, pt.y, hWnd, &tpm);

DestroyMenu (hMenuMain);

DestroyMenu (hMenu);

图标

ID_ICON ICON "res//WRENCH.ICO"

在代码中使用该图标资源:

HICON hIcon = (HICON)SendMessage(hWnd, WM_GETICON, FALSE, 0);

if (hIcon == 0)

{

       hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(ID_ICON), IMAGE_ICON, 16, 16, 0);

       SendMessage(hWnd, WM_SETICON, FALSE, (LPARAM)hIcon);

}

这段代码的功能是给窗口分配图标。

加速键

提供一种直接的方法,使一个按键组合可以触发WM_COMMAND消息并发送到一个窗口。

ID_ACCEL ACCELERATORS DISCARDABLE

BEGIN

       "E", IDM_EXIT, VIRTKEY, CONTROL

END

VIRTKEY代表这个字实际上是虚拟键,CONTROL表示Ctrl键必须同时按下。

在代码中使用该加速键资源:

HACCEL hAccel;

hAccel = LoadAccelerators (hInst, MAKEINTRESOURCE (ID_ACCEL));

MSG msg;

while (GetMessage (&msg, NULL, 0, 0))

{

       // Translate accelerators

       if (!TranslateAccelerator (hwndMain, hAccel, &msg))

       {

              TranslateMessage (&msg);

              DispatchMessage (&msg);

       }

}

这段代码首先加载加速键表,然后对消息循环做简单修改,以使加速键起作用。

位图

IDB_BITMAP BITMAP "res//abc.bmp"

在代码中使用该位图资源:

RECT rect;

GetClientRect (hWnd, &rect);


PAINTSTRUCT ps;

HDC hdc;

hdc = BeginPaint (hWnd, &ps);


HDC hdcMem = CreateCompatibleDC(hdc);

HBITMAP hBitmap = CreateCompatibleBitmap(hdc, 20, 20);

HBITMAP hOldMemBmp = (HBITMAP)SelectObject(hdcMem,hBitmap);


HDC hdcBmp = CreateCompatibleDC(hdc);

HANDLE hBmpDis = LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP), IMAGE_BITMAP, 0, 0, 0);

HBITMAP hOldBmp = (HBITMAP)SelectObject(hdcBmp,hBmpDis);

BitBlt(hdcMem, 0, 0, 20, 20, hdcBmp, 0, 0, SRCCOPY);


BitBlt(hdc, 0, 0, 20, 20, hdcMem, 0, 0, SRCCOPY);


SelectObject(hdcBmp,hOldBmp);

SelectObject(hdcMem,hOldMemBmp);

DeleteObject(hBitmap);

DeleteDC(hdcMem);

DeleteDC(hdcBmp);

 

EndPaint (hWnd, &ps);

这段代码采用双缓存绘制位图。

字符串

STRINGTABLE DISCARDABLE

BEGIN

       IDS_TEXT1, "Hello "

       IDS_TEXT2, "Windows CE!"

END

在代码中使用该字符串资源:

PBYTE pRes, pBuff;

int nStrLen = 0, i = 0;

pBuff = (PBYTE)LocalAlloc (LPTR, 8);

while (pRes = (PBYTE)LoadString (hInst, IDS_TEXT1 + i++, NULL, 0))

{

       // Get the length of the string resource

       int nLen = *(PWORD)(pRes-2) * sizeof (TCHAR);

       // Resize buffer

       pBuff = (PBYTE)LocalReAlloc (pBuff, nStrLen + 8 + nLen, LMEM_MOVEABLE | LMEM_ZEROINIT);

       if (pBuff == NULL) return 0;

       // Copy resource into buffer

       memcpy (pBuff + nStrLen, pRes, nLen);

       nStrLen += nLen;

}

 

*(TCHAR *)(pBuff + nStrLen) = TEXT ('/0');

LPTSTR pszText;

pszText = (LPTSTR)pBuff;

DrawText (hdc, pszText, -1, &rect,

       DT_CENTER | DT_VCENTER | DT_SINGLELINE);

这段代码输出字符串Hello Windows CE!

完整测试程序

HelloCE.rc

#include "windows.h"

#include "HelloCE.h"


//----------------------------------------------------------------------

// Main window dialog template

//

ProgWinCE DIALOG discardable 10, 10, 120, 65

STYLE  WS_OVERLAPPED | WS_VISIBLE | WS_CAPTION | WS_SYSMENU |

       DS_CENTER | DS_MODALFRAME

CAPTION "ProgWinCE"

BEGIN

    LISTBOX IDD_NETLIST, 2, 2, 116, 46,

                       WS_TABSTOP | WS_VSCROLL |

                       LBS_NOINTEGRALHEIGHT | LBS_USETABSTOPS

    PUSHBUTTON "Exit", IDC_EXIT, 2, 50, 55, 12, WS_TABSTOP

END


//----------------------------------------------------------------------

// Menu

//

ID_MENU MENU DISCARDABLE

BEGIN

       POPUP "&File"

       BEGIN

              MENUITEM "&New",         IDM_NEW

              MENUITEM "&Open",         IDM_OPEN

              MENUITEM SEPARATOR

              MENUITEM "&Exit",           IDM_EXIT

       END

END


//----------------------------------------------------------------------

// Icon

//

ID_ICON ICON "res//WRENCH.ICO"


//----------------------------------------------------------------------

// Accelorator

//

ID_ACCEL ACCELERATORS DISCARDABLE

BEGIN

       "E", IDM_EXIT, VIRTKEY, CONTROL

END


//----------------------------------------------------------------------

// Bitmap

//

IDB_BITMAP BITMAP "res//abc.bmp"


//----------------------------------------------------------------------

// String table

//

STRINGTABLE DISCARDABLE

BEGIN

       IDS_TEXT1, "Hello "

       IDS_TEXT2, "Windows CE!"

END

 

HelloCE.h

#define    ID_MENU         10

#define    IDM_NEW         100

#define    IDM_OPEN        101

#define    IDM_EXIT        102

#define    ID_ICON         11     

#define    ID_ACCEL        12

#define    IDB_BITMAP      13

#define    IDS_TEXT1       14

#define    IDS_TEXT2       15

#define    IDD_NETLIST     103

#define    IDC_EXIT        104


// Returns number of elements

#define dim(x) (sizeof(x) / sizeof(x[0]))


//----------------------------------------------------------------------

// Generic defines and data types

//

struct decodeUINT

{                                              // Structure associates

    UINT Code;                                 // messages

    LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);// with a function.

};

struct decodeCMD

{                                              // Structure associates

    UINT Code;                                 // menu IDs

    LRESULT (*Fxn)(HWND, WORD, HWND, WORD);    // with a function

};


//----------------------------------------------------------------------

// Function prototypes

//

HWND InitInstance (HINSTANCE, LPWSTR, int);

int TermInstance (HINSTANCE, int);

int ShowContextMenu (HWND hWnd, POINT pt);


// Window procedures

LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM);


// Message handlers

LRESULT DoPaintMain (HWND, UINT, WPARAM, LPARAM);

LRESULT DoDestroyMain (HWND, UINT, WPARAM, LPARAM);

LRESULT DoLButtonDownMain (HWND, UINT, WPARAM, LPARAM);

LRESULT DoCommandMain (HWND, UINT, WPARAM, LPARAM);


// Command functions

LPARAM DoMainCommandExit (HWND, WORD, HWND, WORD);


HelloCE.cpp

#include <windows.h>            

#include "helloce.h" 

#include <aygshell.h>

#pragma comment( lib, "aygshell" )


//----------------------------------------------------------------------

// Global data

//

const TCHAR szAppName[] = TEXT("ProgWinCE");

HINSTANCE hInst; // Program instance handle

LPTSTR pszText;


// Message dispatch table for MainWindowProc

const struct decodeUINT MainMessages[] =

{

    WM_PAINT, DoPaintMain,

    WM_DESTROY, DoDestroyMain,

       WM_LBUTTONDOWN, DoLButtonDownMain,

       WM_COMMAND, DoCommandMain,

};


// Command Message dispatch for MainWindowProc

const struct decodeCMD MainCommandItems[] =

{

       IDM_EXIT, DoMainCommandExit,

};


//======================================================================

// Program entry point

//

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

                    LPWSTR lpCmdLine, int nCmdShow)

{

    // Initialize this instance.

        HWND hwndMain;

    hwndMain = InitInstance (hInstance, lpCmdLine, nCmdShow);

    if (hwndMain == 0) return 0x10;


       // Load accelerator table.

       HACCEL hAccel;

       hAccel = LoadAccelerators (hInst, MAKEINTRESOURCE (ID_ACCEL));


       // Application message loop

       MSG msg;

       while (GetMessage (&msg, NULL, 0, 0))

       {

              // Translate accelerators

              if (!TranslateAccelerator (hwndMain, hAccel, &msg))

              {

                     TranslateMessage (&msg);

                     DispatchMessage (&msg);

              }

       }


    // Instance cleanup

    return TermInstance (hInstance, msg.wParam);

}


//----------------------------------------------------------------------

// InitInstance - Instance initialization

//

HWND InitInstance (HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow)

{

    // Save program instance handle in global variable.

    hInst = hInstance;


       // Load text from multiple string resources into one large buffer

       PBYTE pRes, pBuff;

       int nStrLen = 0, i = 0;

       pBuff = (PBYTE)LocalAlloc (LPTR, 8);

       while (pRes = (PBYTE)LoadString (hInst, IDS_TEXT1 + i++, NULL, 0))

       {

              // Get the length of the string resource

              int nLen = *(PWORD)(pRes-2) * sizeof (TCHAR);

              // Resize buffer

              pBuff = (PBYTE)LocalReAlloc (pBuff, nStrLen + 8 + nLen, LMEM_MOVEABLE | LMEM_ZEROINIT);

              if (pBuff == NULL) return 0;

              // Copy resource into buffer

              memcpy (pBuff + nStrLen, pRes, nLen);

              nStrLen += nLen;

       }


       *(TCHAR *)(pBuff + nStrLen) = TEXT ('/0');

       pszText = (LPTSTR)pBuff;


    // Register application main window class.

       WNDCLASS wc;

    wc.style = 0;                             // Window style

    wc.lpfnWndProc = MainWndProc;             // Callback function

    wc.cbClsExtra = 0;                        // Extra class data

    wc.cbWndExtra = 0;                        // Extra window data

    wc.hInstance = hInstance;                 // Owner handle

    wc.hIcon = NULL,                          // Application icon

    wc.hCursor = LoadCursor (NULL, IDC_ARROW);// Default cursor

    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);

    wc.lpszMenuName = NULL;                   // Menu name

    wc.lpszClassName = szAppName;             // Window class name


    if (RegisterClass (&wc) == 0) return 0;


    // Create main window.

       HWND hWnd;

    hWnd = CreateWindow (szAppName,           // Window class

                         TEXT("ProgWinCE"),   // Window title

                         // Style flags

                         WS_VISIBLE | WS_CAPTION | WS_SYSMENU,

                         CW_USEDEFAULT,       // x position

                         CW_USEDEFAULT,       // y position

                         CW_USEDEFAULT,       // Initial width

                         CW_USEDEFAULT,       // Initial height

                         NULL,                // Parent

                         NULL,                // Menu, must be null

                         hInstance,           // Application instance

                         NULL);               // Pointer to create

                                              // parameters

    if (!IsWindow (hWnd)) return 0;  // Fail code if not created.


    // Standard show and update calls

    ShowWindow (hWnd, nCmdShow);

    UpdateWindow (hWnd);


       HICON hIcon = (HICON)SendMessage(hWnd, WM_GETICON, FALSE, 0);

       if (hIcon == 0)

       {

              hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(ID_ICON), IMAGE_ICON, 16, 16, 0);

              SendMessage(hWnd, WM_SETICON, FALSE, (LPARAM)hIcon);

       }


    return hWnd;

}


//----------------------------------------------------------------------

// TermInstance - Program cleanup

//

int TermInstance (HINSTANCE hInstance, int nDefRC)

{

       LocalFree (pszText);

    return nDefRC;

}


//======================================================================

// Message handling procedures for main window

//

//----------------------------------------------------------------------

// MainWndProc - Callback function for application window

//

LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam,

                              LPARAM lParam)

{

    INT i;

    //

    // Search message list to see if we need to handle this

    // message.  If in list, call procedure.

    //

    for (i = 0; i < dim(MainMessages); i++)

       {

        if (wMsg == MainMessages[i].Code)

            return (*MainMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);

    }

    return DefWindowProc (hWnd, wMsg, wParam, lParam);

}


//----------------------------------------------------------------------

// DoPaintMain - Process WM_PAINT message for window.

//

LRESULT DoPaintMain (HWND hWnd, UINT wMsg, WPARAM wParam,

                     LPARAM lParam)

{

    // Get the size of the client rectangle

       RECT rect;

       GetClientRect (hWnd, &rect);


       PAINTSTRUCT ps;

       HDC hdc;

       hdc = BeginPaint (hWnd, &ps);

       // DrawText (hdc, TEXT ("Hello Windows CE!"), -1, &rect,

       //          DT_CENTER | DT_VCENTER | DT_SINGLELINE);

       DrawText (hdc, pszText, -1, &rect,

              DT_CENTER | DT_VCENTER | DT_SINGLELINE);


       HDC hdcMem = CreateCompatibleDC(hdc);

       HBITMAP hBitmap = CreateCompatibleBitmap(hdc, 20, 20);

       HBITMAP hOldMemBmp = (HBITMAP)SelectObject(hdcMem,hBitmap);


       HDC hdcBmp = CreateCompatibleDC(hdc);

       HANDLE hBmpDis = LoadImage(hInst,MAKEINTRESOURCE(IDB_BITMAP), IMAGE_BITMAP, 0, 0, 0);

       HBITMAP hOldBmp = (HBITMAP)SelectObject(hdcBmp,hBmpDis);

       BitBlt(hdcMem, 0, 0, 20, 20, hdcBmp, 0, 0, SRCCOPY);


       BitBlt(hdc, 0, 0, 20, 20, hdcMem, 0, 0, SRCCOPY);


       SelectObject(hdcBmp,hOldBmp);

       SelectObject(hdcMem,hOldMemBmp);

       DeleteObject(hBitmap);

       DeleteDC(hdcMem);

       DeleteDC(hdcBmp);


       EndPaint (hWnd, &ps);

    return 0;

}


//----------------------------------------------------------------------

// DoDestroyMain - Process WM_DESTROY message for window.

//

LRESULT DoDestroyMain (HWND hWnd, UINT wMsg, WPARAM wParam,

                       LPARAM lParam)

{

    PostQuitMessage (0);

    return 0;

}


//----------------------------------------------------------------------

// DoLButtonDownMain - Process WM_LBUTTONDOWN message for window.

//

LRESULT DoLButtonDownMain (HWND hWnd, UINT wMsg, WPARAM wParam,

                                             LPARAM lParam)

{

       POINT pt;

       int rc;


       // Display the menu at the point of the tap

       pt.x = LOWORD (lParam);

       pt.y = HIWORD (lParam);


       SHRGINFO sri;

       sri.cbSize = sizeof (sri);

       sri.dwFlags = 1;

       sri.hwndClient = hWnd;

       sri.ptDown = pt;


       // See if tap and hold

       rc = SHRecognizeGesture (&sri);

       if (rc == 0) return 0;


       // Display the menu at the point of the tap

       ShowContextMenu (hWnd, pt);

       return 0;

}


//----------------------------------------------------------------------

// ShowContextMenu - Display a context menu

//

int ShowContextMenu (HWND hWnd, POINT pt) {

       HMENU hMenuMain, hMenu;


       // Display the menu at the point of the tap

       MapWindowPoints (hWnd, HWND_DESKTOP, &pt, 1);

       pt.x += 5;


       hMenuMain = LoadMenu (hInst, MAKEINTRESOURCE (ID_MENU));

       hMenu = GetSubMenu (hMenuMain, 0);

       TPMPARAMS tpm;

       tpm.cbSize = sizeof (tpm);

       GetClientRect (hWnd, &tpm.rcExclude);

       TrackPopupMenuEx (hMenu, TPM_LEFTALIGN | TPM_TOPALIGN,

              pt.x, pt.y, hWnd, &tpm);

       DestroyMenu (hMenuMain);

       DestroyMenu (hMenu);

       return 0;

}


//----------------------------------------------------------------------

// DoMainCommandExit - Process Program Exit command.

//

LPARAM DoMainCommandExit (HWND hWnd, WORD idItem, HWND hwndCtl,

                                            WORD wNotifyCode)

{

       SendMessage (hWnd, WM_CLOSE, 0, 0);

       return 0;

}


//----------------------------------------------------------------------

// DoCommandMain - Process WM_COMMAND message for window.

//

LRESULT DoCommandMain (HWND hWnd, UINT wMsg, WPARAM wParam,

                                      LPARAM lParam)

{

       WORD idItem, wNotifyCode;

       HWND hwndCtl;

       int  i;


       // Parse the parameters.

       idItem = (WORD) LOWORD (wParam);

       wNotifyCode = (WORD) HIWORD(wParam);

       hwndCtl = (HWND) lParam;


       // Call routine to handle control message.

       for (i = 0; i < dim(MainCommandItems); i++) {

          if (idItem == MainCommandItems[i].Code)

                 return (*MainCommandItems[i].Fxn)(hWnd, idItem, hwndCtl,

                 wNotifyCode);

       }

       return 0;

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/joyzml/archive/2011/04/01/6295637.aspx

Linux系统资源监控脚本 系统资源监控脚本 在这里插入代码片#!/bin/bash #show system information PS3="Your choice is:" os_check() { if [ -e /etc/redhat-release ]; then REDHAT = `cat /etc/redhat-release` | awk '{print $1}' else DEBIAN = ... 阅读详情

相关推荐

各种脚本

各种CTF脚本

脚本

特别声明:关于近期CK预期事件的声明 特别声明: 本仓库发布的MyActions项目中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确,可行和有效,请根据情况自行判断。 本项目内所有资源文件,禁止任何公众号,自媒体进行任何形式的转载,发布。 shuye72对任何脚本问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害。 间接使用脚本的任何用户,包括但不限于建立VPS或在某些行为上违反国家/地区法律或相关法规的情况下进行传播,shuye72对于可能引起的任何泄漏或其他后果概不负责。 请勿将MyActions项目的任何内容用于商业或非法目的,否则后果自负。 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关脚本。 shuye72保留随时更改或补充此免责声明的权利。多次

脚本:个人脚本和库的集合

剧本 个人脚本的集合。 某些方法可以追溯到过去,有些需要完全重写,但90%完全可用。 bigpkg.py 按大小列出Archlinux的已安装软件包。 艾伦·麦克雷(Allan McRae) cert-hashing.sh 散列SSL证书 clitwitter.py 使用基本身份验证在Twitter上发布的旧脚本。 需要使用OAuth更新,但此后我已切换到TTYtter compare_images.py 用于比较目录中图像的相似性的脚本。 它仅返回列表中相似但不相同的那些。 此刻,列表包含所有至少具有另一个非常相似的图像,但不检查它们是否与列表中的所有其他图像相似,最终以不同的相似图像对结束,但并非全部非常相似。 我发现重复一次循环以检查彼此之间的所有图像或为每组相似图像返回不同列表的时间太长 cortex_reddits.py 使用Reddit客户端皮质浏览(子)reddit

软件、脚本资源搜索平台推荐

通过这篇文章下载油猴以及浏览器主页脚本,这两个浏览器主页都非常好用,可以在主页上设置很多工具组件,在程序一栏都有不少适合开发人员的工具、网站。下载并安装uTools工具,在uTools面板中也可以搜索添加许多非常有用的工具,例如:OCR文字识别、everything文件搜索。这是一个公众号,关注后可以看到最近up主发布的工具、脚本推荐,好处就是需要某个需求时可能就会想起来之前他的推荐。最近网站访问不了,可以关注公众号,这个平台不仅是工具、脚本,反正很多资源都可以找到。

m0_53951384的博客 2043

unity资源加载和卸载(脚本加载卸载,资源序列化后的结构,bundle内的序列化结构)

转自:https://www.cnblogs.com/zblade/p/11095338.html 一、概要 在了解unity的资源管理方式之后,接下来细谈一下Unity的资源是如何从磁盘中加载到运行时的内存中,以及又是如何被卸载的。这部分较为繁琐,可能会写较多的过程。 二、脚本资源的加载和卸载 在unity中的脚本资源,大体可以分为C++编译的引擎dll文件,c#编译的dll文件,lua脚本文件(基于lua热更的方式下)。 2.1 dll文件的加载和卸载 在工程的Library/Scri.

折戟 1484

资源化的脚本ScriptableObject

文章目录1.创建可资源化的脚本2.资源脚本3.资源读取 脚本继承ScriptableObject,即可创建可资源化的脚本。 1.创建可资源化的脚本 //可进行资源化处理的脚本需要继承自ScriptableObject //对应的数据需要可以序列化 //添加CreateAssetMenu可以直接再Create-ScriptableTest中创建 [CreateAssetMenu] public c...

qq_37833413的博客 1098

VC资源脚本

<br />  资源脚本,它是一个简单的文本文件,可以手工编辑,也可以让Visual   C++自动编辑,或者你用其它的自动编辑器编辑。无论如何,资源脚本文件要有一个.rc的扩展名。大多数的脚本文件都从定义资源行开始,最简单的资源行通常要用到资源类型,就像这样: <br /><br />  [identifier]     [resource   type]       [filename] <br />【标识符】   【资源类型】   【文件名称】 <br /><br />标识符可以用两种方式表示:一种是

tlovet1314的专栏 4797

CPU资源的shell脚本

CPU资源的shell脚本 使用死循环消耗CPU资源,如果服务器是有多颗CPU,可以选择消耗多少颗CPU的资源: #! /bin/sh # filename killcpu.sh for i in `seq $1` do echo -ne " i=0; while true do i=i+1; done" | /bin/sh & pid_array[$i]

zhangfn2011的专栏 770

Metasploit之——资源脚本的使用方法

转载请注明出处:https://blog.csdn.net/l1028386804/article/details/86669528 Metasploit可以通过资源脚本实现自动化——使用资源脚本可以免去手动设置选项,实现选项的自动化设置,从而节省配置模块选项和攻击载荷所花费的时间。 创建资源脚本有两种方法:手动创建脚本或使用makerc命令创建脚本。makerc命令将之前输入过的所有命令都保...

冰河的专栏 1738

脚本APP

脚本APP

PLC脚本函数编程

基恩士PLC脚本函数编程

WinCE脚本解析程序(写写文本就能做很多意想不到的事情)

简介:CETool是一个WinCE的辅助程序,使用C语言和Windows API编写,作了一些特殊处理以同时支持WinCE5和WinCE6,主要实现shell中的功能,提供的各种操作涉及到文件系统、窗口管理、进程管理和流程控制几个方面,通过解析配置文件内容来执行相应的操作,属于一种脚本解析程序。程序有以下特点:1. 程序一般是在原路径执行,比如一开始就放置在\Storage Card\目录下,即打开后就以\Storage Card\为工作目录开始处理各项操作。考虑到在程序运程过程中可能要对程序所在分区(或磁盘)进行格式化(或者是移除SD卡)等操作,故添加了一项“自我复制到内存中运行”的功能,即启动后先检测工作目录是不是在内存虚拟出来根目录"\"下,如果不是则先对自身进行复制再重新加载复制后的可执行文件,以便后续的SD移除、或者格式化等操作。对于配置文件,因为是一开始就读进内存中的,所以无需进行复制。此功能一般都不需要使用,即直接在原来的路径运行即可,如需开始此功能,只需将配置文件的文件名从CETool.ini改为_CETool.ini即可。 2. 程序在一次性加载完配置文件后,接着逐行去解析文件内容,遇到注释行或者是格式不正确的行则跳过该行,配置文件有以下特点: (1)配置文件无大小限制,仅取决于物理内存大小,支持Unicode与ANSI编码的文件格式; (2)配置文件中每行的长度无限制,但某些操作的参数对长度有一定限制,如创建目录时,作为目录名的参数的长度有限制(这是文件系统和API的问题)。 (3)各个操作放置的位置、出现的次数无限制。 (4)每一行中的子操作数量无限制。 (5)具有合理的严格性和纠错处理,每一行中在'='后边非关键字处可随意添加空格、制表符、逗号,不影响正常解析,关键内容可以加上引号(单引号和双引号的区别,将在后述提到),如包含空格的路径、参数等。详细介绍参数特殊说明。 3. 支持相对路径的表示方式。参考特殊说明。 4. 支持从文件读入并作为参数的方式(即配置文件中嵌入其它文件,嵌套层数无限制,一般为临时创建的文件,一些不确定参数可以先保存到临时文件,再用此程序读取)。参考特殊说明。5. 支持VB代码嵌入,方便变量使用、判断、循环(这些还有些问题需要解决,将在CETool v2.0中实现)。 此程序涉及内容: 此程序涉及到一些Windows和C语言的基础知识,包括文件系统、注册表、进程、线程、窗口、事件、消息、进程间与线程间通信、脚本、动态库、递归、回调、多维指针、函数指针、数据结构、加密算法等。

JS脚本集合 大全 JS脚本集合 大全

JS脚本集合 大全 JS脚本集合 大全

JS脚本大全各类常用脚本

JS常用脚本大全,JS常用脚本大全,JS常用脚本大全,JS常用脚本大全,JS常用脚本大全,JS常用脚本大全,

消耗CPU资源的shell脚本

使用死循环消耗CPU资源,如果服务器是有多颗CPU,可以选择消耗多少颗CPU的资源。 代码:#! /bin/sh # filename killcpu.sh if [ $# != 1 ] ; then echo "USAGE: $0 " exit 1; fi for i in `seq $1` do echo -ne " i=0; while true do

jbxue123的专栏 2836

抽取plist资源脚本

抽取plist资源脚本 分类: shell 2015-01-21 12:18 7人阅读 评论(0) 收藏 举报 c++unix #!/bin/bash foreachd() { for file in $1/*;  do if [ -d $file ]; then foreachd $file; elif [ -f $file ]; then if [[ $file

navno1的专栏 515

Unity 通过脚本修改源资源

本文详解Unity中游戏资源的临时与永久修改方法。自动实例化机制(如renderer.material)确保运行时修改仅作用于副本,适合临时效果,安全无风险;带"shared"前缀的属性(如renderer.sharedMaterial)会直接修改源资源,永久生效且不可撤销,需谨慎使用。特别指出Texture2D和TerrainData资源不会自动实例化,任何修改都会直接改变源文件。开发者应严格区分两种修改方式,合理选择实现方案,避免误操作导致的资源损坏。

分享知识,拥抱变化 1453
上一篇: 鼠标指针的隐藏
下一篇: Wince Cab Manager使用方法
xiaolei05
博客等级 码龄17年 127粉丝 138原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值