我有一个使用 AutoItX 进行自动化的 C# 应用程序。此应用程序在我使用 Microsoft Visual Studio 2013 版本 3 编译的 Windows 8.1 x64 环境中运行良好。
我将应用程序代码的副本推送到 bitbucket 存储库并将其克隆到运行 Windows 7 x64 的计算机。安装了 AutoItX 3.14.2 版并选择了 32 位调用。该应用程序是使用 Visual Studio 2013 版本4编译的。
应用程序编译正常,但第一次使用 AutoIt 函数导致错误:
An unhandled exception of type 'System.DllNotFoundException' occurred in AutoItX3.Assembly.dll
Run Code Online (Sandbox Code Playgroud)
我尝试了以下步骤。该应用程序在每个步骤后都经过测试
尝试使用 regsrv32 手动注册 .dll
regsrv32 "C:\Program Files (x86)\AutoIt3\AutoItX\AutoItX3.dll"
卸载 VisualStudio 2013 R4 并尝试重新安装 VisualStudio 2013 R3 {R3 的安装失败,因为它需要 Internet Explorer 版本 10,并且此计算机上已经安装了版本 11} 所以重新安装了 R4
卸载 AutoIt 并重新安装,选择 64 位库首选项。使用 x64 平台选项编译应用程序
卸载 …
我的 AutoIt 脚本发送一个点击和按键列表来自动化旧的封闭源应用程序。
它有错误,所以我想知道如何调试 AutoIt 脚本。或者至少输出脚本的行号(以显示实时执行的代码)。
视图没有 rowid,这是预期的吗?例子:
create table t2 (u text);
insert into t2 values ('x');
insert into t2 values ('y');
create table t1 (t text, i integer);
insert into t1 values ('a',1);
insert into t1 values ('b',2);
insert into t1 values ('c',1);
insert into t1 values ('d',2);
create view v as select * from t1 join t2 on t1.i=t2.rowid;
select rowid,* from t1;
ro t i
-- -- --
1 a 1
2 b 2
3 c 1
4 d 2
select rowid,* …Run Code Online (Sandbox Code Playgroud) 我正在使用 BQ CLI ( https://cloud.google.com/bigquery/bq-command-line-tool )。
我没有找到如何删除 DAY 分区数据。
例如,我有一个 DAY PARTITIONED 表,其中保存日期 2016-09-01 到 2016-09-30 的数据。
我需要完全删除“2016-09-15”分区。
这可以通过 CLI 命令实现吗?
在Media Player Classic中,我找到了一种以编程方式跳转到视频/音频中的某个点的方法,避免使用该Go To...框.跳跃距离可在Options→ Tweaks和/ HKEY_CURRENT_USER\Software\MPC-HC\MPC-HC\Settings
(JumpDistL/ JumpDistM/ JumpDistS)处获得.
我所做的是找到Media Player Classic的地址空间中的跳跃距离,并设置大跳跃距离的值,这样如果将其应用到经过的时间,您将获得所需的时间.
然后我发送WM_COMMAND带参数903/ 的消息904(全部通过AutoHotkey.我通过检索/解析Edit控件的内容来获取已用时间.)
因为跳跃是相对于当前点的,所以它是不精确的,并且在正确的时间内到达,但是每次都没有到达完全相同的点.
是否有更直接的方法来实现这一点,如果没有,任何Media Player Classic用户/程序员都会考虑在论坛上讨论,引入WM_COMMAND允许跳转到点(以毫秒为单位)的新消息,或者检索此处列出的数值
(state,position,duration,volumelevel,muted,playbackrate,reloadtime).(这里找到的方法太慢,无法准确地获得时间,并且需要设置特殊选项).
我们已经设置了一个 Spark 作业来插入到 Hive 中(使用数据帧)。hive表设置为创建动态分区。只要我们运行一个 Spark 作业将数据插入 Hive,一切都会完美运行。
我们遇到的问题是,我们预计将运行并发 Spark 作业以将数据加载到 Hive 中。这似乎不起作用。我读到动态分区不提供独占锁,而是提供共享锁。在我们的例子中,我们可以看到,如果同时运行 4-5 个 Spark 作业,数据就会损坏,一些记录会丢失。非常容易重现,几乎每次都会发生。
有人解决这个问题了吗?即使用并发作业的动态分区插入到配置单元表中,并且仍然确保不会发生数据损坏。任何意见都非常感谢!
火花代码片段:
// Set hive conf to allow dynamic partitions to be created
sqlContext.setConf("hive.exec.dynamic.partition.mode", "nonstrict")
//Create temp table to load data into Hive
parsedDataDF.registerTempTable("parsedDatatempTable")
//Insert data into Hive, dynamic partitioning
sqlContext.sql("insert into table " + hiveDBToLoad + "." + hiveTableToLoad + " partition (partition_1, partition_2, partition_3) " +
"select * from parsedDatatempTable")
Run Code Online (Sandbox Code Playgroud) 要为不同的年份创建单独的模型(年份是边缘表中的一个属性),我正在尝试使用过滤器。使用过滤器
属性 > 等于 > 年份字符串(边)我能够隐藏不是那一年的边缘。但是,这给我留下了未连接的节点(有关解释,请参见图片)。
有没有办法过滤这些(不删除与年份过滤器相关的节点/边)?我正在使用 Gephi 0.9.1。
我正在尝试使用 before/after Mocha 挂钩创建然后删除 SQLite 数据库。使用Node.js SQLite 库,我在调用 时收到“错误:EBUSY:资源繁忙或锁定...” fs.unlinkSync(DB_PATH)。
之后我可以删除该文件,因此与 Node.js SQLite 库不释放文件描述符有关。如何在同一个程序中创建然后关闭数据库连接并删除数据库文件,或者在删除文件之前程序必须退出吗?代码(Windows 10,Node.js v6.10.0):
var sqlite3 = require('sqlite3');
var fs = require('fs');
var childProc = require('child_process');
before(function() {
childProc.execSync("sqlite3 ./test_db_data/test_db.sqlite3 < ./load_data/sql/init_model.sql").toString()
});
after(function() {
fs.unlinkSync(DB_PATH);
});
describe('tests', function() {
var db;
before(function(done) {
// set up database
new Promise(function(resolve, reject) {
console.log("Running promise");
db = new sqlite3.Database(DB_PATH, sqlite3.OPEN_READWRITE | sqlite3.OPEN_CREATE, function(err) {
if (err) {
throw new Error("Couldn't create test database.");
}
resolve();
}); …Run Code Online (Sandbox Code Playgroud) 我正在将Bootstrap v4与默认的CSS和JS一起使用。我试图应用类hidden,hidden-XX-down以及hidden-XX-up各种申报单,按钮等,但它似乎并没有造成任何影响。除此课程外,其他所有课程均有效。
这是一个例子:
<div class="row">
<div class="col col-10 offset-1 hidden-sm-down">
<p class="text-primary text-center">Lorem ipsum dolor sit amet.</p>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
我希望在将窗口调整为较小的宽度(减小sm尺寸)时该段落不可见,但该段落仍然可见并且什么也没有发生。
打开应用程序URL后,用户将被重定向到登录页面,其中有一个登录按钮.
driver.get("abc.com")
Run Code Online (Sandbox Code Playgroud)
现在,当用户单击"登录"按钮时,URL在同一窗口中更改,表示它变为xyz.com,并显示用于登录目的的身份验证弹出窗口,类似于下图所示的图像.

要在身份验证窗口中输入用户名和密码,我尝试了以下代码
shell = win32com.client.Dispatch("WScript.Shell")
shell.Sendkeys("username")
time.sleep(1)
shell.Sendkeys("{TAB}")
time.sleep(1)
shell.Sendkeys("password")
time.sleep(1)
shell.Sendkeys("{ENTER}")
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
它没用.然后我尝试使用上面的代码直接打开Windows身份验证弹出窗口(通过点击登录按钮后复制URL),它工作正常
driver.get("xyz.com")//instead of abc.com my application URL
Run Code Online (Sandbox Code Playgroud)
我有点困惑.如果我打开我的应用程序URL abc.com,单击登录按钮,使用autoit,它没有输入凭据.但是,如果我直接发送窗口身份验证URL xyz.com而不是app URL abc.com并使用autoit,它就可以工作.
任何人都可以建议我在这里缺少什么?我也尝试在点击登录按钮后切换窗口,考虑其新的URL然后自动命令,但它仍然无法正常工作.
driver.switch_to_window(driver.window_handles[1])
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
注意:我注意到点击登录按钮,窗口无限加载,光标在Windows身份验证poup的用户名文本字段上处于活动状态.此外,一旦出现Windows身份验证窗口,selenium命令都不起作用,也没有自动命令.
sqlite ×2
apache-spark ×1
autohotkey ×1
autoit ×1
automation ×1
bootstrap-4 ×1
c# ×1
controls ×1
css ×1
date ×1
dll ×1
gephi ×1
hadoop ×1
hive ×1
html ×1
html5 ×1
java ×1
media-player ×1
node.js ×1
nodes ×1
partition ×1
python ×1
selenium ×1
sql-view ×1
winapi ×1