什么是 FORTRAN 输入语句(例如,READ 语句或 OPEN 语句)来接受来自鼠标的输入?例如,在 Windows 资源管理器中,可以右键单击文件,然后从出现的菜单中选择 FORTRAN 可执行文件。如何让这样的 FORTRAN 程序捕获鼠标发送的任何内容(例如,捕获文件名或鼠标发送的任何内容)?有关 FORTRAN 输入的信息似乎仅限于从文件或键盘输入。我找不到任何关于鼠标输入的信息。
问问题
520 次
1 回答
0
我自己取得了进展,对于那些感兴趣的人,这里是: 首先,“fortran 标准”不直接支持鼠标输入。但是可以使 Windows 资源管理器将文件名通过管道传输到 fortran 可执行文件中。
在 Windows 下,右键单击会生成完整的 \path\filename 作为命令行参数。该信息可以由 fortran 使用“get_command_argument”捕获,如下所示:
PROGRAM get_filename
CHARACTER(len=100) :: arg
CHARACTER(len=2000) :: filename
filename = ''
! NB: spaces in a file name define separate arguments, so re-assemble the file name as it comes in
i = 1
DO
CALL get_command_argument(i, arg)
IF (LEN_TRIM(arg) == 0) EXIT
filename = TRIM(filename)//' '//TRIM(arg) ! putting the spaces back in
i = i+1
END DO
WRITE (*,*) 'file= ',TRIM(filename)
read(*,*)
END PROGRAM
可执行文件的链接可以放在 Windows 右键菜单中,如下所述:
您需要在可执行文件的名称中添加“%1”以使其接受命令行参数,例如,我将可执行文件命名为“PW_copy.exe”,因此最终的注册表项为:\path\PW_copy.exe %1
有用!
在多个文件上拖动鼠标会生成单独的线程,每个线程都有不同的文件名。
于 2013-06-19T06:56:20.163 回答