📄 sample7_1.c
字号:
///windows include file////#include <windows.h> #include <winreg.h>///cvi include file////#include <ansi_c.h> #include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */#include <userint.h>#include "sample7_1.h"static int panelHandle;char FPfilename[100][260],ver[5]={"5.0"},subkey[250];int fileNum,changed=0;int ReadLibrary(void) ;void InitList(int num) ;int main (int argc, char *argv[]){ if (InitCVIRTE (0, argv, 0) == 0) /* Needed if linking in external compiler; harmless otherwise */ return -1; /* out of memory */ if ((panelHandle = LoadPanel (0, "sample7_1.uir", PANEL2)) < 0) return -1; DisplayPanel (panelHandle); RunUserInterface (); return 0;}int CVICALLBACK Select (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int ret; char pathName[260]; switch (event) { case EVENT_COMMIT: ret=FileSelectPopup ("c:\\", "*.fp", "*.fp,*.lfp", "选择驱动器文件", VAL_LOAD_BUTTON, 0, 1, 1, 0, pathName); if(ret!=VAL_EXISTING_FILE_SELECTED) return 0; changed=1; strcpy( FPfilename[fileNum],pathName); InsertListItem (panelHandle, PANEL_LISTBOX, fileNum, pathName,pathName); fileNum++; SetCtrlAttribute (panelHandle, PANEL_DELETE, ATTR_DIMMED, 0); break; } return 0;}int CVICALLBACK Delete (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int i,SelectIndex; switch (event) { case EVENT_COMMIT: changed=1; GetCtrlIndex (panelHandle, PANEL_LISTBOX, &SelectIndex); DeleteListItem (panelHandle, PANEL_LISTBOX, SelectIndex, 1); fileNum--; if(fileNum==0) SetCtrlAttribute (panelHandle, PANEL_DELETE, ATTR_DIMMED, 1); for(i=SelectIndex;i<fileNum;i++) strcpy(FPfilename[i],FPfilename[i+1]); break; } return 0;}int CVICALLBACK Apply (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ char temp[20]; int result,i,FileNameLen; HKEY key; switch (event) { case EVENT_COMMIT: RegOpenKeyEx(HKEY_CURRENT_USER,subkey,0,KEY_ALL_ACCESS,&key); for(i=1;;i++) { sprintf(temp,"LibraryFPFile%d",i); result=RegDeleteValue( key,temp); if(result!=ERROR_SUCCESS) break; } for(i=1;i<fileNum+1;i++) { sprintf(temp,"LibraryFPFile%d",i); RegSetValueEx(key,temp,0,REG_SZ,FPfilename[i-1],strlen(FPfilename[i-1])+1); } RegCloseKey (key); break; } return 0;}int CVICALLBACK Cancel (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0;}int ReadLibrary(void){ char temp[20]; int result,i,FileNameLen; HKEY key; RegOpenKeyEx(HKEY_CURRENT_USER,subkey,0,KEY_ALL_ACCESS,&key); for(i=1;;i++) { sprintf(temp,"libraryfpfile%d",i); FileNameLen=260; result=RegQueryValueEx(key,temp,NULL,NULL,FPfilename[i-1],&FileNameLen) ; if(result!=ERROR_SUCCESS) { i--; break; } } RegCloseKey (key); return i;}void InitList(int num){ int i=0; DeleteListItem (panelHandle, PANEL_LISTBOX,0 ,-1 ); for(i=0;i<num;i++) InsertListItem (panelHandle, PANEL_LISTBOX, i, FPfilename[i],FPfilename[i] ); SetActiveCtrl (panelHandle, PANEL_SELECT); }int CVICALLBACK OK (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL2_RING, ver); sprintf(subkey,"Software\\National Instruments\\cvi\\%s\\libraries",ver); DiscardPanel(panelHandle); panelHandle=LoadPanel (0, "sample7_1.uir", PANEL); DisplayPanel (panelHandle); fileNum=ReadLibrary(); if(fileNum>0) InitList(fileNum); else SetCtrlAttribute (panelHandle, PANEL_DELETE, ATTR_DIMMED, 1); break; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -