public void SairImacros() { if (instanciaImacros > 0) { try { /* Se o form por algum motivo fechar e a instância do imacros for destruída antes do método destrutor ser chamado, * a exceção ocorrerá e o número de instâncias será decrementado, evitando erro ao tentar destruir uma instância que não existe mais em memória*/ iim.iimExit(); instanciaImacros--; } catch (Exception) { instanciaImacros--; } } else { instanciaImacros--; } }
static public Status Run(string content, string fileId) { try { File.WriteAllText("D:/Files/mac" + fileId + ".iim", content); int timeout = 60, errors = 0; iMacros.Status status; var app = new iMacros.App(); status = app.iimInit("-V7", true, "", "", "", timeout); if (status != iMacros.Status.sOk) { errors++; } string macro = "D:/Files/mac" + fileId + ".iim"; status = app.iimDisplay("Interface version =\n" + app.iimGetInterfaceVersion().ToString(), timeout); if (status != Status.sOk) { return(status); } status = app.iimPlay(macro, timeout); if (status != Status.sOk) { return(status); } status = app.iimExit(timeout); if (status != Status.sOk) { return(status); } return(status); } catch (Exception) { throw; } }