小编iCa*_*arp的帖子

Watin DialogHandler关闭SaveFileDialog

根据这个答案,我创建了一个自定义DialogHandler来处理从WebBrowser控件中弹出的Javascript警告框.

Handler连接到一个继承华廷IE浏览器,称为ExtendedIeBrowser.

由于未知原因,watin的DialogHandler会干扰Winforms SaveFiledialogs.该SaveFileDialog自动通过返回DialogResult.Cancel关闭.奇怪的是,Handle()自定义处理程序的调用永远不会被调用.只CanHandle()调用(两次)并返回false,因此根本不应该处理对话框,因此它应该保持打开状态.

有什么我可以做的改变克服这种奇怪的行为吗?

这是ExtendedIeBrowser来源:

public class ExtendedIeBrowser : IE
{
    private IntPtr hwnd;
    public ExtendedIeBrowser(WebBrowser webBrowserControl) : base(webBrowserControl.ActiveXInstance, false)
    {
    }

    public void Initialize(WebBrowser webBrowserControl)
    {
        hwnd = webBrowserControl.FindForm().Handle;
        StartDialogWatcher();
    }

    public override IntPtr hWnd { get { return hwnd; } }

    protected override void Dispose(bool disposing)
    {
        hwnd = IntPtr.Zero;
        base.Dispose(disposing);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下CustomPopupDialogHandler来源:

class CustomPopupDialogHandler : …
Run Code Online (Sandbox Code Playgroud)

c# watin savefiledialog

5
推荐指数
1
解决办法
1231
查看次数

从Windows服务获取用户根目录

我有一个用C#编写的Windows服务.我需要在每个用户目录中添加一个文件.我怎样才能找到入路?我意识到这真的很愚蠢,但这正是我目前正在做的事情:

  if (Directory.Exists("C:\\Users"))
  {
    path = "C:\\Users";
  }
  else if (Directory.Exists("C:\\Documents and Settings"))
  {
    path = "C:\\Documents and Settings";
  }
Run Code Online (Sandbox Code Playgroud)

我查看了特殊文件夹:http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

他们似乎没有回报我需要的东西.例如,ApplicationData正在返回System32目录的路径.我认为这是因为它作为Windows服务运行.我目前使用的代码适用于我所做的少数测试.看起来应该有更智能(防错)的方式来获得这条路径.

另一个想法......也许有一个注册表项会给我我想要的东西?嗯

.net c# windows

5
推荐指数
1
解决办法
1180
查看次数

从服务执行 shell 命令

我正在尝试从我创建的 C# 服务中执行 shell 命令。但是,这个命令似乎没有执行。作为一个标准的控制台应用程序,它运行得很好,所以我知道命令本身没有问题,或者它是如何在代码中执行的。谁能告诉我为什么这行不通?请记住,我对 C# 还很陌生,所以这可能只是我缺乏经验的问题。以下是服务本身的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading;

namespace AdapterDisableTest
{
    class Program : ServiceBase
    {
        //private static Timer workTimer;

        static void Main(string[] args)
        {
            ServiceBase.Run(new Program());
        }

        public Program()
        {
            this.ServiceName = "AdapterDisableTest";
        }

        protected override void OnStart(string[] args)
        {
            base.OnStart(args);

            Process myProcess = new Process();

            myProcess.StartInfo.FileName = @"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe";
            myProcess.StartInfo.Arguments = "controlvm test setlinkstate1 off";
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.CreateNoWindow = true;
            myProcess.Start();

        } …
Run Code Online (Sandbox Code Playgroud)

c# shell service

5
推荐指数
1
解决办法
2924
查看次数

应用在 Play 商店中不可见

几天前我发布了我的应用程序。第一天,一切正常,但从那以后,该应用程序无法在Play商店应用程序中搜索到。它仍然可以通过http://play.google.com/store 进行搜索。什么可能是罪魁祸首,我该如何解决?

我尝试过的:
- 删除 Play Store 应用程序的缓存
- 在具有不同 Android 版本的多个设备上尝试

更多信息:
- 开发者控制台中的状态显示“已发布”
- 直接链接有效

在 Play 商店应用中找不到

在此处输入图片说明

android google-play

5
推荐指数
1
解决办法
7724
查看次数

进度条传递浮点参数

我试图在android中构建一个进度条,因为你知道进度条获取进度的int,但我需要将float传递给进度条,我该怎么办?

private Runnable myThread = new Runnable(){  
    @Override
    public void run() {
                mypb = mypb + 100 / time;
                pb.setProgress(mypb);
    }
};
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
2
解决办法
5682
查看次数

android将多个适配器连接到一个适配器

我一直在使用SeparatedListAdapter,这是众所周知的并且工作正常,但似乎我不能使用addSection()来添加SimpleAdapter,因为应用程序已终止.我正在提供一些代码来向您展示我正在尝试做什么,并获得一些指导以解决此问题.如果您需要任何其他代码或任何内容,请告诉我们:

// Declarations

private SimpleAdapter _resultsAdapter;
private ArrayAdapter<String> _adapter;
private List<Map<String,?>> _resultsList;
private ArrayList<String> _stringList = new ArrayList<String>();

// Much of source code here

// The following lines work (I can addSection()).
    _adapter =  new ArrayAdapter<String>(this, R.layout.custom_list_item, _stringList);
    _sla = new SeparatedListAdapter(this);
    _sla.addSection("Input Data", _adapter);  

// More source code here...

// The following causes a crash
_resultsList.add(createItem(resultTitle.toString(), fieldDetails.toString())); // Loading data in a loop (works 100%)
_resultsAdapter = new SimpleAdapter(CompanyInfoServiceViewActivity.this, _resultsList, R.layout.list_complex, new String[] { ITEM_TITLE, ITEM_CAPTION }, …
Run Code Online (Sandbox Code Playgroud)

android listview adapter

4
推荐指数
1
解决办法
2万
查看次数

正确的方式来处置Hwnd IntPtr

我试图弄清楚以下情况是否会导致内存泄漏.

我从WebBrowser控件获取窗口句柄(这是有原因的)

IntPtr p = webBrowser1.FindForm().Handle;
Run Code Online (Sandbox Code Playgroud)

后来,我在一个重写的dispose方法中释放该句柄

    protected override void Dispose(bool disposing)
    {
        hwnd = IntPtr.Zero;
        base.Dispose(disposing);
    }
Run Code Online (Sandbox Code Playgroud)

我的Dispose方法背后是否存在可能导致内存泄漏的恶意?

对于某些人来说这可能是非常明显的,但我正在寻找内存泄漏,因此我正在尝试验证每行代码.

c# memory-leaks handle

4
推荐指数
1
解决办法
2238
查看次数

隐藏一些孩子的水平滚动视图

Android 4.1.0.

我有一个水平滚动视图 - 里面 - LinearLayout.在LinearLayout中,我以编程方式在片段中添加一些子项onResume.如果儿童适合视野,一切都很好.如果儿童不适合视图,则从左侧HorizontalView隐藏前n个元素,并在右侧保留n个元素的可用空间.

我试着打电话computeScrollrequestLayout/ forceLayout,但它没有帮助.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<HorizontalScrollView
    android:id="@+id/productListScroll"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/productListLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dp"
        android:orientation="horizontal"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingTop="10dp" />
</HorizontalScrollView>
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

和片段中的代码:

    public void onResume() {
         super.onResume();
         productsPanel.removeAllViews();
         for (Product product : currentOrder.getProductList()) {
             productsPanel.addView(new ...); //view with calculated height and width
             productsPanel.addView(new ...); //view with fixed width and height = MATCH_PARENT
         }
    }
Run Code Online (Sandbox Code Playgroud)

android horizontalscrollview

4
推荐指数
2
解决办法
1721
查看次数

List <>元素是否按顺序位于堆中?

我正在学习C#,基本上知道数组和Lists 之间的区别,最后一个是通用的,可以动态增长,但我想知道:

  • List元件顺序地位于堆状阵列或位于"随机"在不同的位置的每个元素?
  • 如果这是真的,那是否会影响从内存访问和数据检索的速度?
  • 如果这是真的,这是什么使得数组比Lists 快一点?

.net c#

4
推荐指数
2
解决办法
2339
查看次数

数组搜索未按预期工作

我试图取代值事件ID$fields与映射到(数值数组idEvent中)$aliases数组,但PHP的array_search函数返回错误的位置.注意:我将值转换为全部小写,因此它应该返回一个匹配,它似乎array_search是返回一个索引,但它应该返回索引2而不是索引,1因为它是$fields数组中的第三个值.

不幸的是,如果您运行代码(例如,将其复制并粘贴到此处:http://writecodeonline.com/php/),则返回错误的值.有人可以告诉我,如果我做错了吗?

$fields = array('Host', 'OS', 'Event Id');
$aliases = array('idEvent' => 'Event ID');

 foreach ($aliases as $actual => $alias){

    $alias = strtolower($alias);

    echo "searching fields(" . implode(',', array_map('strtolower', $fields)) . ") for $alias<br/>";
    if ($position = array_search($alias, array_map('strtolower', $fields)) !== FALSE) {

        echo "$alias was found at \$fields[$position]";
        $fields[$position] = $actual;

    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我添加了一些echo语句,所以你可以做我想做的事情.

php

3
推荐指数
1
解决办法
536
查看次数