天道酬勤,学无止境

Is it possible to launch the taskpane if certain conditions are met?

I want the user to press on a command button which will run an API. If the API returns results, I want this to launch the taskpane and then display the result of the API.

Is this possible?

评论

If we speak about web add-ins the task pane is launched by the button click independently of API results. At runtime you may decided what to display on the task pane.

But if you mean a custom task pane as a part of COM add-in you can do whatever you like - hide, show and etc.

For web add-ins, launching a task pane after running some code/API is not possible today. We track Outlook add-in feature requests on our Tech Community Page. Please submit your request there and choose the appropriate label(s). Feature requests on Tech Community are considered, when we go through our planning process.

Here are two alternatives I would suggest considering to see if they can work for your scenario

  1. adding a command with ExecuteFunction as an action https://docs.microsoft.com/en-us/office/dev/add-ins/reference/manifest/functionfile and launching a dialog (displayDialogAsync)
  2. Or, run ExecuteFunction that adds notification message with an action link that user can click to open a taskpane https://docs.microsoft.com/en-us/javascript/api/outlook/office.notificationmessageaction?view=outlook-js-preview

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 具有任务窗格和内容的 Office 加载项?(Office add-in with both taskpane and content?)
    问题 我整晚都在找这个,找不到。 是否可以拥有同时包含内容和任务窗格组件的 Excel/Office 加载项? 真的,我想要一个内容应用程序,但我想要功能区和任务窗格中的额外选项/按钮,以触发我的内容应用程序中的不同操作/更改。 每当我尝试将VersionOverrides xml 节点添加到内容应用程序的清单时,它总是失败。 我的按钮都没有出现。 我能找到的所有示例都具有命名空间[...]/taskpaneappversionoverrides 。 我试过将其更改为[...]/contentappversionoverrides但这也不起作用。 我想要这个的原因是因为插入一个内容应用程序是迟钝的,因为你必须去插入>我的插件>选择插件。很难找到。 但是当他们安装了一个任务面板插件时触发操作真的很容易。 <VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0"> <Hosts> <Host xsi:type="Workbook"> <DesktopFormFactor> <GetStarted> ... custom tab, groups, buttons, etc 回答1
  • What is the equivalent of System.Diagnostics.Debugger.Launch() in unmanaged code?
    I need to launch a debugger from my native C++ program when certain conditions are met. In C# I just call System.Diagnostics.Debugger.Launch(). I thought that Win32 DebugBreak() call will do what I want, but it just terminates the application if there is no debugger present. How do I launch a new instance of the debugger (the famous "Possible debuggers" dialog) from native code? Is it even possible? I could try to use COM to create a new instance of Visual Studio, but it is kinda complicated, and will also lock me to a particular version of VS.
  • Shiny in R:如果不满足某些条件,我如何从 renderPlot 淡出我的 plotOutput?(Shiny in R: How can I fade-out my plotOutput from renderPlot if certain conditions are not met?)
    问题 问题很简单。 首先,我在渲染图中尝试了一个 if-else 条件。 就像是 if (input$Next > 0) { plot(...) } else { return() } 这没有用。 即使尚未满足条件,也会显示稍后放置地块的灰色区域。 在下一步中,我尝试使用验证(请参阅此处)。 我基本上复制了给定示例中的代码。 但是,当条件实际上不满足时,它仍然显示灰色区域。 我目前的尝试如下: 用户界面 shinyUI(fluidPage( sidebarPanel( plotOutput("test"), actionButton("Next", "Next") )) 服务器 shinyServer(function(input, output, session) { function(input, output) { output$test <- renderPlot({ validate( need(input$Next > 0) ) pt <- plot(input$Next,2) print(pt) }) } }) plot 函数仅用于说明。 我的看起来不一样。 任何帮助表示高度赞赏! 回答1 第一种可能性- 条件面板 如果actionButton被按下,我们想显示plotOutput 。 更具体地说,如果input.Next > 0 。
  • Outlook Add-In cookies on closing taskpane
    I have created an outlook add-in which has a login page and a protected page. When the user launches the add-in, the protected page is attempted to be loaded, if the user session is not valid the user gets redirected to login page. Once logged in, until the cookie expiration, the user never needs to login again even if the task pane is closed. This is working as expected in Outlook 15.4. But in Outlook v16.9, the behavior seems having changed. It looks like when the task pane is closed, the cookies are being cleared out and every time the user tries to open the task pane, the login page is
  • System.Diagnostics.Debugger.Launch() 在非托管代码中的等价物是什么?(What is the equivalent of System.Diagnostics.Debugger.Launch() in unmanaged code?)
    问题 当满足某些条件时,我需要从我的本机 C++ 程序启动调试器。 在 C# 中,我只调用 System.Diagnostics.Debugger.Launch()。 我认为 Win32 DebugBreak() 调用会做我想要的,但如果没有调试器,它只会终止应用程序。 如何从本机代码启动调试器的新实例(著名的“可能的调试器”对话框)? 甚至有可能吗? 我可以尝试使用 COM 创建 Visual Studio 的新实例,但它有点复杂,并且还会将我锁定到特定版本的 VS。 回答1 我发现可以使用当前进程的 PID 直接调用 vsjitdebugger.exe。 确保在 Visual Studio 中的 Tools->Options->Debugging->Just-in-Time 中选择了“Native”。 这是用于启动调试器的 C++ 代码。 它使用各种 Win32 API 的 UNICODE 版本。 我得到系统目录,因为 CreateProcess() 不使用 PATH。 bool launchDebugger() { // Get System directory, typically c:\windows\system32 std::wstring systemDir(MAX_PATH+1, '\0'); UINT nChars = GetSystemDirectoryW(
  • 无法确定条件表达式的类型,因为“ int”和“ int”之间没有隐式转换(Type of conditional expression cannot be determined because there is no implicit conversion between 'int' and <null>)
    问题 为什么不编译? int? number = true ? 5 : null; 无法确定条件表达式的类型,因为'int'和<null>之间没有隐式转换 回答1 规范(第7.14节)说,对于条件表达式b ? x : y b ? x : y ,存在三种可能性, x和y都具有类型并且满足某些良好条件,仅x和y中的一个具有类型并且满足某些良好条件,或者发生编译时错误。 在这里,“一定的条件”意味着某些转换是可能的,我们将在下面详细介绍。 现在,让我们来看一下规范的相关部分: 如果x和y只有一个具有类型,并且x和y都可以隐式转换为该类型,则这就是条件表达式的类型。 这里的问题是 int? number = true ? 5 : null; 条件结果中只有一个具有类型。 这里x是一个int常量,而y是没有类型的null ,并且null不能隐式转换为int 1 。 因此,不满足“某些良好条件”,并且会发生编译时错误。 这种情况有解决方法有两种: int? number = true ? (int?)5 : null; 在这里,我们仍然处于x和y中只有一个具有类型的情况。 请注意, null仍然没有类型,但是编译器对此不会有任何问题,因为(int?)5和null都可以隐式转换为int? (第6.1.4节和第6.1.5节)。 显然,另一种方法是: int? number = true ? 5
  • 仅在满足特定条件时才设置 Wix 属性(Set Wix property only if certain condition is met)
    问题 我想做的是: <Property Id="LICENSEKEYPATH"> REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE <DirectorySearch Id="ProgramDataSearch" AssignToProperty="yes" Depth="4" Path="[#ProductDirInAppData]"> <FileSearch Id="LicenseFileSearch" Name="lic-conf.enp"/> </DirectorySearch> </Property> 当我的应用程序被卸载时,我才想搜索许可证文件并获取其路径。 目前,虽然代码没有给出任何错误,但即使我正在安装文件,它仍然会搜索许可证文件路径。 因此,设置会延迟很长时间。 更重要的是,wix 设置显示在第一个屏幕中,其效果是搜索此属性,然后继续其他屏幕。 那么,如何仅在卸载期间搜索文件或设置属性值? 回答1 您可以使用 SetProperty 元素控制属性的设置。 这只是注册自定义操作的快捷方式。 您可以使用文本元素中的条件控制 SetProperty 何时执行。 至于 AppSearch(XxxSearch 元素),您可以向 AppSearch 元素添加类似上面的条件,以便它仅在卸载期间运行。 请注意,调节 AppSearch
  • Present view controller modally at app launch
    My application has a setup screen that should be presented modally on the root view controller if certain conditions are met. I have looked around on SO and the internet and the closest answer so far to how to go about doing this is here: AppDelegate, rootViewController and presentViewController There are 2 problems with this approach however: In iOS 8, doing it this way makes a log appear in the console, which doesn't seem to be an error, but is probably not good nonetheless: Unbalanced calls to begin/end appearance transitions for UITabBarController: 0x7fe20058d570. The root view controller
  • TaskPane does not draw, appears blank
    I discovered a very specific issue with modal Inspectors in Windows 7 systems running Outlook 2007. I'm developing an addin that places a ribbon button and UserControl (in the form of a taskPane) into the email-compose window. The issue is: with that specific setup, (with Outlook 2007 already running) when the user attempts to launch an email-compose window externally (this can be through 'send via email' in Adobe Reader or many other applications). The TaskPane that appears appended to the right-side of the form has a semi-random chance to not draw and simply appear blank. I have prepared a
  • 如果不满足条件,则阻止删除表(Prevent drop table if conditions are not met)
    问题 我想问一下是否可以处理删除表命令并在不满足某些条件时中断它? 回答1 我猜你是想问: 如何根据某些应用程序定义的条件阻止DROP TABLE成功 如果是这样,您唯一的内置选项是使用权限。 请参阅 PostgreSQL 手册中的GRANT和REVOKE 。 如果你想要更复杂的东西,你可以编写一个ProcessUtility_hook ,但这需要你用 C 编写一个扩展,它被编译并加载到服务器中。 编写ProcessUtility_hook实际上并不太难,但是 PostgreSQL 9.2 和 9.3 定义之间存在差异,这意味着您需要单独的扩展。 这是一个基本示例:https://github.com/ringerc/scrapcode/tree/master/postgresql/example_processutility_hook,这里有一个 ProcessUtility 钩子,它实际上做了一些有用的事情:https://github.com/ringerc/postgres/blob/bdr -reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c 如果您没有 C 编程经验并且有一段时间, ProcessUtility_hook不适合您。 另请参阅:如何防止表被删除?
  • 1003 我要通过! (20 分) C语言 耗时3周...解出来的
    1.题目 1003 我要通过! (20 分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串; 3.如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。 现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。 输入格式: 每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。 输出格式: 每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出 YES,否则输出 NO。 输入样例: 8 PAT PAAT AAPATAA AAPAATAAAA xPATx PT Whatever APAAATAA 输出样例: YES YES YES YES NO NO NO NO 2.反思该题字符串的难点 2.1题目的逻辑很难,很难理解
  • 让 iPhone 应用程序显示两种不同视图之一(Getting iPhone app to display one of two different views)
    问题 我有一个程序,我们使用导航控制器,需要应用程序启动到两个不同的视图之一。 基本上,如果之前已经输入了某些信息,那么我们需要启动应用程序来查看 A,但是如果从未输入过信息,那么我们需要启动它来查看 B。我很难让它工作,我想知道有什么方法如果有的话,我可以实现这一点。 我确定它需要在应用程序委托中完成,但我不确定如何。 提前致谢! 回答1 在您的应用程序委托中实现以下方法。 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [window makeKeyAndVisible]; if(condition) { [window addSubview:[mainViewControllerA view]]; } else { [window addSubview:[mainViewControllerB view]]; } } 您可以在那里根据您的情况选择要加载的视图。 回答2 从您的问题来看,听起来好像您的 UINavigationController 是在 XIB 中与根视图控制器一起定义的。 在这种情况下,您需要从application:didFinishLaunchingWithOptions
  • Document_New 启动 Word 事件(Document_New event on launching Word)
    问题
  • 我应该使用 return/continue 语句而不是 if-else 吗?(Should I use return/continue statement instead of if-else?)
    问题
  • 阻塞 非阻塞 进程等待 wait waitpid
    进程等待: 父进程等待子进程的推出,获取子进程返回值,释放资源防止僵尸进程。 操作: pid_t wait(int* status) **status:一个整形空间的地址,接受子进程返回值; 返回值:成功返回子进程pid,失败返回-1; 等待任意一个子进程退出,如没有退出,一直阻塞等待; 阻塞:为了完成某一目的调用某一个功能,不具备完成条件,则一直等待; 调用之前有子进程退出,调用时就会立即处理 pid_t waitpid(pid_t childpid,int *status,int options) 可以等待一个,也可以等待指定的一个; 可以阻塞等待也可以非阻塞等待 childpid:-1等待任意子进程 大于0表示等待指定子进程 status用于获取退出子进程的返回值 option:0-默认阻塞等待 WNOHANG-设置非阻塞等待 返回值:错误返回-1; 没有子进程退出返回0; 有子进程退出返回子进程pid 非阻塞:为了完成某一功能,发起一调用,当前不具备条件,则立即返回; 只要调用,有退出就直接处理; 来源:https://blog.csdn.net/weixin_52270223/article/details/115057268
  • How could I set a boolean value to True, and make it so if a condition is met, it becomes False, but only for a certain amount of time?
    Seems like there should be a simple solution using the time module or something, but I've tried a few things and nothing seems to work. I need something like this to work: hungry = True if line.find ('feeds'): #hungry = False for 60 seconds, then hungry is true again Anyone have a solution for this? edit: As for what I've tried, I've tried this bit of code: if hungry==True: print('yum! not hungry for 20 seconds') hungry = False i = 20 while(i>0): i-=1 time.sleep(1) if(i==0): hungry = True But that doesn't work because the program just pauses until hungry is True again, and hungry being false
  • Outlook 插件(日历事件):重复总是为空(Outlook add in (calendar event): Recurrence is always null)
    问题 我有一个用于日历事件的 Outlook 插件,带有一个任务窗格。 从窗格中,我获得了事件数据: date start: item.start.getAsync() date end: item.end.getAsync() recurrence: item.recurrence.getAsync() 日期没问题,但重复总是为空(状态 = 'succeeded'),虽然我在事件中改变了重复...... 可能是什么问题? 我正在使用 Outlook 365 Web 开发 谢谢, 迭戈 编辑:我在重复更改时收到事件: Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handleRecurrenceChanged); 但是在 handleRecurrenceChanged() 中,重复总是空的...* 回答1 使用您在评论中给我的代码,当它更改时我会得到重复: Office.context.mailbox.item.addHandlerAsync(Office.EventType.RecurrenceChanged, handler, callback); 但只有“处理程序”函数被调用,其中重复是有效的:console.log(JSON.stringify(eventarg
  • 三毛说币圈:数字货币合约基础知识
    一、什么是数字货币期货合约 数字货币期货合约是一种数字资产衍生产品,它包含了数字资产交易的约定信息,如交易品种,交易时间,价格,数量等。 数字货币合约交易是指交易双方约定在将来某个时间,以数字资产为标的,在交易所买卖标准化合约的行为。币圈投资者可以通过合约交易进行套利、套期保值、投机等行为来获取盈利。 二、数字货币合约类型 数字货币合约包括两种类型:有期合约(当周、次周、季度)和永续合约。 交割日期:通常为每周星期五下午四时。 当日结算合约:在离交易日最近的星期五下午四时交割的合约。 次周合约:在离交易日最近的第二个星期五下午四时交割的合约。 季度合约:指在3,6,9,12月中离目前最近的一个月的最后一个星期五下午4点之前交割的合同。并且与当周、次周交期日期不重合。 在交割期当日下午四时合约自动平仓,合约在交割前最后10分钟只能平仓,不能开仓。 永续合约不会自动到期交割,任何时候都可以平仓,实时结算收入。永续合约比有期合约具有更多的优势,目前大多数主流的合约交易所都已上线或即将上线永续合约交易。 三、利用计划委托及时止盈止损 计划委托,指的是预先设定委托价格和委托数量的触发条件,当市场最新成交价格达到触发条件时,系统会按预先设定的委托价格及委托数量下订单(即限价)。适用于止盈止损。 参数描述: 触发价格:当最近的成交价格达到设定的触发价格时,触发委托,进行委托下单。 代理价
  • Java基础介绍
    Java基础介绍 1、基于Windows系统的Java运行环境的搭建 1.1、JDK环境的配置 1.1.1、下载JDK11   点击链接:下载JDK11文件,进入下载的网站后,点击下面的图示:   不过下载得登录Oracle账号,有账号的小伙伴可以直接下载,没有的就保存我给的安装包吧(百度云盘) 链接:https://pan.baidu.com/s/16EcTfIrY0USdUSHi47Npgg 提取码:i36n 1.1.2、安装JDK11   下载完之后就直接双击(.exe)文件进行下载,安装JDK的地方自己决定,但要注意一点,安装JDK的文件夹最好不要用中文命名,因为之后的环境配置需要用到文件夹路径,使用中文容易发生错误。 1.1.3、配置JDK11的运行环境   第一步:进入电脑的高级系统设置(进入此电脑界面后右键点击空白区域,出现选项框后点击属性选项便可看到高级系统设置)如图所示:   第二步:点击高级系统设置,进入以下界面,然后点击环境变量进行环境变量的配置。   第三步:配置环境变量:加入环境变量JAVA_HOME,参数为JDK11的安装路径,比如:E:\jdk11;之后在Path环境变量中加入%JAVA_HOME%\bin,点击确定便配置好环境了。如图所示: 1.1.4、确认JDK11配置成功   点击Windows键+R键,在输入栏中输入cmd,进入命令提示符窗口
  • Python的分支和循环结构
    一.条件语句 条件语句可以给定一个判断条件,并在程序执行过程中判断该条件是否成立。程序根据判断结果,执行不同的操作,这样就可以改变代码的执行顺序,从而实现更多的功能。 Python中条件语句通常有if语句、if-else语句和if-elif-else语句。 1.if语句 if结构:满足条件就执行某个操作,不满足就不执行。 语法: if 条件语句:       代码段 # 如果num是奇数打印'奇数' num = 11 if num % 2 !=0: print('奇数') 运行结果: 奇数 2.if-else语句 if-else结构:满足条件执行某个操作,不满足条件的时候执行另外一个操作。 语法:if 条件语句:     代码段1(满足条件要执行的代码)    else:     代码段2(不满足条件要执行的代码) # 根据成绩合格范围打印'合格'或者'不合格' grade = 96 if grade >= 60: print('合格') else: print('不合格') 运行结果: 合格 3.if-elif-else语句 if-elif-else结构:满足不同的条件执行不同的操作,后面的条件是在前面的条件不成立的时候进行判断的。 语法:if 条件语句1:      代码段1    elif 条件语句2:      代码段2    elif 条件语句3:      代码段3