我正在创建一个Blackberry应用程序来显示某个站点的全屏Web视图.我有一个正常显示的工作浏览器字段,但页面之间的导航速度比本机浏览器慢.browserfield似乎没有内置缓存,导致加载时间变慢.当我添加以下代码来管理缓存时,网站不再正常显示.
BrowserFieldScreen.java:
import net.rim.device.api.browser.field2.*;
import net.rim.device.api.script.ScriptEngine;
import net.rim.device.api.system.*;
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import org.w3c.dom.Document;
class BrowserFieldScreen extends MainScreen
{
BrowserField browserField;
LoadingScreen load = new LoadingScreen();;
public BrowserFieldScreen()
{
browserField = new BrowserField();
browserField.getConfig().setProperty(
BrowserFieldConfig.JAVASCRIPT_ENABLED,
Boolean.TRUE);
browserField.getConfig().setProperty(
BrowserFieldConfig.NAVIGATION_MODE,
BrowserFieldConfig.NAVIGATION_MODE_POINTER);
browserField.getConfig().setProperty(
BrowserFieldConfig.CONTROLLER,
new CacheProtocolController(browserField));
browserField.requestContent("http://www.stackoverflow.com");
add(browserField);
}
}
Run Code Online (Sandbox Code Playgroud)
CacheProtocolController.java:
import javax.microedition.io.HttpConnection;
import javax.microedition.io.InputConnection;
import net.rim.device.api.browser.field2.BrowserField;
import net.rim.device.api.browser.field2.BrowserFieldRequest;
import net.rim.device.api.browser.field2.ProtocolController;
public class CacheProtocolController extends ProtocolController{
// The BrowserField instance
private BrowserField browserField;
// CacheManager will take care of cached resources …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个将链接发布到Twitter上的应用程序.以下代码拒绝为我打包,抛出以下错误:
错误:无法运行程序"jar":CreateProcess error = 2,系统找不到指定的文件
这是代码:
public class ShowAuthBrowser extends MainScreen implements OAuthDialogListener
{
private final String CONSUMER_KEY = "<Consumer>";
private final String CONSUMER_SECRET = "<Secret>";
private LabelField _labelStutus;
private OAuthDialogWrapper pageWrapper = null;
public StoreToken _tokenValue;
public BrowserField b = new BrowserField();
Manager _authManager;
Manager _pinManager;
ButtonField authButton;
TextField authPin;
public ShowAuthBrowser()
{
_authManager = new VerticalFieldManager(NO_VERTICAL_SCROLL |
NO_VERTICAL_SCROLLBAR);
_pinManager = new HorizontalFieldManager(NO_VERTICAL_SCROLL |
NO_VERTICAL_SCROLLBAR);
authButton = new ButtonField("OK");
authPin = new TextField(Field.EDITABLE);
_authManager.add(_labelStutus );
_authManager.add(b);
_pinManager.add(authButton);
_pinManager.add(authPin);
pageWrapper …
Run Code Online (Sandbox Code Playgroud) blackberry java-me blackberry-jde blackberry-eclipse-plugin twitter-oauth
我编写了一个与Windows XP完美配合的WiX安装程序,但是当安装到Windows 7机箱时,我遇到了注册表项的困难.我需要添加一个HKLM条目以及要在开始菜单中显示的程序的注册表项.这是我用于两种类型的条目的代码:
<!-- Create the registry entries for the program -->
<DirectoryRef Id="TARGETDIR">
<Component Id="RegistryEntriesInst" Guid="...">
<RegistryKey Root="HKLM"
Key="Software\$(var.Manufacturer)\$(var.ProductName)"
Action="createAndRemoveOnUninstall">
<RegistryValue
Type="string"
Name="installed"
Value="true"
KeyPath="yes"/>
</RegistryKey>
</Component>
<Component Id="RegistryEntriesVer" Guid="...">
<RegistryKey Root="HKLM"
Key="Software\$(var.Manufacturer)\$(var.ProductName)"
Action="createAndRemoveOnUninstall">
<RegistryValue
Type="string"
Name="version"
Value="$(var.ProductVersion)"
KeyPath="yes"/>
</RegistryKey>
</Component>
</DirectoryRef>
<!-- To add shortcuts to the start menu to run and uninstall the program -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="...">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="$(var.ProductName)"
Description="..."
Target="[SERVERLOCATION]$(var.Project.TargetFileName)"
WorkingDirectory="SERVERLOCATION"/>
<Shortcut Id="UninstallProduct"
Name="Uninstall $(var.ProductName)"
Description="..."
Target="[System64Folder]msiexec.exe"
Arguments="/x [ProductCode]"/>
<RemoveFolder Id="SERVERLOCATION" On="uninstall"/> …
Run Code Online (Sandbox Code Playgroud) 我有一个可观察的集合绑定到数据网格.我还在视图模型中有一个color属性,我想将数据网格中每一行的背景绑定到vm上的color属性.
我创建了一个WiX项目,安装了一堆不同的EXE和DLL.不幸的是,当我构建项目时,我收到了以下每个警告:
ICE60:文件fileName不是Font,其版本不是伴随文件引用.它应该具有语言列中指定的语言.
我已经找到了示例和可能的解决方案,每次建议将DefaultLanguage标记设置为0以修复警告.一旦这样做,我得到这个警告:
DefaultLanguage'0'用于没有语言或版本的文件'fileName'.对于未版本控制的文件,不需要为DefaultLanguage指定值,并且在确定文件版本时不会使用它.删除DefaultLanguage属性以消除此警告.
我该如何处理这个警告?
我有一个Web服务,因此处理程序会一直多次同时调用.
在里面我创建了SqlConnection和SqlCommand.我必须执行大约7个不同的命令.不同的命令需要各种参数,所以我只需添加一次:
command.Parameters.Add(new SqlParameter("@UserID", userID));
command.Parameters.Add(new SqlParameter("@AppID", appID));
command.Parameters.Add(new SqlParameter("@SID", SIDInt));
command.Parameters.Add(new SqlParameter("@Day", timestamp.Date));
command.Parameters.Add(new SqlParameter("@TS", timestamp));
Run Code Online (Sandbox Code Playgroud)
然后在执行期间我只需更改CommandText prorerty,然后调用ExecuteNonQuery(); 或ExecuteScalar();
我面临性能问题.例如,小调试和分析显示该命令
command.CommandText = "SELECT LastShowTS FROM LogForAllTime WHERE UserID = @UserID";
Run Code Online (Sandbox Code Playgroud)
平均需要大约50毫秒.如果我将其更改为:
command.CommandText = "SELECT LastShowTS FROM LogForAllTime WHERE UserID = '" + userID.Replace("\'", "") + "'";
Run Code Online (Sandbox Code Playgroud)
然后它只需要1ms的平均值!
我只是无法弄清楚在哪里调查问题.
在创建我的WiX安装程序时,我在安装升级之前尝试关闭应用程序时遇到了问题.下面是我试图这样做的一个例子.
<util:CloseApplication Id="CloseServe" CloseMessage="yes" Target="server.exe" ElevatedCloseMessage="yes" RebootPrompt="no"/>
<InstallExecuteSequence>
<Custom Action="WixCloseApplications" After="RemoveExistingProducts" />
<RemoveExistingProducts After="InstallInitialize"/>
<Custom Action='LaunchApplication' After='InstallFinalize'/>
<!--<Custom Action='StopServer' Before='RemoveExistingProducts'/>-->
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
使用此示例,应用程序最终会关闭,但安装在此时停止,然后执行回滚.这可能是因为在尝试关闭exe之前删除了exe吗?我已经尝试更改序列,以便在WixCloseApplications之后执行RemoveExistingProducts但它然后给我一个错误代码2613.
我正在使用我在" 自动WPF工具包DataGrid过滤 " 一文中找到的代码(VS2008),该代码非常有效.它被实现为数据网格标题的新"样式",而不是数据网格本身的扩展.我的问题是如何保存输入到这些过滤器框中的值,然后使用它们重新输入这些值?
如果不可能,我将如何修改源代码(可从上面的链接获得)到过滤器(WPF新手).
谢谢,
恩里科
我创建了一个Wix安装程序,它将3个快捷方式放在桌面上.其中一个快捷方式引用了用户的DVD驱动器.有没有办法根据该驱动器号动态设置此快捷方式的目标?自定义动作是否可行?如果是这样,我将如何使用该自定义操作更改快捷方式的目标.我一直在用C#编写自定义操作,并希望继续这样做.
谢谢你的帮助.
我正在使用heat为多个目录生成wix文件.
但是,似乎目录A和目录B具有相同的文件夹名称,即使绝对路径不同,热仍然认为它是同一目录,因此生成相同的目录ID.
似乎有一种修复方法,就是使用-directoryid覆盖生成的Directory Id,但是手册中没有给出示例,我们如何传递参数.显然,不知何故,它需要知道我想要更改哪个目录ID,如果有人可以提供帮助,我将非常感激.
谢谢.
wix ×5
c# ×3
blackberry ×2
installer ×2
wpf ×2
ado.net ×1
browserfield ×1
caching ×1
data-binding ×1
heat ×1
java ×1
java-me ×1
mvvm ×1
registry ×1
shortcut ×1
sql-server ×1
sqlcommand ×1
sqlparameter ×1
warnings ×1
wpfdatagrid ×1
wpftoolkit ×1