1444 MACROSFUNC_ADD(iniread); 1445 MACROSFUNC_ADD(iniwrite);
1376 Value iniread(FunctionData* data) 1377 { 1378 checkArgs(__FUNCTION__, data, 4); 1379 std::string buffer; 1380 ::GetPrivateProfileStringUTF8(data->getstr(1), data->getstr(2), data->getstr(3), buffer, data->getstr(4)); 1381 return buffer; 1382 } 1383 1384 Value iniwrite(FunctionData* data) 1385 { 1386 checkArgs(__FUNCTION__, data, 4); 1387 return ::WritePrivateProfileStringUTF8(data->getstr(1), data->getstr(2), data->getstr(3), data->getstr(4)); 1388 }
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # # ---------- ini_Demo.kmm # ---------- Valid for KM 1.5.3 --------------- # # Dependencies : main.kmm # Resources : ini_Demo.ini # Preferences : - # Version : 0.2 6/24/09 JamesD # -------------------------------------------------------------------------------- _ini_Demo_RunCode{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_ini_Demo_Value = "Common" ; alert($_ini_Demo_Path, "Proposed file name", INFO); alert($_ini_Demo_Section, "Proposed section name", INFO); alert($_ini_Demo_Item, "Proposed item name", INFO); alert($_ini_Demo_Value, "Proposed item value", INFO); iniwrite($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode2{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_Value = iniread($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert($_Value, "item value", INFO); } _ini_Demo_RunCode3{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_ini_Demo_Value = "" ; iniwrite($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_BuildMenu{ # add another option to Help menu $_ini_Demo_Popm = "ini Demo Testing" ; setmenu("KMDocs",popup,$_ini_Demo_Popm,3); setmenu($_ini_Demo_Popm,"macro","Writing","_ini_Demo_RunCode"); setmenu($_ini_Demo_Popm,"macro","Reading","_ini_Demo_RunCode2"); setmenu($_ini_Demo_Popm,"macro","Delete item","_ini_Demo_RunCode3"); } _ini_Demo_GetPath{ ## assumes that "ini_Demo.kmm" is in UserMacroFolder $_ini_Demo_Path=getfolder(UserMacroFolder)."\\ini_Demo.ini"; } # - - - - - - - - - - - - - - - $OnStartup=$OnStartup."_ini_Demo_GetPath;"; $OnInit=$OnInit."_ini_Demo_BuildMenu;"; $macroModules=$macroModules."ini_Demo;";
Write ini file - works Read ini file - works Overwrite ini info - works Delete item from file - not as expected Delete section from file - not as expected Delete the ini file - works ( using JScript )
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # # ---------- ini_Demo.kmm # ---------- Valid for KM 1.5.3 --------------- # # Dependencies : main.kmm # Resources : ini_Demo.ini, ini_Demo.js # Preferences : - # Version : 0.5 6/25/09 JamesD # -------------------------------------------------------------------------------- _ini_Demo_RunCode{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_ini_Demo_Value = "Common" ; alert($_ini_Demo_Path, "Proposed file name", INFO); alert(" section name ".$_ini_Demo_Section."\n item name ".$_ini_Demo_Item."\n item value ".$_ini_Demo_Value, "Proposed field values", INFO); iniwrite($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode2{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_Value = iniread($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert($_Value, "item value", INFO); $_Value==""?0:alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode3{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_ini_Demo_Value = ; iniwrite($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); $_ini_Dtext1 = "As you can see, this does not delete \n" ; $_ini_Dtext2 = "the line as expected. The value for the \n " ; $_ini_Dtext3 = "item Orange has been set equal to blank." ; alert($_ini_Dtext1.$_ini_Dtext2.$_ini_Dtext3, "Delete item", INFO); } _ini_Demo_RunCode4{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = ; $_ini_Demo_Value = ; iniwrite($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); $_ini_Dtext1 = "As you can see, this does not delete \n" ; $_ini_Dtext2 = "the section as expected. The value for the \n " ; $_ini_Dtext3 = "item Orange is unchanged, and a blank \n" ; $_ini_Dtext4 = "equal blank line has been created. " ; alert($_ini_Dtext1.$_ini_Dtext2.$_ini_Dtext3.$_ini_Dtext4, "Delete item", INFO); } _ini_Demo_RunCode5{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Item = "Orange" ; $_ini_Demo_Value = "Unique" ; iniwrite($_ini_Demo_Section, $_ini_Demo_Item, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode6{ exec("wscript.exe \"".$_ini_Demo_JSpath."\" \"".$_ini_Demo_Path."\""); } _ini_Demo_BuildMenu{ # add another option to Help menu $_ini_Demo_Popm = "ini Demo Testing" ; setmenu("KMDocs",popup,$_ini_Demo_Popm,3); setmenu($_ini_Demo_Popm,"macro","Writing","_ini_Demo_RunCode"); setmenu($_ini_Demo_Popm,"macro","Reading","_ini_Demo_RunCode2"); setmenu($_ini_Demo_Popm,"macro","Delete item","_ini_Demo_RunCode3"); setmenu($_ini_Demo_Popm,"macro","Delete section","_ini_Demo_RunCode4"); setmenu($_ini_Demo_Popm,"macro","Overwrite item","_ini_Demo_RunCode5"); setmenu($_ini_Demo_Popm,"macro","Delete ini file","_ini_Demo_RunCode6"); } _ini_Demo_GetPath{ ## assumes that "ini_Demo.kmm" and "ini_Demo.js" are in UserMacroFolder $_ini_Demo_Path=getfolder(UserMacroFolder)."\\ini_Demo.ini"; $_ini_Demo_JSpath =getfolder(UserMacroFolder)."\\ini_Demo.js"; } # - - - - - - - - - - - - - - - $OnStartup=$OnStartup."_ini_Demo_GetPath;"; $OnInit=$OnInit."_ini_Demo_BuildMenu;"; $macroModules=$macroModules."ini_Demo;";
/* ini_Demo.js by JamesD, version 0.1 2009-06-25 This script is a helper application for the K-Meleon Macro Module ini_Demo.kmm that enables you to delete an ini file. Windows Script Host 2.0 (or better) required! WSH is part of Microsoft Internet Explorer 5.0 and newer. Latest version of WSH is available at http://msdn.microsoft.com/scripting/ */ var Current_iniFile_Path = WScript.Arguments(0); var obj = new ActiveXObject("Scripting.FileSystemObject"); if ( obj.fileExists(Current_iniFile_Path)) {obj.DeleteFile ( Current_iniFile_Path ); }
Quote
JujuLand
Hum, I don't think it's a good idea to use a wsh script. Instead of it, you can use the exec command:
exec("cmd /c del ".$inifile);
_ini_Demo_RunCode6{ #exec("wscript.exe \"".$_ini_Demo_JSpath."\" \"".$_ini_Demo_Path."\""); exec("cmd /c del ".$_ini_Demo_Path); }
iniwrite($_ini_Demo_Section, $_ini_Demo_Item, , $_ini_Demo_Path);
Microsoft Windows XP ver 5.1.2600 copyright line C:\Program Files\k-meleon>
return ::WritePrivateProfileStringUTF8(data->getstr(1), data->getstr(2), data->getstr(3), data->getstr(4));
iniwrite($_ini_Demo_Section, $_ini_Demo_Item, , $_ini_Demo_Path);
exec("cmd.exe /c del \"".$_ini_Demo_Path."\"");
exec("cmd /c ERASE \"".$_ini_Demo_Path."\"");
iniwrite($_ini_Demo_Section, $_ini_Demo_Item, , $_ini_Demo_Path);causes problems in error console. Invalid expression ,$_ini_Demo_Path); and wrong number of arguments - expected 4 found 2.
#$_ini_Demo_Value = ""; ## No delete, the value becomes blank #$_ini_Demo_Value = -0; ## No delete, the value becomes 0 #$_ini_Demo_Value = \n; ## No delete, the value becomes blank #$_ini_Demo_Value = \t; ## No delete, the value becomes blank $_ini_Demo_Value = ; ## No delete, the value becomes blankDoes anyone have another value that I can try?
The macro language empty string does not equate to the C++ NULL word when using iniwrite. Perhaps we need another macro language special string which could be \null. That may be too much like the \n for new line.Quote
desga2
In C++ you have NULL word to represent a null value but in K-Meleon Macro Language a null value is represented by an empty string "" or a 0 (zero).
Here are some examples to use utils kplugin in the macro.Quote
JujuLand
File testing or env reading must be present in mark307 utils kplugin.
# delete file. pluginmsgex(utils, "exist", $_ini_Demo_Path, STRING) ? pluginmsg(utils, "unlink", $_ini_Demo_Path) : ""; # select shell and run. $_cmd=pluginmsgex(utils, "GetOSVer", "Platform", STRING) == 2 ? "cmd.exe" : "command.com"; pluginmsgex(utils, "execex", $_cmd." /c del \"".$_ini_Demo_Path."\"", STRING); # get environment variable. alert(pluginmsgex(utils, "getenv", "PATH", STRING));thanks.
# K-Meleon Macros (http://kmeleon.sourceforge.net/wiki/index.php?id=MacroLanguage) # # ---------- ini_Demo.kmm # ---------- Valid for KM 1.5.3 --------------- # # Dependencies : main.kmm # Resources : ini_Demo.ini # Preferences : - # Version : 0.6 6/26/09 JamesD # -------------------------------------------------------------------------------- _ini_Demo_RunCode{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Key = "Orange" ; $_ini_Demo_Value = "Common" ; alert($_ini_Demo_Path, "Proposed file name", INFO); alert(" section name ".$_ini_Demo_Section."\n item name ".$_ini_Demo_Key."\n item value ".$_ini_Demo_Value, "Proposed field values", INFO); iniwrite($_ini_Demo_Section, $_ini_Demo_Key, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode2{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Key = "Orange" ; $_Value = "" ; $_Value = iniread($_ini_Demo_Section, $_ini_Demo_Key, $_ini_Demo_Value, $_ini_Demo_Path); alert($_Value, "item value", INFO); $_Value==""?0:alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode3{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Key = "Orange" ; #$_ini_Demo_Value = ""; ## No delete, the value becomes blank #$_ini_Demo_Value = -0; ## No delete, the value becomes 0 #$_ini_Demo_Value = \n; ## No delete, the value becomes blank #$_ini_Demo_Value = \t; ## No delete, the value becomes blank #$_ini_Demo_Value = ; ## No delete, the value becomes blank #$_ini_Demo_Value = '\0'; ## No delete, the value becomes blank #$_ini_Demo_Value = \0 ; ## No delete, the value becomes blank #$_ini_Demo_Value = null; ## No delete, the value becomes 'null' $_ini_Demo_Value = \null; ## No delete, the value becomes blank iniwrite($_ini_Demo_Section, $_ini_Demo_Key, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); $_Value = "" ; $_Value = iniread($_ini_Demo_Section, $_ini_Demo_Key, $_ini_Demo_Value, $_ini_Demo_Path); $_ini_Dtext1 = "As you can see, this does not delete \n" ; $_ini_Dtext2 = "the line as expected. The value for the \n " ; $_ini_Dtext3 = "key, Orange, has been set equal to " ; alert($_ini_Dtext1.$_ini_Dtext2.$_ini_Dtext3.$_Value.".", "Delete Key", INFO); } _ini_Demo_RunCode4{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Key = "" ; $_ini_Demo_Value = ""; iniwrite($_ini_Demo_Section, $_ini_Demo_Key, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); $_ini_Dtext1 = "As you can see, this does not delete \n" ; $_ini_Dtext2 = "the section as expected. The value for the \n " ; $_ini_Dtext3 = "Key Orange is unchanged, and a new \n" ; $_ini_Dtext4 = "key line has been created. " ; alert($_ini_Dtext1.$_ini_Dtext2.$_ini_Dtext3.$_ini_Dtext4, "Delete Section", INFO); } _ini_Demo_RunCode5{ $_ini_Demo_Section = "Dictionary" ; $_ini_Demo_Key = "Orange" ; $_ini_Demo_Value = "Unique" ; alert("This will change the value of key, Orange, to \"Unique\""); iniwrite($_ini_Demo_Section, $_ini_Demo_Key, $_ini_Demo_Value, $_ini_Demo_Path); alert(readfile($_ini_Demo_Path), "The file as written", INFO); } _ini_Demo_RunCode6{ exec("cmd /c ERASE \"".$_ini_Demo_Path."\""); ## For user of win9x operating systems, cmd should be replaced with Command in the above line } _ini_Demo_BuildMenu{ # add another option to Help menu $_ini_Demo_Popm = "ini Demo Testing" ; setmenu("KMDocs",popup,$_ini_Demo_Popm,3); setmenu($_ini_Demo_Popm,"macro","Writing","_ini_Demo_RunCode"); setmenu($_ini_Demo_Popm,"macro","Reading","_ini_Demo_RunCode2"); setmenu($_ini_Demo_Popm,"macro","Delete item","_ini_Demo_RunCode3"); setmenu($_ini_Demo_Popm,"macro","Delete section","_ini_Demo_RunCode4"); setmenu($_ini_Demo_Popm,"macro","Overwrite item","_ini_Demo_RunCode5"); setmenu($_ini_Demo_Popm,"macro","Delete ini file","_ini_Demo_RunCode6"); } _ini_Demo_GetPath{ ## assumes that "ini_Demo.kmm" and "ini_Demo.js" are in UserMacroFolder $_ini_Demo_Path=getfolder(UserMacroFolder)."\\ini_Demo.ini"; $_ini_Demo_JSpath =getfolder(UserMacroFolder)."\\ini_Demo.js"; } # - - - - - - - - - - - - - - - $OnStartup=$OnStartup."_ini_Demo_GetPath;"; $OnInit=$OnInit."_ini_Demo_BuildMenu;"; $macroModules=$macroModules."ini_Demo;";